00001 00023 #ifndef SETTING_WINDOW_H 00024 #define SETTING_WINDOW_H 00025 00026 #include <QtGui> 00027 #include "config.h" 00028 00029 class AbstractSettings : public QWidget 00030 { 00031 public: 00032 ~AbstractSettings() {}; 00033 virtual void load(QSettings*) = 0; 00034 virtual void save(QSettings*) = 0; 00035 }; 00036 00037 class SettingWindow : public QDialog 00038 { 00039 Q_OBJECT 00040 00041 public: 00042 SettingWindow(QWidget* = 0, Qt::WFlags=0); 00043 ~SettingWindow(); 00044 void addMenue(AbstractSettings*, const QString&, const QIcon&); 00045 void writeSettings(); 00046 void loadSettings(); 00047 int exec(); 00048 00049 private slots: 00050 void accept(); 00051 void abort(); 00052 00053 signals: 00054 void settingChanged(); 00055 00056 private: 00057 QSettings m_settings; 00058 QDialogButtonBox m_buttonBox; 00059 QList<AbstractSettings*> m_settingItems; 00060 QListWidget m_menueSelection; 00061 QStackedWidget m_menueWindow; 00062 }; 00063 00064 #endif