summaryrefslogtreecommitdiffstats
path: root/desktop-widgets
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2020-11-24 14:10:53 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2020-12-12 15:52:40 -0800
commit712e4680cae91ca3ca7291bc7f5124d5a3578a4d (patch)
tree4cd87796f3532e8ab2028da4386496af21d1eb89 /desktop-widgets
parent0fab09a9901314f5597b16da370d3712ce28c4ae (diff)
downloadsubsurface-712e4680cae91ca3ca7291bc7f5124d5a3578a4d.tar.gz
preferences: connect() dialog page only once
Weirdly, the settingsChanged() signal of the dialog-pages was connected() to the settingsChanged() signal of the dialog every time the settings were accepted. Do it only once in the constructor. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'desktop-widgets')
-rw-r--r--desktop-widgets/preferences/preferencesdialog.cpp5
-rw-r--r--desktop-widgets/preferences/preferencesdialog.h3
2 files changed, 3 insertions, 5 deletions
diff --git a/desktop-widgets/preferences/preferencesdialog.cpp b/desktop-widgets/preferences/preferencesdialog.cpp
index 6ad91acec..1164c5de3 100644
--- a/desktop-widgets/preferences/preferencesdialog.cpp
+++ b/desktop-widgets/preferences/preferencesdialog.cpp
@@ -84,6 +84,7 @@ PreferencesDialog::PreferencesDialog()
pagesList->addItem(item);
pagesStack->addWidget(page);
page->refreshSettings();
+ connect(page, &AbstractPreferencesWidget::settingsChanged, &diveListNotifier, &DiveListNotifier::settingsChanged);
}
connect(pagesList, &QListWidget::currentRowChanged,
@@ -116,10 +117,8 @@ void PreferencesDialog::refreshPages()
void PreferencesDialog::applyRequested(bool closeIt)
{
- Q_FOREACH(AbstractPreferencesWidget *page, pages) {
- connect(page, &AbstractPreferencesWidget::settingsChanged, &diveListNotifier, &DiveListNotifier::settingsChanged, Qt::UniqueConnection);
+ for (AbstractPreferencesWidget *page: pages)
page->syncSettings();
- }
emit diveListNotifier.settingsChanged();
if (closeIt)
accept();
diff --git a/desktop-widgets/preferences/preferencesdialog.h b/desktop-widgets/preferences/preferencesdialog.h
index d05487b98..4eb222006 100644
--- a/desktop-widgets/preferences/preferencesdialog.h
+++ b/desktop-widgets/preferences/preferencesdialog.h
@@ -3,7 +3,6 @@
#define PREFERENCES_WIDGET_H
#include <QDialog>
-#include "core/pref.h"
class AbstractPreferencesWidget;
class QListWidget;
@@ -14,7 +13,7 @@ class QAbstractButton;
class PreferencesDialog : public QDialog {
Q_OBJECT
public:
- static PreferencesDialog* instance();
+ static PreferencesDialog *instance();
~PreferencesDialog();
void refreshPages();
void defaultsRequested();