aboutsummaryrefslogtreecommitdiff
path: root/launcher/ResourceDownloadTask.cpp
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2023-01-08 12:33:10 -0300
committerflow <flowlnlnln@gmail.com>2023-01-13 16:23:09 -0300
commitc294c2d1df57c3d599fdea65bab9bb97b1fd699f (patch)
treed07f642bb138494d6f2eda2b2d22cabfc72a8055 /launcher/ResourceDownloadTask.cpp
parentbd36f8e220fb3019b0a9588b21ed1cbce5afbf93 (diff)
downloadPrismLauncher-c294c2d1df57c3d599fdea65bab9bb97b1fd699f.tar.gz
PrismLauncher-c294c2d1df57c3d599fdea65bab9bb97b1fd699f.tar.bz2
PrismLauncher-c294c2d1df57c3d599fdea65bab9bb97b1fd699f.zip
refactor(RD): allow setting custom folder target for downloaded resources
Signed-off-by: flow <flowlnlnln@gmail.com>
Diffstat (limited to 'launcher/ResourceDownloadTask.cpp')
-rw-r--r--launcher/ResourceDownloadTask.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/launcher/ResourceDownloadTask.cpp b/launcher/ResourceDownloadTask.cpp
index 687eaf51..8c9dae6f 100644
--- a/launcher/ResourceDownloadTask.cpp
+++ b/launcher/ResourceDownloadTask.cpp
@@ -40,7 +40,17 @@ ResourceDownloadTask::ResourceDownloadTask(ModPlatform::IndexedPack pack,
m_filesNetJob.reset(new NetJob(tr("Resource download"), APPLICATION->network()));
m_filesNetJob->setStatus(tr("Downloading resource:\n%1").arg(m_pack_version.downloadUrl));
- m_filesNetJob->addNetAction(Net::Download::makeFile(m_pack_version.downloadUrl, m_pack_model->dir().absoluteFilePath(getFilename())));
+ QDir dir { m_pack_model->dir() };
+ {
+ // FIXME: Make this more generic. May require adding additional info to IndexedVersion,
+ // or adquiring a reference to the base instance.
+ if (!m_pack_version.custom_target_folder.isEmpty()) {
+ dir.cdUp();
+ dir.cd(m_pack_version.custom_target_folder);
+ }
+ }
+
+ m_filesNetJob->addNetAction(Net::Download::makeFile(m_pack_version.downloadUrl, dir.absoluteFilePath(getFilename())));
connect(m_filesNetJob.get(), &NetJob::succeeded, this, &ResourceDownloadTask::downloadSucceeded);
connect(m_filesNetJob.get(), &NetJob::progress, this, &ResourceDownloadTask::downloadProgressChanged);
connect(m_filesNetJob.get(), &NetJob::failed, this, &ResourceDownloadTask::downloadFailed);