connect(ui.buttonBox, SIGNAL(clicked(QAbstractButton *)), this, SLOT(buttonClicked(QAbstractButton *)));
}
+/*
void SettingsDlg::registerSettingsPage(SettingsPage *sp) {
QWidget *w = sp->widget();
w->setParent(this);
//SettingsInterface *sp = qobject_cast<SettingsInterface *>(ui.settingsStack->currentWidget());
//if(sp) sp->applyChanges();
}
+*/
SettingsDlg(QWidget *parent = 0);
void registerSettingsPage(SettingsPage *);
void unregisterSettingsPage(SettingsPage *);
-
+/*
public slots:
void selectPage(const QString &category, const QString &title);
void itemSelected();
void buttonClicked(QAbstractButton *);
void applyChanges();
-
+*/
private:
Ui::SettingsDlg ui;
#ifndef _SETTINGSPAGE_H_
#define _SETTINGSPAGE_H_
-//! Interface that needs to be implemented by pages of the settings dialog.
-class SettingsPage {
+#include <QWidget>
+
+//! A SettingsPage is a page in the settings dialog.
+class SettingsPage : public QWidget {
+ Q_OBJECT
+
public:
+ SettingsPage(const QString &category, const QString &name, QWidget *parent = 0);
virtual ~SettingsPage() {};
- virtual QString category() = 0;
- virtual QString title() = 0;
- virtual QWidget *widget() = 0;
- virtual void saveSettings() = 0;
- virtual void loadSettings() = 0;
+ virtual QString category() const;
+ virtual QString name() const;
- virtual bool hasChanged() = 0;
+ virtual bool hasChanged() const = 0;
+
+ public slots:
+ virtual void save() = 0;
+ virtual void load() = 0;
+ virtual void defaults() = 0;
signals:
- void modified();
+ void changed(bool hasChanged = true);
};
-Q_DECLARE_INTERFACE(SettingsPage, "org.quassel-irc.iface.SettingsPage/1.0");
-
#endif