mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-10-31 23:26:41 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			91 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			91 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(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
 |