File: mainwizard.hpp

package info (click to toggle)
openmw 0.49.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 33,992 kB
  • sloc: cpp: 372,479; xml: 2,149; sh: 1,403; python: 797; makefile: 26
file content (91 lines) | stat: -rw-r--r-- 1,973 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#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(Files::ConfigurationManager&& cfgMgr, 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