00001
00002
00003 #ifndef MYTH_CONFIG_DIALOGS_H
00004 #define MYTH_CONFIG_DIALOGS_H
00005
00006
00007 #include <qobject.h>
00008 #include <qstring.h>
00009 #include <qdeepcopy.h>
00010
00011
00012 #include "mythexp.h"
00013 #include "mythwidgets.h"
00014 #include "mythdialogs.h"
00015 #include "mythdbcon.h"
00016 #include "mythstorage.h"
00017 #include "mythconfiggroups.h"
00018
00019 class MPUBLIC ConfigPopupDialogWidget : public MythPopupBox
00020 {
00021 Q_OBJECT
00022
00023 public:
00024 ConfigPopupDialogWidget(MythMainWindow *parent, const char *widgetName) :
00025 MythPopupBox(parent, widgetName) { }
00026
00027 virtual void keyPressEvent(QKeyEvent *e);
00028 void accept() { MythPopupBox::accept(); }
00029 void reject() { MythPopupBox::reject(); }
00030
00031 protected:
00033 virtual ~ConfigPopupDialogWidget() { }
00034 };
00035
00036 class MPUBLIC ConfigurationPopupDialog : public VerticalConfigurationGroup
00037 {
00038 Q_OBJECT
00039
00040 public:
00041 ConfigurationPopupDialog() :
00042 VerticalConfigurationGroup(), dialog(NULL), label(NULL) { }
00043
00044 virtual void deleteLater(void);
00045
00046 virtual MythDialog *dialogWidget(
00047 MythMainWindow *parent, const char *widgetName);
00048
00049 virtual DialogCode exec(bool saveOnAccept = true);
00050
00051 virtual void setLabel(QString str);
00052
00053 public slots:
00054 void accept(void) { if (dialog) dialog->accept(); }
00055 void reject(void) { if (dialog) dialog->reject(); }
00056
00057 signals:
00058 void popupDone(int);
00059
00060 protected:
00062 virtual ~ConfigurationPopupDialog() { }
00063
00064 protected:
00065 ConfigPopupDialogWidget *dialog;
00066 QLabel *label;
00067 };
00068
00069 class MPUBLIC ConfigurationDialogWidget : public MythDialog
00070 {
00071 Q_OBJECT
00072
00073 public:
00074 ConfigurationDialogWidget(MythMainWindow *parent,
00075 const char *widgetName) :
00076 MythDialog(parent, widgetName) { }
00077
00078 virtual void keyPressEvent(QKeyEvent *e);
00079
00080 signals:
00081 void editButtonPressed(void);
00082 void deleteButtonPressed(void);
00083 };
00084
00089 class MPUBLIC ConfigurationDialog : public Storage
00090 {
00091 public:
00092 ConfigurationDialog() : dialog(NULL), cfgGrp(new ConfigurationGroup()) { }
00093 virtual ~ConfigurationDialog();
00094
00095
00096 virtual MythDialog *dialogWidget(MythMainWindow *parent,
00097 const char *widgetName);
00098
00099
00100 virtual DialogCode exec(bool saveOnExec = true, bool doLoad = true);
00101
00102 virtual void load(void) { cfgGrp->load(); }
00103 virtual void save(void) { cfgGrp->save(); }
00104 virtual void save(QString destination) { cfgGrp->save(destination); }
00105
00106 virtual void addChild(Configurable *child);
00107
00108 virtual Setting *byName(const QString &settingName)
00109 { return cfgGrp->byName(settingName); }
00110
00111 void setLabel(const QString &label);
00112
00113 protected:
00114 typedef vector<Configurable*> ChildList;
00115
00116 ChildList cfgChildren;
00117 vector<QWidget*> childwidget;
00118 MythDialog *dialog;
00119 ConfigurationGroup *cfgGrp;
00120 };
00121
00126 class MPUBLIC ConfigurationWizard : public ConfigurationDialog
00127 {
00128 public:
00129 ConfigurationWizard() : ConfigurationDialog() {}
00130
00131 virtual MythDialog *dialogWidget(MythMainWindow *parent,
00132 const char *widgetName);
00133 };
00134
00138 class MPUBLIC JumpConfigurationWizard :
00139 public QObject, public ConfigurationWizard
00140 {
00141 Q_OBJECT
00142
00143 public:
00144 virtual MythDialog *dialogWidget(MythMainWindow *parent,
00145 const char *widgetName);
00146
00147 virtual void deleteLater(void);
00148
00149 protected slots:
00150 void showPage(QString);
00151
00152 protected:
00154 virtual ~JumpConfigurationWizard();
00155 };
00156
00157 #endif // MYTH_CONFIG_DIALOGS_H