diff options
author | flow <flowlnlnln@gmail.com> | 2023-01-08 12:33:10 -0300 |
---|---|---|
committer | flow <flowlnlnln@gmail.com> | 2023-01-13 16:23:09 -0300 |
commit | c294c2d1df57c3d599fdea65bab9bb97b1fd699f (patch) | |
tree | d07f642bb138494d6f2eda2b2d22cabfc72a8055 /launcher/ResourceDownloadTask.cpp | |
parent | bd36f8e220fb3019b0a9588b21ed1cbce5afbf93 (diff) | |
download | PrismLauncher-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.cpp | 12 |
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); |