summaryrefslogtreecommitdiffstats
path: root/application/LaunchController.h
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2015-07-05 01:54:30 +0200
committerPetr Mrázek <peterix@gmail.com>2015-07-05 01:54:30 +0200
commit7f1320390c55e408a4b0081b2606eab3892a8148 (patch)
treee08183b17e551e6807939c5ad2932ae68e14f49b /application/LaunchController.h
parent526a511f455234152ca9b5bc8c60d3c82cbfa417 (diff)
downloadMultiMC-7f1320390c55e408a4b0081b2606eab3892a8148.tar
MultiMC-7f1320390c55e408a4b0081b2606eab3892a8148.tar.gz
MultiMC-7f1320390c55e408a4b0081b2606eab3892a8148.tar.lz
MultiMC-7f1320390c55e408a4b0081b2606eab3892a8148.tar.xz
MultiMC-7f1320390c55e408a4b0081b2606eab3892a8148.zip
GH-1053 move launch process UI to a separate class
Diffstat (limited to 'application/LaunchController.h')
-rw-r--r--application/LaunchController.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/application/LaunchController.h b/application/LaunchController.h
new file mode 100644
index 00000000..f62d5124
--- /dev/null
+++ b/application/LaunchController.h
@@ -0,0 +1,49 @@
+#pragma once
+#include <QObject>
+#include <BaseInstance.h>
+#include <tools/BaseProfiler.h>
+
+class ConsoleWindow;
+class LaunchController: public QObject
+{
+ Q_OBJECT
+public:
+ LaunchController(QObject * parent = nullptr);
+ virtual ~LaunchController(){};
+
+ void setInstance(InstancePtr instance)
+ {
+ m_instance = instance;
+ }
+ void setOnline(bool online)
+ {
+ m_online = online;
+ }
+ void setProfiler(BaseProfilerFactory *profiler)
+ {
+ m_profiler = profiler;
+ }
+ void setParentWidget(QWidget * widget)
+ {
+ m_parentWidget = widget;
+ }
+
+ void launch();
+
+private:
+ void login();
+ void launchInstance();
+
+private slots:
+ void readyForLaunch();
+ void instanceEnded();
+
+private:
+ BaseProfilerFactory *m_profiler = nullptr;
+ bool m_online = true;
+ InstancePtr m_instance;
+ QWidget * m_parentWidget = nullptr;
+ ConsoleWindow *m_console = nullptr;
+ AuthSessionPtr m_session;
+ std::shared_ptr <BaseLauncher> m_launcher;
+};