/***************************************************************************
- * Copyright (C) 2005-08 by the Quassel Project *
+ * Copyright (C) 2005-2015 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
-#ifndef _SETTINGSDLG_H_
-#define _SETTINGSDLG_H_
+#ifndef SETTINGSDLG_H
+#define SETTINGSDLG_H
+
+#include <QDialog>
-#include <QtGui>
#include "ui_settingsdlg.h"
#include "settingspage.h"
-class SettingsDlg : public QDialog {
- Q_OBJECT
- public:
+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);
+ inline SettingsPage *currentPage() const { return _currentPage; }
+
+public slots:
+ void selectPage(SettingsPage *sp); // const QString &category, const QString &title);
- private slots:
+private slots:
+ void coreConnectionStateChanged();
void itemSelected();
void buttonClicked(QAbstractButton *);
- void applyChanges();
+ bool applyChanges();
+ void undoChanges();
void reload();
void loadDefaults();
+ void setButtonStates();
+ void setItemState(QTreeWidgetItem *);
- private:
+private:
Ui::SettingsDlg ui;
- QHash<QString, SettingsPage *> pages;
-};
-
-/*
-class CoreSettingsPage : public QWidget, SettingsInterface {
- Q_OBJECT
-
- public:
-
-
- private:
- Ui::CoreSettingsPage ui;
+ SettingsPage *_currentPage;
+ QHash<SettingsPage *, bool> pageIsLoaded;
+ enum {
+ SettingsPageRole = Qt::UserRole
+ };
};
-*/
+
#endif