diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2020-11-24 13:54:21 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2020-12-12 15:52:40 -0800 |
commit | 0fab09a9901314f5597b16da370d3712ce28c4ae (patch) | |
tree | 3b7169c64e83b74a93821a86dcd355be276eed13 /desktop-widgets | |
parent | f3a2ee8082fd5b9e54564b77ac49efdf9444e802 (diff) | |
download | subsurface-0fab09a9901314f5597b16da370d3712ce28c4ae.tar.gz |
preferences: don't remove/add pages in refreshPages()
This function was called when opening the preferences dialog
to update all the pages with the current preferences.
For unknown reasons it also removed / readded all the pages.
Remove that code and use the now leaner function when refreshing
the pages.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'desktop-widgets')
-rw-r--r-- | desktop-widgets/preferences/preferencesdialog.cpp | 31 |
1 files changed, 9 insertions, 22 deletions
diff --git a/desktop-widgets/preferences/preferencesdialog.cpp b/desktop-widgets/preferences/preferencesdialog.cpp index 1b4119e81..6ad91acec 100644 --- a/desktop-widgets/preferences/preferencesdialog.cpp +++ b/desktop-widgets/preferences/preferencesdialog.cpp @@ -24,7 +24,6 @@ #include <QStackedWidget> #include <QDialogButtonBox> #include <QAbstractButton> -#include <QDebug> PreferencesDialog *PreferencesDialog::instance() { @@ -80,7 +79,12 @@ PreferencesDialog::PreferencesDialog() pages.push_back(new PreferencesReset); std::sort(pages.begin(), pages.end(), abstractpreferenceswidget_lessthan); - refreshPages(); + for (AbstractPreferencesWidget *page: pages) { + QListWidgetItem *item = new QListWidgetItem(page->icon(), page->name()); + pagesList->addItem(item); + pagesStack->addWidget(page); + page->refreshSettings(); + } connect(pagesList, &QListWidget::currentRowChanged, pagesStack, &QStackedWidget::setCurrentIndex); @@ -106,21 +110,8 @@ void PreferencesDialog::buttonClicked(QAbstractButton* btn) void PreferencesDialog::refreshPages() { - // Remove things - pagesList->clear(); - while(pagesStack->count()) { - QWidget *curr = pagesStack->widget(0); - pagesStack->removeWidget(curr); - curr->setParent(0); - } - - // Read things - Q_FOREACH(AbstractPreferencesWidget *page, pages) { - QListWidgetItem *item = new QListWidgetItem(page->icon(), page->name()); - pagesList->addItem(item); - pagesStack->addWidget(page); + for (AbstractPreferencesWidget *page: pages) page->refreshSettings(); - } } void PreferencesDialog::applyRequested(bool closeIt) @@ -136,18 +127,14 @@ void PreferencesDialog::applyRequested(bool closeIt) void PreferencesDialog::cancelRequested() { - Q_FOREACH(AbstractPreferencesWidget *page, pages) { - page->refreshSettings(); - } + refreshPages(); reject(); } void PreferencesDialog::defaultsRequested() { copy_prefs(&default_prefs, &prefs); - Q_FOREACH(AbstractPreferencesWidget *page, pages) { - page->refreshSettings(); - } + refreshPages(); emit diveListNotifier.settingsChanged(); accept(); } |