diff options
Diffstat (limited to 'api/logic/modplatform/modpacksch/FTBPackInstallTask.h')
-rw-r--r-- | api/logic/modplatform/modpacksch/FTBPackInstallTask.h | 47 |
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; + +}; + +} |