diff options
author | flow <flowlnlnln@gmail.com> | 2022-10-13 15:10:35 -0300 |
---|---|---|
committer | flow <flowlnlnln@gmail.com> | 2022-10-13 15:10:35 -0300 |
commit | dfa220ef02f23ff734dec6247f4a124a7a144c7a (patch) | |
tree | 73dc55f36db5e421ad529f21fd38fcc5291d7974 /launcher/modplatform/modpacksch | |
parent | f26be005716818b643a0c8b1373dbe83e4cdcfbf (diff) | |
download | PrismLauncher-dfa220ef02f23ff734dec6247f4a124a7a144c7a.tar.gz PrismLauncher-dfa220ef02f23ff734dec6247f4a124a7a144c7a.tar.bz2 PrismLauncher-dfa220ef02f23ff734dec6247f4a124a7a144c7a.zip |
fix: issues with aborts (again)
i hate it
Signed-off-by: flow <flowlnlnln@gmail.com>
Diffstat (limited to 'launcher/modplatform/modpacksch')
-rw-r--r-- | launcher/modplatform/modpacksch/FTBPackInstallTask.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/launcher/modplatform/modpacksch/FTBPackInstallTask.cpp b/launcher/modplatform/modpacksch/FTBPackInstallTask.cpp index cc926d45..7b112d8f 100644 --- a/launcher/modplatform/modpacksch/FTBPackInstallTask.cpp +++ b/launcher/modplatform/modpacksch/FTBPackInstallTask.cpp @@ -73,8 +73,8 @@ bool PackInstallTask::abort() void PackInstallTask::executeTask() { - setAbortable(true); setStatus(tr("Getting the manifest...")); + setAbortable(false); // Find pack version auto version_it = std::find_if(m_pack.versions.constBegin(), m_pack.versions.constEnd(), @@ -94,10 +94,12 @@ void PackInstallTask::executeTask() QObject::connect(netJob, &NetJob::succeeded, this, &PackInstallTask::onManifestDownloadSucceeded); QObject::connect(netJob, &NetJob::failed, this, &PackInstallTask::onManifestDownloadFailed); + QObject::connect(netJob, &NetJob::aborted, this, &PackInstallTask::abort); QObject::connect(netJob, &NetJob::progress, this, &PackInstallTask::setProgress); m_net_job = netJob; + setAbortable(true); netJob->start(); } @@ -130,8 +132,8 @@ void PackInstallTask::onManifestDownloadSucceeded() void PackInstallTask::resolveMods() { - setAbortable(true); setStatus(tr("Resolving mods...")); + setAbortable(false); setProgress(0, 100); m_file_id_map.clear(); @@ -164,8 +166,11 @@ void PackInstallTask::resolveMods() connect(m_mod_id_resolver_task.get(), &Flame::FileResolvingTask::succeeded, this, &PackInstallTask::onResolveModsSucceeded); connect(m_mod_id_resolver_task.get(), &Flame::FileResolvingTask::failed, this, &PackInstallTask::onResolveModsFailed); + connect(m_mod_id_resolver_task.get(), &Flame::FileResolvingTask::aborted, this, &PackInstallTask::abort); connect(m_mod_id_resolver_task.get(), &Flame::FileResolvingTask::progress, this, &PackInstallTask::setProgress); + setAbortable(true); + m_mod_id_resolver_task->start(); } @@ -279,9 +284,8 @@ void PackInstallTask::onCreateInstanceSucceeded() void PackInstallTask::downloadPack() { - setAbortable(true); - setStatus(tr("Downloading mods...")); + setAbortable(false); auto* jobPtr = new NetJob(tr("Mod download"), APPLICATION->network()); for (auto const& file : m_version.files) { @@ -304,9 +308,12 @@ void PackInstallTask::downloadPack() connect(jobPtr, &NetJob::succeeded, this, &PackInstallTask::onModDownloadSucceeded); connect(jobPtr, &NetJob::failed, this, &PackInstallTask::onModDownloadFailed); + connect(jobPtr, &NetJob::aborted, this, &PackInstallTask::abort); connect(jobPtr, &NetJob::progress, this, &PackInstallTask::setProgress); m_net_job = jobPtr; + + setAbortable(true); jobPtr->start(); } |