/* ====================================================================
* Copyright (c) 2003-2006, 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 <qdialog.h>
class QListView;
class QListViewItem;
class QGroupBox;
class QWidgetStack;
class QPushButton;
// sys
#include <map>
class SettingsDialog : public QDialog
{
typedef QDialog super;
Q_OBJECT
public:
SettingsDialog( const QString& title, QWidget *parent=0, const char *name=0 );
virtual ~SettingsDialog();
void addSettingsInfo( SettingsInfo* info, const QString& parentTitle = "" );
void addSettingsWidget( const QString& settingsId, SettingsWidget* sw );
private slots:
void clicked( QListViewItem* item );
void ok();
void apply();
void cancel();
void modified();
private:
bool isModified();
QListView* _categories;
QWidgetStack* _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
syntax highlighted by Code2HTML, v. 0.9.1