mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2024-12-28 00:15:06 +00:00
92 lines
1.9 KiB
C++
92 lines
1.9 KiB
C++
#ifndef MAINWIZARD_HPP
|
|
#define MAINWIZARD_HPP
|
|
|
|
#include <QProcess>
|
|
#include <QWizard>
|
|
|
|
#ifndef Q_MOC_RUN
|
|
#include <components/files/configurationmanager.hpp>
|
|
|
|
#include <components/config/gamesettings.hpp>
|
|
#include <components/config/launchersettings.hpp>
|
|
#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<QString, Installation> 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
|