1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2024-12-28 18:18:52 +00:00
OpenMW/apps/launcher/maindialog.hpp

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

109 lines
2.5 KiB
C++
Raw Normal View History

2011-04-07 22:04:09 +00:00
#ifndef MAINDIALOG_H
#define MAINDIALOG_H
#ifndef Q_MOC_RUN
#include <components/process/processinvoker.hpp>
#include <components/config/gamesettings.hpp>
#include <components/config/launchersettings.hpp>
#endif
#include "ui_mainwindow.h"
2011-04-07 22:04:09 +00:00
class QListWidgetItem;
2014-01-27 19:14:02 +00:00
class QStackedWidget;
class QStringListModel;
class QString;
2011-04-07 22:04:09 +00:00
namespace Files
{
struct ConfigurationManager;
}
2013-10-25 16:17:26 +00:00
namespace Launcher
2011-04-07 22:04:09 +00:00
{
2013-10-25 16:17:26 +00:00
class GraphicsPage;
class DataFilesPage;
class UnshieldThread;
2023-01-06 19:01:50 +00:00
class ImportPage;
2014-01-27 19:14:02 +00:00
class SettingsPage;
2013-10-25 16:17:26 +00:00
2015-05-17 08:38:15 +00:00
enum FirstRunDialogResult
{
FirstRunDialogResultFailure,
FirstRunDialogResultContinue,
FirstRunDialogResultWizard
2015-05-17 08:38:15 +00:00
};
2013-10-25 16:17:26 +00:00
#ifndef WIN32
bool expansions(Launcher::UnshieldThread& cd);
#endif
2011-04-07 22:04:09 +00:00
2013-10-25 16:17:26 +00:00
class MainDialog : public QMainWindow, private Ui::MainWindow
{
Q_OBJECT
2011-04-07 22:04:09 +00:00
2013-10-25 16:17:26 +00:00
public:
explicit MainDialog(const Files::ConfigurationManager& configurationManager, QWidget* parent = nullptr);
~MainDialog() override;
FirstRunDialogResult showFirstRunDialog();
bool reloadSettings();
bool writeSettings();
2013-10-25 16:17:26 +00:00
public slots:
2023-01-06 19:01:50 +00:00
void enableDataPage();
void enableGraphicsPage();
void enableSettingsPage();
void enableImportPage();
2013-10-25 16:17:26 +00:00
void play();
void help();
protected:
bool event(QEvent* event) override;
private slots:
void wizardStarted();
void wizardFinished(int exitCode, QProcess::ExitStatus exitStatus);
2013-10-25 16:17:26 +00:00
private:
bool setup();
2013-10-25 16:17:26 +00:00
void createIcons();
void createPages();
2013-10-25 16:17:26 +00:00
bool setupLauncherSettings();
bool setupGameSettings();
bool setupGraphicsSettings();
bool setupGameData();
void setVersionLabel();
2013-10-25 16:17:26 +00:00
void loadSettings();
void saveSettings();
2013-10-25 16:17:26 +00:00
inline bool startProgram(const QString& name, bool detached = false)
{
return startProgram(name, QStringList(), detached);
}
bool startProgram(const QString& name, const QStringList& arguments, bool detached = false);
2011-04-07 22:04:09 +00:00
void closeEvent(QCloseEvent* event) override;
2013-10-25 16:17:26 +00:00
GraphicsPage* mGraphicsPage;
DataFilesPage* mDataFilesPage;
2023-01-06 19:01:50 +00:00
ImportPage* mImportPage;
2014-01-27 19:14:02 +00:00
SettingsPage* mSettingsPage;
Process::ProcessInvoker* mGameInvoker;
Process::ProcessInvoker* mWizardInvoker;
const Files::ConfigurationManager& mCfgMgr;
Config::GameSettings mGameSettings;
Config::LauncherSettings mLauncherSettings;
2013-10-25 16:17:26 +00:00
};
}
2011-04-07 22:04:09 +00:00
#endif