+public:
+ SettingsDlg(QWidget *parent = 0);
+ void registerSettingsPage(SettingsPage *);
+ void unregisterSettingsPage(SettingsPage *);
+
+ inline SettingsPage *currentPage() const { return _currentPage; }
+
+public slots:
+ void selectPage(SettingsPage *sp); // const QString &category, const QString &title);
+
+private slots:
+ void itemSelected();
+ void buttonClicked(QAbstractButton *);
+ bool applyChanges();
+ void undoChanges();
+ void reload();
+ void loadDefaults();
+ void setButtonStates();
+
+private:
+ Ui::SettingsDlg ui;
+
+ SettingsPage *_currentPage;
+ QHash<SettingsPage *, bool> pageIsLoaded;
+
+ enum {
+ SettingsPageRole = Qt::UserRole
+ };