aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJamie Mansfield <jmansfield@cadixdev.org>2021-07-06 15:12:07 +0100
committerJamie Mansfield <jmansfield@cadixdev.org>2021-07-06 15:12:07 +0100
commitdb392b49943d7f575cef29ec26e2490d49eb60a7 (patch)
treee1f93f73760abf06a415ff8e17d19428d1819335
parentd1a142f040d66b6c6dafc243d98f97b53473455c (diff)
downloadPrismLauncher-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.cpp9
-rw-r--r--api/logic/modplatform/modpacksch/FTBPackInstallTask.h3
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;