/***************************************************************************
- * 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;
+public:
+ SettingsDlg(QWidget *parent = 0);
+ void registerSettingsPage(SettingsPage *);
+ void unregisterSettingsPage(SettingsPage *);
- //QSize sizeHint() const;
+ inline SettingsPage *currentPage() const { return _currentPage; }
- public slots:
- void selectPage(const QString &category, const QString &title);
+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 slots:
+ void coreConnectionStateChanged();
+ void itemSelected();
+ void buttonClicked(QAbstractButton *);
+ bool applyChanges();
+ void undoChanges();
+ void reload();
+ void loadDefaults();
+ void setButtonStates();
+ void setItemState(QTreeWidgetItem *);
- private:
- Ui::SettingsDlg ui;
+private:
+ Ui::SettingsDlg ui;
- SettingsPage *_currentPage;
- QHash<QString, SettingsPage *> pages;
- QHash<SettingsPage *, QTreeWidgetItem *> treeItems;
+ SettingsPage *_currentPage;
+ QHash<SettingsPage *, bool> pageIsLoaded;
- //QSize recommendedSize;
+ enum {
+ SettingsPageRole = Qt::UserRole
+ };
};
-/*
-class CoreSettingsPage : public QWidget, SettingsInterface {
- Q_OBJECT
-
- public:
-
-
- private:
- Ui::CoreSettingsPage ui;
-
-};
-*/
#endif