00001
00002 #ifndef SCHEMA_WIZARD_H
00003 #define SCHEMA_WIZARD_H
00004
00005 #include <QObject>
00006 #include <QString>
00007
00008 #include "mythexp.h"
00009 #include "dbutil.h"
00010 #include "mythmainwindow.h"
00011 #include "mythprogressdialog.h"
00012
00014 enum MythSchemaUpgrade
00015 {
00016 MYTH_SCHEMA_EXIT = 1,
00017 MYTH_SCHEMA_ERROR = 2,
00018 MYTH_SCHEMA_UPGRADE = 3,
00019 MYTH_SCHEMA_USE_EXISTING = 4
00020 };
00021
00025 class MPUBLIC SchemaUpgradeWizard : public QObject, public DBUtil
00026 {
00027 Q_OBJECT
00028
00029 public:
00030 SchemaUpgradeWizard(const QString &DBSchemaSetting, const QString &appName,
00031 const QString &upgradeSchemaVal);
00032 ~SchemaUpgradeWizard();
00033
00034
00036 MythDBBackupStatus BackupDB(void);
00037
00039 int Compare(void);
00040
00043 static SchemaUpgradeWizard *Get(const QString &DBSchemaSetting,
00044 const QString &appName,
00045 const QString &upgradeSchemaVal);
00046
00048 enum MythSchemaUpgrade PromptForUpgrade(const char *name,
00049 const bool upgradeAllowed,
00050 const bool upgradeIfNoUI,
00051 const int minDMBSmajor = 0,
00052 const int minDBMSminor = 0,
00053 const int minDBMSpoint = 0);
00054
00055 QString DBver;
00056 bool emptyDB;
00057 int versionsBehind;
00058
00059 MythDBBackupStatus backupStatus;
00060
00061 private:
00062 void BusyPopup(const QString &message);
00063 MythSchemaUpgrade GuiPrompt(const QString &message,
00064 bool upgradable, bool expert);
00065
00066 bool m_autoUpgrade;
00067 QString m_backupResult;
00068 MythUIBusyDialog *m_busyPopup;
00069 bool m_expertMode;
00070 QString m_schemaSetting;
00071 QString m_schemaName;
00072 QString m_newSchemaVer;
00073
00074 };
00075
00076 #endif // SCHEMA_WIZARD_H