/***************************************************************************
- * Copyright (C) 2005-07 by the Quassel IRC Team *
+ * Copyright (C) 2005-08 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
class SettingsDlg : public QDialog {
Q_OBJECT
- public:
- SettingsDlg(QWidget *parent = 0);
- void registerSettingsPage(SettingsPage *);
- void unregisterSettingsPage(SettingsPage *);
-/*
- public slots:
- void selectPage(const QString &category, const QString &title);
-
- private slots:
- void itemSelected();
- void buttonClicked(QAbstractButton *);
- void applyChanges();
-*/
- private:
- Ui::SettingsDlg ui;
-
- QHash<QString, SettingsPage *> pages;
-};
-
-/*
-class CoreSettingsPage : public QWidget, SettingsInterface {
- Q_OBJECT
-
- public:
-
-
- private:
- Ui::CoreSettingsPage ui;
+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
+ };
};
-*/
+
#endif