#ifndef MAINWIZARD_HPP #define MAINWIZARD_HPP #include #include #ifndef Q_MOC_RUN #include #include #include #endif namespace Process { class ProcessInvoker; } namespace Wizard { class MainWizard : public QWizard { Q_OBJECT public: struct Installation { bool hasMorrowind; bool hasTribunal; bool hasBloodmoon; QString iniPath; }; enum { Page_Intro, Page_MethodSelection, Page_LanguageSelection, Page_ExistingInstallation, Page_InstallationTarget, Page_ComponentSelection, Page_Installation, Page_Import, Page_Conclusion }; MainWizard(QWidget* parent = nullptr); ~MainWizard() override; bool findFiles(const QString& name, const QString& path); void addInstallation(const QString& path); void runSettingsImporter(); QMap mInstallations; Files::ConfigurationManager mCfgMgr; Process::ProcessInvoker* mImporterInvoker; bool mError; public slots: void addLogText(const QString& text); private: void setupLog(); void setupGameSettings(); void setupLauncherSettings(); void setupInstallations(); void setupPages(); void writeSettings(); Config::GameSettings mGameSettings; Config::LauncherSettings mLauncherSettings; QString mLogError; private slots: void importerStarted(); void importerFinished(int exitCode, QProcess::ExitStatus exitStatus); void accept() override; void reject() override; }; } #endif // MAINWIZARD_HPP