Getting ready to revamp the settings dialog and stuff. We will no longer make
authorManuel Nickschas <sputnick@quassel-irc.org>
Sun, 16 Dec 2007 15:54:06 +0000 (15:54 +0000)
committerManuel Nickschas <sputnick@quassel-irc.org>
Sun, 16 Dec 2007 15:54:06 +0000 (15:54 +0000)
SettingsPage an interface, but subclass QWidget instead.

src/qtui/settingsdlg.cpp
src/qtui/settingsdlg.h
src/qtui/settingspage.h

index 9d9d4e6..bb6521c 100644 (file)
@@ -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<SettingsInterface *>(ui.settingsStack->currentWidget());
   //if(sp) sp->applyChanges();
 }
+*/
index c4640bd..1bbc956 100644 (file)
@@ -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;
 
index c636ac3..49c4c6b 100644 (file)
 #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