From c59b6ec31830539963688a8a596b3aacc0455014 Mon Sep 17 00:00:00 2001 From: Manuel Nickschas Date: Sun, 16 Dec 2007 15:54:06 +0000 Subject: [PATCH] Getting ready to revamp the settings dialog and stuff. We will no longer make SettingsPage an interface, but subclass QWidget instead. --- src/qtui/settingsdlg.cpp | 2 ++ src/qtui/settingsdlg.h | 4 ++-- src/qtui/settingspage.h | 27 ++++++++++++++++----------- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/qtui/settingsdlg.cpp b/src/qtui/settingsdlg.cpp index 9d9d4e64..bb6521c1 100644 --- a/src/qtui/settingsdlg.cpp +++ b/src/qtui/settingsdlg.cpp @@ -31,6 +31,7 @@ SettingsDlg::SettingsDlg(QWidget *parent) : QDialog(parent) { connect(ui.buttonBox, SIGNAL(clicked(QAbstractButton *)), this, SLOT(buttonClicked(QAbstractButton *))); } +/* void SettingsDlg::registerSettingsPage(SettingsPage *sp) { QWidget *w = sp->widget(); w->setParent(this); @@ -87,3 +88,4 @@ void SettingsDlg::applyChanges() { //SettingsInterface *sp = qobject_cast(ui.settingsStack->currentWidget()); //if(sp) sp->applyChanges(); } +*/ diff --git a/src/qtui/settingsdlg.h b/src/qtui/settingsdlg.h index c4640bde..1bbc956d 100644 --- a/src/qtui/settingsdlg.h +++ b/src/qtui/settingsdlg.h @@ -32,7 +32,7 @@ class SettingsDlg : public QDialog { SettingsDlg(QWidget *parent = 0); void registerSettingsPage(SettingsPage *); void unregisterSettingsPage(SettingsPage *); - +/* public slots: void selectPage(const QString &category, const QString &title); @@ -40,7 +40,7 @@ class SettingsDlg : public QDialog { void itemSelected(); void buttonClicked(QAbstractButton *); void applyChanges(); - +*/ private: Ui::SettingsDlg ui; diff --git a/src/qtui/settingspage.h b/src/qtui/settingspage.h index c636ac3d..49c4c6be 100644 --- a/src/qtui/settingspage.h +++ b/src/qtui/settingspage.h @@ -21,23 +21,28 @@ #ifndef _SETTINGSPAGE_H_ #define _SETTINGSPAGE_H_ -//! Interface that needs to be implemented by pages of the settings dialog. -class SettingsPage { +#include + +//! 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 -- 2.20.1