diff options
author | flow <flowlnlnln@gmail.com> | 2022-07-08 19:44:44 -0300 |
---|---|---|
committer | flow <flowlnlnln@gmail.com> | 2022-09-20 18:36:08 -0300 |
commit | eed73c90785ec977ee975d403270f9138aa6960c (patch) | |
tree | f188280e5c9f69f00321bf8a153a072b9b93d1b2 | |
parent | 795d6f35eed689677186a26ba54ce9e77613859d (diff) | |
download | PrismLauncher-eed73c90785ec977ee975d403270f9138aa6960c.tar.gz PrismLauncher-eed73c90785ec977ee975d403270f9138aa6960c.tar.bz2 PrismLauncher-eed73c90785ec977ee975d403270f9138aa6960c.zip |
refactor: clean up InstanceImportTask a bit
Also removes a divide by two in the download progress
(why was it there???)
Signed-off-by: flow <flowlnlnln@gmail.com>
-rw-r--r-- | launcher/InstanceImportTask.cpp | 44 |
1 files changed, 18 insertions, 26 deletions
diff --git a/launcher/InstanceImportTask.cpp b/launcher/InstanceImportTask.cpp index 72c2496f..da57ddeb 100644 --- a/launcher/InstanceImportTask.cpp +++ b/launcher/InstanceImportTask.cpp @@ -35,34 +35,26 @@ */ #include "InstanceImportTask.h" -#include <QtConcurrentRun> + #include "Application.h" -#include "BaseInstance.h" #include "FileSystem.h" #include "MMCZip.h" #include "NullInstance.h" + #include "icons/IconList.h" #include "icons/IconUtils.h" -#include "settings/INISettingsObject.h" -// FIXME: this does not belong here, it's Minecraft/Flame specific -#include <quazip/quazipdir.h> -#include "Json.h" -#include "minecraft/MinecraftInstance.h" -#include "minecraft/PackProfile.h" #include "modplatform/technic/TechnicPackProcessor.h" #include "modplatform/modrinth/ModrinthInstanceCreationTask.h" #include "modplatform/flame/FlameInstanceCreationTask.h" -#include "Application.h" -#include "icons/IconList.h" -#include "net/ChecksumValidator.h" - -#include "ui/dialogs/CustomMessageBox.h" -#include "ui/dialogs/BlockedModsDialog.h" +#include "settings/INISettingsObject.h" +#include <QtConcurrentRun> #include <algorithm> +#include <quazip/quazipdir.h> + InstanceImportTask::InstanceImportTask(const QUrl sourceUrl, QWidget* parent) { m_sourceUrl = sourceUrl; @@ -80,26 +72,26 @@ bool InstanceImportTask::abort() void InstanceImportTask::executeTask() { - if (m_sourceUrl.isLocalFile()) - { + if (m_sourceUrl.isLocalFile()) { m_archivePath = m_sourceUrl.toLocalFile(); processZipPack(); - } - else - { + } else { setStatus(tr("Downloading modpack:\n%1").arg(m_sourceUrl.toString())); m_downloadRequired = true; - const QString path = m_sourceUrl.host() + '/' + m_sourceUrl.path(); + const QString path(m_sourceUrl.host() + '/' + m_sourceUrl.path()); + auto entry = APPLICATION->metacache()->resolveEntry("general", path); entry->setStale(true); + m_archivePath = entry->getFullPath(); + m_filesNetJob = new NetJob(tr("Modpack download"), APPLICATION->network()); m_filesNetJob->addNetAction(Net::Download::makeCached(m_sourceUrl, entry)); - m_archivePath = entry->getFullPath(); - auto job = m_filesNetJob.get(); - connect(job, &NetJob::succeeded, this, &InstanceImportTask::downloadSucceeded); - connect(job, &NetJob::progress, this, &InstanceImportTask::downloadProgressChanged); - connect(job, &NetJob::failed, this, &InstanceImportTask::downloadFailed); + + connect(m_filesNetJob.get(), &NetJob::succeeded, this, &InstanceImportTask::downloadSucceeded); + connect(m_filesNetJob.get(), &NetJob::progress, this, &InstanceImportTask::downloadProgressChanged); + connect(m_filesNetJob.get(), &NetJob::failed, this, &InstanceImportTask::downloadFailed); + m_filesNetJob->start(); } } @@ -118,7 +110,7 @@ void InstanceImportTask::downloadFailed(QString reason) void InstanceImportTask::downloadProgressChanged(qint64 current, qint64 total) { - setProgress(current / 2, total); + setProgress(current, total); } void InstanceImportTask::processZipPack() |