aboutsummaryrefslogtreecommitdiff
path: root/api/logic/modplatform/modpacksch/FTBPackInstallTask.h
diff options
context:
space:
mode:
Diffstat (limited to 'api/logic/modplatform/modpacksch/FTBPackInstallTask.h')
-rw-r--r--api/logic/modplatform/modpacksch/FTBPackInstallTask.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/api/logic/modplatform/modpacksch/FTBPackInstallTask.h b/api/logic/modplatform/modpacksch/FTBPackInstallTask.h
new file mode 100644
index 00000000..55db3d3c
--- /dev/null
+++ b/api/logic/modplatform/modpacksch/FTBPackInstallTask.h
@@ -0,0 +1,47 @@
+#pragma once
+
+#include "FTBPackManifest.h"
+
+#include "InstanceTask.h"
+#include "multimc_logic_export.h"
+#include "net/NetJob.h"
+
+namespace ModpacksCH {
+
+class MULTIMC_LOGIC_EXPORT PackInstallTask : public InstanceTask
+{
+ Q_OBJECT
+
+public:
+ explicit PackInstallTask(Modpack pack, QString version);
+ virtual ~PackInstallTask(){}
+
+ bool canAbort() const override { return true; }
+ bool abort() override;
+
+protected:
+ virtual void executeTask() override;
+
+private slots:
+ void onDownloadSucceeded();
+ void onDownloadFailed(QString reason);
+
+private:
+ void downloadPack();
+ void install();
+
+private:
+ bool abortable = false;
+
+ NetJobPtr jobPtr;
+ QByteArray response;
+
+ Modpack m_pack;
+ QString m_version_name;
+ Version m_version;
+
+ QMap<QString, QString> filesToCopy;
+
+};
+
+}