summaryrefslogtreecommitdiffstats
path: root/application/LaunchController.h
diff options
context:
space:
mode:
Diffstat (limited to 'application/LaunchController.h')
-rw-r--r--application/LaunchController.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/application/LaunchController.h b/application/LaunchController.h
new file mode 100644
index 00000000..55cb1e58
--- /dev/null
+++ b/application/LaunchController.h
@@ -0,0 +1,48 @@
+#pragma once
+#include <QObject>
+#include <BaseInstance.h>
+#include <tools/BaseProfiler.h>
+
+class InstanceWindow;
+class LaunchController: public Task
+{
+ Q_OBJECT
+public:
+ virtual void executeTask();
+
+ 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;
+ }
+
+private:
+ void login();
+ void launchInstance();
+
+private slots:
+ void readyForLaunch();
+
+private:
+ BaseProfilerFactory *m_profiler = nullptr;
+ bool m_online = true;
+ InstancePtr m_instance;
+ QWidget * m_parentWidget = nullptr;
+ InstanceWindow *m_console = nullptr;
+ AuthSessionPtr m_session;
+ std::shared_ptr <LaunchTask> m_launcher;
+};