From 4ed3aa1f1c8f3a3ca32a2d3f9bdbee68d9da7dc9 Mon Sep 17 00:00:00 2001 From: 0x189D7997 <199489335+0x189D7997@users.noreply.github.com> Date: Fri, 17 Apr 2026 02:07:09 +0000 Subject: [PATCH 1/3] Fix(InstanceCreationTask): propagate abort signal to super Signed-off-by: 0x189D7997 <199489335+0x189D7997@users.noreply.github.com> --- launcher/InstanceCreationTask.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/launcher/InstanceCreationTask.cpp b/launcher/InstanceCreationTask.cpp index ecc9fe591..7e74a9336 100644 --- a/launcher/InstanceCreationTask.cpp +++ b/launcher/InstanceCreationTask.cpp @@ -18,7 +18,7 @@ bool InstanceCreationTask::abort() return m_gameFilesTask->abort(); } - return true; + return InstanceTask::abort(); } void InstanceCreationTask::executeTask() From 15b39af92e9147674c202448db8d586cd3981b8b Mon Sep 17 00:00:00 2001 From: 0x189D7997 <199489335+0x189D7997@users.noreply.github.com> Date: Fri, 17 Apr 2026 02:11:06 +0000 Subject: [PATCH 2/3] Fix(Task): check if task is still running before calling emitAborted() Signed-off-by: 0x189D7997 <199489335+0x189D7997@users.noreply.github.com> --- launcher/tasks/Task.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/launcher/tasks/Task.h b/launcher/tasks/Task.h index 6591ca302..38c09da90 100644 --- a/launcher/tasks/Task.h +++ b/launcher/tasks/Task.h @@ -165,7 +165,7 @@ class Task : public QObject, public QRunnable { //! used by external code to ask the task to abort virtual bool abort() { - if (canAbort()) + if (canAbort() && isRunning()) emitAborted(); return canAbort(); } From ffded2ccac953fa7843a6cd99bae1d0a62951f09 Mon Sep 17 00:00:00 2001 From: 0x189D7997 <199489335+0x189D7997@users.noreply.github.com> Date: Fri, 17 Apr 2026 02:56:04 +0000 Subject: [PATCH 3/3] Fix(NetJob): do not call emitAborted() when not running Signed-off-by: 0x189D7997 <199489335+0x189D7997@users.noreply.github.com> --- launcher/net/NetJob.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/launcher/net/NetJob.cpp b/launcher/net/NetJob.cpp index dae149ab3..03705900c 100644 --- a/launcher/net/NetJob.cpp +++ b/launcher/net/NetJob.cpp @@ -100,13 +100,18 @@ auto NetJob::canAbort() const -> bool auto NetJob::abort() -> bool { - bool fullyAborted = true; - // fail all downloads on the queue for (auto task : m_queue) m_failed.insert(task.get(), task); m_queue.clear(); + if (m_doing.isEmpty()) { + // no downloads to abort, NetJob is not running + return true; + } + + bool fullyAborted = true; + // abort active downloads auto toKill = m_doing.values(); for (auto part : toKill) {