aboutsummaryrefslogtreecommitdiff
path: root/launcher/ModDownloadTask.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/ModDownloadTask.cpp')
-rw-r--r--launcher/ModDownloadTask.cpp25
1 files changed, 12 insertions, 13 deletions
diff --git a/launcher/ModDownloadTask.cpp b/launcher/ModDownloadTask.cpp
index 08a02d29..e5766435 100644
--- a/launcher/ModDownloadTask.cpp
+++ b/launcher/ModDownloadTask.cpp
@@ -1,24 +1,28 @@
#include "ModDownloadTask.h"
#include "Application.h"
+#include "minecraft/mod/LocalModUpdateTask.h"
-ModDownloadTask::ModDownloadTask(const QUrl sourceUrl,const QString filename, const std::shared_ptr<ModFolderModel> mods)
-: m_sourceUrl(sourceUrl), mods(mods), filename(filename) {
-}
+ModDownloadTask::ModDownloadTask(ModPlatform::IndexedPack mod, ModPlatform::IndexedVersion version, const std::shared_ptr<ModFolderModel> mods)
+ : m_mod(mod), m_mod_version(version), mods(mods)
+{
+ m_update_task.reset(new LocalModUpdateTask(mods->dir(), m_mod, m_mod_version));
-void ModDownloadTask::executeTask() {
- setStatus(tr("Downloading mod:\n%1").arg(m_sourceUrl.toString()));
+ addTask(m_update_task);
m_filesNetJob.reset(new NetJob(tr("Mod download"), APPLICATION->network()));
- m_filesNetJob->addNetAction(Net::Download::makeFile(m_sourceUrl, mods->dir().absoluteFilePath(filename)));
+ m_filesNetJob->setStatus(tr("Downloading mod:\n%1").arg(m_mod_version.downloadUrl));
+
+ m_filesNetJob->addNetAction(Net::Download::makeFile(m_mod_version.downloadUrl, mods->dir().absoluteFilePath(getFilename())));
connect(m_filesNetJob.get(), &NetJob::succeeded, this, &ModDownloadTask::downloadSucceeded);
connect(m_filesNetJob.get(), &NetJob::progress, this, &ModDownloadTask::downloadProgressChanged);
connect(m_filesNetJob.get(), &NetJob::failed, this, &ModDownloadTask::downloadFailed);
- m_filesNetJob->start();
+
+ addTask(m_filesNetJob);
+
}
void ModDownloadTask::downloadSucceeded()
{
- emitSucceeded();
m_filesNetJob.reset();
}
@@ -32,8 +36,3 @@ void ModDownloadTask::downloadProgressChanged(qint64 current, qint64 total)
{
emit progress(current, total);
}
-
-bool ModDownloadTask::abort() {
- return m_filesNetJob->abort();
-}
-