preferences: sort pages only once

After each addition of a page in the constructor, the list was
resorted. This appears pointless. Instead, sort the list only
after all pages were added.

Since the add-page function is now a single line, remove it.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2020-11-24 12:55:59 +01:00 committed by Dirk Hohndel
parent 2d7be7a0e3
commit f3a2ee8082
2 changed files with 18 additions and 24 deletions

View file

@ -32,6 +32,11 @@ PreferencesDialog *PreferencesDialog::instance()
return self;
}
static bool abstractpreferenceswidget_lessthan(const AbstractPreferencesWidget *p1, const AbstractPreferencesWidget *p2)
{
return p1->positionHeight() < p2->positionHeight();
}
PreferencesDialog::PreferencesDialog()
{
//FIXME: This looks wrong.
@ -61,18 +66,19 @@ PreferencesDialog::PreferencesDialog()
setLayout(v);
addPreferencePage(new PreferencesLanguage());
addPreferencePage(new PreferencesGeoreference());
addPreferencePage(new PreferencesDefaults());
addPreferencePage(new PreferencesUnits());
addPreferencePage(new PreferencesGraph());
addPreferencePage(new PreferencesNetwork());
addPreferencePage(new PreferencesCloud());
addPreferencePage(new PreferencesEquipment());
addPreferencePage(new PreferencesMedia());
addPreferencePage(new PreferencesDc());
addPreferencePage(new PreferencesLog());
addPreferencePage(new PreferencesReset());
pages.push_back(new PreferencesLanguage);
pages.push_back(new PreferencesGeoreference);
pages.push_back(new PreferencesDefaults);
pages.push_back(new PreferencesUnits);
pages.push_back(new PreferencesGraph);
pages.push_back(new PreferencesNetwork);
pages.push_back(new PreferencesCloud);
pages.push_back(new PreferencesEquipment);
pages.push_back(new PreferencesMedia);
pages.push_back(new PreferencesDc);
pages.push_back(new PreferencesLog);
pages.push_back(new PreferencesReset);
std::sort(pages.begin(), pages.end(), abstractpreferenceswidget_lessthan);
refreshPages();
@ -98,17 +104,6 @@ void PreferencesDialog::buttonClicked(QAbstractButton* btn)
}
}
bool abstractpreferenceswidget_lessthan(AbstractPreferencesWidget *p1, AbstractPreferencesWidget *p2)
{
return p1->positionHeight() < p2->positionHeight();
}
void PreferencesDialog::addPreferencePage(AbstractPreferencesWidget *page)
{
pages.push_back(page);
std::sort(pages.begin(), pages.end(), abstractpreferenceswidget_lessthan);
}
void PreferencesDialog::refreshPages()
{
// Remove things

View file

@ -16,7 +16,6 @@ class PreferencesDialog : public QDialog {
public:
static PreferencesDialog* instance();
~PreferencesDialog();
void addPreferencePage(AbstractPreferencesWidget *page);
void refreshPages();
void defaultsRequested();
private: