mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-01-03 17:37:18 +00:00
2ef7fc4e2c
1. Correctly reads Windows registry for vanilla MW install location. 2. Populates existing installation page with location of vanilla, when found. 3. On Windows, installer wizard now gets to Import page.
91 lines
2.0 KiB
C++
91 lines
2.0 KiB
C++
#ifndef MAINWIZARD_HPP
|
|
#define MAINWIZARD_HPP
|
|
|
|
#include <QProcess>
|
|
#include <QWizard>
|
|
#include <QMap>
|
|
|
|
#include <components/process/processinvoker.hpp>
|
|
|
|
#ifndef Q_MOC_RUN
|
|
#include <components/files/configurationmanager.hpp>
|
|
#endif
|
|
#include <components/config/gamesettings.hpp>
|
|
#include <components/config/launchersettings.hpp>
|
|
|
|
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 = 0);
|
|
~MainWizard();
|
|
|
|
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();
|
|
void reject();
|
|
|
|
};
|
|
|
|
}
|
|
|
|
#endif // MAINWIZARD_HPP
|