/***************************************************************************
- * Copyright (C) 2005-08 by the Quassel Project *
+ * Copyright (C) 2005-09 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
-#ifndef _SETTINGSDLG_H_
-#define _SETTINGSDLG_H_
+#ifndef SETTINGSDLG_H
+#define SETTINGSDLG_H
#include <QtGui>
#include "ui_settingsdlg.h"
class SettingsDlg : public QDialog {
Q_OBJECT
- public:
- SettingsDlg(QWidget *parent = 0);
- void registerSettingsPage(SettingsPage *);
- void unregisterSettingsPage(SettingsPage *);
- SettingsPage *currentPage() const;
-
- //QSize sizeHint() const;
-
- public slots:
- void selectPage(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<QString, SettingsPage *> pages;
- QHash<SettingsPage *, QTreeWidgetItem *> treeItems;
-
- //QSize recommendedSize;
+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
+ };
};