1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
/* ====================================================================
* Copyright (c) 2003-2007, Martin Hauner
* http://subcommander.tigris.org
*
* Subcommander is licensed as described in the file doc/COPYING, which
* you should have received as part of this distribution.
* ====================================================================
*/
#ifndef _SC_SETTINGSDIALOG_H
#define _SC_SETTINGSDIALOG_H
// sc
class SettingsInfo;
class SettingsWidget;
class SettingsLvi;
// qt
#include <QtGui/QDialog>
class QTreeWidget;
class QTreeWidgetItem;
class QGroupBox;
class QStackedWidget;
class QPushButton;
// sys
#include <map>
class SettingsDialog : public QDialog
{
typedef QDialog super;
Q_OBJECT
public:
SettingsDialog( const QString& title, QWidget *parent=0 );
virtual ~SettingsDialog();
void addSettingsInfo( SettingsInfo* info, const QString& parentTitle = "" );
void addSettingsWidget( const QString& settingsId, SettingsWidget* sw );
private slots:
void itemClicked( QTreeWidgetItem* item, int col );
void ok();
void apply();
void cancel();
void modified();
private:
bool isModified();
QTreeWidget* _categories;
QStackedWidget* _stack;
QGroupBox* _box;
SettingsInfo* _curInfo;
typedef std::map<QString,SettingsWidget*> Widgets;
Widgets _widgets;
typedef std::map<QString,SettingsLvi*> Lvis;
Lvis _lvis;
QPushButton* _ok;
QPushButton* _apply;
};
#endif // _SC_SETTINGSDIALOG_H
|