diff options
author | Jamie Mansfield <jmansfield@cadixdev.org> | 2021-07-06 15:12:39 +0100 |
---|---|---|
committer | Jamie Mansfield <jmansfield@cadixdev.org> | 2021-07-06 15:22:26 +0100 |
commit | d5c448931344a6cee5f89fddf9a8e64dec1f8da6 (patch) | |
tree | 47864dd660924189baf4e0b7f3909ec0fed7c182 /api/logic/modplatform/technic/SolderPackInstallTask.cpp | |
parent | db392b49943d7f575cef29ec26e2490d49eb60a7 (diff) | |
download | PrismLauncher-d5c448931344a6cee5f89fddf9a8e64dec1f8da6.tar.gz PrismLauncher-d5c448931344a6cee5f89fddf9a8e64dec1f8da6.tar.bz2 PrismLauncher-d5c448931344a6cee5f89fddf9a8e64dec1f8da6.zip |
GH-1949 Allow Technic pack downloads to be aborted
This supports both 'single zip' modpacks and Solder packs, through the
Technic mod platform page.
Diffstat (limited to 'api/logic/modplatform/technic/SolderPackInstallTask.cpp')
-rw-r--r-- | api/logic/modplatform/technic/SolderPackInstallTask.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/api/logic/modplatform/technic/SolderPackInstallTask.cpp b/api/logic/modplatform/technic/SolderPackInstallTask.cpp index 1d17073c..1b4186d4 100644 --- a/api/logic/modplatform/technic/SolderPackInstallTask.cpp +++ b/api/logic/modplatform/technic/SolderPackInstallTask.cpp @@ -27,6 +27,14 @@ Technic::SolderPackInstallTask::SolderPackInstallTask(const QUrl &sourceUrl, con m_minecraftVersion = minecraftVersion; } +bool Technic::SolderPackInstallTask::abort() { + if(m_abortable) + { + return m_filesNetJob->abort(); + } + return false; +} + void Technic::SolderPackInstallTask::executeTask() { setStatus(tr("Finding recommended version:\n%1").arg(m_sourceUrl.toString())); @@ -106,6 +114,8 @@ void Technic::SolderPackInstallTask::fileListSucceeded() void Technic::SolderPackInstallTask::downloadSucceeded() { + m_abortable = false; + setStatus(tr("Extracting modpack")); m_filesNetJob.reset(); m_extractFuture = QtConcurrent::run([this]() @@ -132,12 +142,14 @@ void Technic::SolderPackInstallTask::downloadSucceeded() void Technic::SolderPackInstallTask::downloadFailed(QString reason) { + m_abortable = false; emitFailed(reason); m_filesNetJob.reset(); } void Technic::SolderPackInstallTask::downloadProgressChanged(qint64 current, qint64 total) { + m_abortable = true; setProgress(current / 2, total); } |