aboutsummaryrefslogtreecommitdiff
path: root/launcher/ModDownloadTask.cpp
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2022-06-11 17:19:34 -0300
committerflow <flowlnlnln@gmail.com>2022-07-17 11:33:43 -0300
commit91a5c4bdcbd3ae18139b85899f051fb3d9cbd1fc (patch)
tree2845daddf22f1f17a56ace9b4945c7a91d0c477b /launcher/ModDownloadTask.cpp
parent9a07ede615869e3df87c41a689ebbba16a433849 (diff)
downloadPrismLauncher-91a5c4bdcbd3ae18139b85899f051fb3d9cbd1fc.tar.gz
PrismLauncher-91a5c4bdcbd3ae18139b85899f051fb3d9cbd1fc.tar.bz2
PrismLauncher-91a5c4bdcbd3ae18139b85899f051fb3d9cbd1fc.zip
feat: add metadata get/delete via mod id
This is, in many cases, more reliable than name comparisons, so it's useful specially in cases where a mod changes name between versions Signed-off-by: flow <flowlnlnln@gmail.com>
Diffstat (limited to 'launcher/ModDownloadTask.cpp')
-rw-r--r--launcher/ModDownloadTask.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/launcher/ModDownloadTask.cpp b/launcher/ModDownloadTask.cpp
index b1dd88d3..7d35ff69 100644
--- a/launcher/ModDownloadTask.cpp
+++ b/launcher/ModDownloadTask.cpp
@@ -46,8 +46,12 @@ ModDownloadTask::ModDownloadTask(ModPlatform::IndexedPack mod, ModPlatform::Inde
void ModDownloadTask::downloadSucceeded()
{
m_filesNetJob.reset();
- if (!std::get<0>(to_delete).isEmpty())
- mods->uninstallMod(std::get<1>(to_delete), true);
+ auto name = std::get<0>(to_delete);
+ if (!name.isEmpty()) {
+ // If they have the same name, we keep the metadata.
+ // This is a workaround for mods that change names between versions ;c
+ mods->uninstallMod(std::get<1>(to_delete), name == m_mod.name);
+ }
}
void ModDownloadTask::downloadFailed(QString reason)