diff options
author | Jamie Mansfield <jmansfield@cadixdev.org> | 2021-07-06 15:12:07 +0100 |
---|---|---|
committer | Jamie Mansfield <jmansfield@cadixdev.org> | 2021-07-06 15:12:07 +0100 |
commit | db392b49943d7f575cef29ec26e2490d49eb60a7 (patch) | |
tree | e1f93f73760abf06a415ff8e17d19428d1819335 | |
parent | d1a142f040d66b6c6dafc243d98f97b53473455c (diff) | |
download | PrismLauncher-db392b49943d7f575cef29ec26e2490d49eb60a7.tar.gz PrismLauncher-db392b49943d7f575cef29ec26e2490d49eb60a7.tar.bz2 PrismLauncher-db392b49943d7f575cef29ec26e2490d49eb60a7.zip |
GH-1949 Allow modpacks.ch pack downloads to be aborted
-rw-r--r-- | api/logic/modplatform/modpacksch/FTBPackInstallTask.cpp | 9 | ||||
-rw-r--r-- | api/logic/modplatform/modpacksch/FTBPackInstallTask.h | 3 |
2 files changed, 11 insertions, 1 deletions
diff --git a/api/logic/modplatform/modpacksch/FTBPackInstallTask.cpp b/api/logic/modplatform/modpacksch/FTBPackInstallTask.cpp index 6067c56a..f22373bc 100644 --- a/api/logic/modplatform/modpacksch/FTBPackInstallTask.cpp +++ b/api/logic/modplatform/modpacksch/FTBPackInstallTask.cpp @@ -19,7 +19,11 @@ PackInstallTask::PackInstallTask(Modpack pack, QString version) bool PackInstallTask::abort() { - return true; + if(abortable) + { + return jobPtr->abort(); + } + return false; } void PackInstallTask::executeTask() @@ -117,16 +121,19 @@ void PackInstallTask::downloadPack() connect(jobPtr.get(), &NetJob::succeeded, this, [&]() { + abortable = false; jobPtr.reset(); install(); }); connect(jobPtr.get(), &NetJob::failed, [&](QString reason) { + abortable = false; jobPtr.reset(); emitFailed(reason); }); connect(jobPtr.get(), &NetJob::progress, [&](qint64 current, qint64 total) { + abortable = true; setProgress(current, total); }); diff --git a/api/logic/modplatform/modpacksch/FTBPackInstallTask.h b/api/logic/modplatform/modpacksch/FTBPackInstallTask.h index 3b2d60de..55db3d3c 100644 --- a/api/logic/modplatform/modpacksch/FTBPackInstallTask.h +++ b/api/logic/modplatform/modpacksch/FTBPackInstallTask.h @@ -16,6 +16,7 @@ public: explicit PackInstallTask(Modpack pack, QString version); virtual ~PackInstallTask(){} + bool canAbort() const override { return true; } bool abort() override; protected: @@ -30,6 +31,8 @@ private: void install(); private: + bool abortable = false; + NetJobPtr jobPtr; QByteArray response; |