00001 // -*- Mode: c++ -*- 00002 00003 #ifndef MYTH_CONFIG_DIALOGS_H 00004 #define MYTH_CONFIG_DIALOGS_H 00005 00006 // Qt headers 00007 #include <QObject> 00008 #include <QString> 00009 00010 // MythTV headers 00011 #include "mythexp.h" 00012 #include "mythwidgets.h" 00013 #include "mythdialogs.h" 00014 #include "mythdbcon.h" 00015 #include "mythstorage.h" 00016 #include "mythconfiggroups.h" 00017 #include "mythterminal.h" 00018 00019 class MPUBLIC ConfigurationDialogWidget : public MythDialog 00020 { 00021 Q_OBJECT 00022 00023 public: 00024 ConfigurationDialogWidget(MythMainWindow *parent, 00025 const char *widgetName) : 00026 MythDialog(parent, widgetName) { } 00027 00028 virtual void keyPressEvent(QKeyEvent *e); 00029 00030 signals: 00031 void editButtonPressed(void); 00032 void deleteButtonPressed(void); 00033 }; 00034 00039 class MPUBLIC ConfigurationDialog : public Storage 00040 { 00041 public: 00042 ConfigurationDialog() : dialog(NULL), cfgGrp(new ConfigurationGroup()) { } 00043 virtual ~ConfigurationDialog(); 00044 00045 // Make a modal dialog containing configWidget 00046 virtual MythDialog *dialogWidget(MythMainWindow *parent, 00047 const char *widgetName); 00048 00049 // Show a dialogWidget, and save if accepted 00050 virtual DialogCode exec(bool saveOnExec = true, bool doLoad = true); 00051 00052 virtual void addChild(Configurable *child); 00053 00054 virtual Setting *byName(const QString &settingName) 00055 { return cfgGrp->byName(settingName); } 00056 00057 void setLabel(const QString &label); 00058 00059 // Storage 00060 virtual void Load(void) { cfgGrp->Load(); } 00061 virtual void Save(void) { cfgGrp->Save(); } 00062 virtual void Save(QString destination) { cfgGrp->Save(destination); } 00063 00064 protected: 00065 typedef vector<Configurable*> ChildList; 00066 00067 ChildList cfgChildren; 00068 vector<QWidget*> childwidget; 00069 MythDialog *dialog; 00070 ConfigurationGroup *cfgGrp; 00071 }; 00072 00077 class MPUBLIC ConfigurationWizard : public ConfigurationDialog 00078 { 00079 public: 00080 ConfigurationWizard() : ConfigurationDialog() {} 00081 00082 virtual MythDialog *dialogWidget(MythMainWindow *parent, 00083 const char *widgetName); 00084 }; 00085 00086 class MythTerminal; 00087 class MPUBLIC TerminalWizard : public ConfigurationWizard 00088 { 00089 public: 00090 TerminalWizard(QString program, QStringList args); 00091 00092 virtual DialogCode exec(bool saveOnExec = false, bool doLoad = false); 00093 00094 private: 00095 MythTerminal *terminal; 00096 }; 00097 00098 #endif // MYTH_CONFIG_DIALOGS_H
1.6.3