1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2024-12-29 03:19:44 +00:00
OpenMW/apps/wizard/mainwizard.hpp
Thunderforge efcdb2dfdd Using override keyword in most apps
Detected by clang-tidy's modernize-use-override

Future MRs can be created to run this on OpenMW and OpenMW CS
2021-05-18 19:42:24 -05:00

90 lines
2.0 KiB
C++

#ifndef MAINWIZARD_HPP
#define MAINWIZARD_HPP
#include <QWizard>
#include <components/process/processinvoker.hpp>
#ifndef Q_MOC_RUN
#include <components/files/configurationmanager.hpp>
#include <components/config/gamesettings.hpp>
#include <components/config/launchersettings.hpp>
#endif
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<QString, Installation> mInstallations;
Files::ConfigurationManager mCfgMgr;
Process::ProcessInvoker *mImporterInvoker;
bool mError;
public slots:
void addLogText(const QString &text);
private:
/// convert boost::filesystem::path to QString
QString toQString(const boost::filesystem::path& path);
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