summaryrefslogtreecommitdiff
path: root/src/installationmanager.cpp
diff options
context:
space:
mode:
authorAl <26797547+Al12rs@users.noreply.github.com>2020-08-26 11:23:28 -0700
committerGitHub <noreply@github.com>2020-08-26 11:23:28 -0700
commitabc714c624712682b6f2b5c174d7cbd76ef8b51e (patch)
tree3917cac078bfaa6afe37bffeb3e3bdb9d2c0bf49 /src/installationmanager.cpp
parentdf26f7588082468d2348c678e8c4b016fe6a0cc4 (diff)
parentc23ee0b1dcd0cdcc15a881a2a6f45d2675e1c0a9 (diff)
Merge pull request #1214 from Al12rs/mark_uninstalled_when_replacing
Mark downloads of replaced mods as uninstalled
Diffstat (limited to 'src/installationmanager.cpp')
-rw-r--r--src/installationmanager.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/installationmanager.cpp b/src/installationmanager.cpp
index b9f35af8..801b2a67 100644
--- a/src/installationmanager.cpp
+++ b/src/installationmanager.cpp
@@ -369,7 +369,7 @@ QString InstallationManager::generateBackupName(const QString &directoryName) co
}
-bool InstallationManager::testOverwrite(GuessedValue<QString> &modName, bool *merge) const
+bool InstallationManager::testOverwrite(GuessedValue<QString> &modName, bool *merge)
{
QString targetDirectory = QDir::fromNativeSeparators(m_ModsDirectory + "\\" + modName);
@@ -406,6 +406,12 @@ bool InstallationManager::testOverwrite(GuessedValue<QString> &modName, bool *me
targetDirectory = QDir::fromNativeSeparators(m_ModsDirectory) + "/" + modName;
}
} else if (overwriteDialog.action() == QueryOverwriteDialog::ACT_REPLACE) {
+ unsigned int idx = ModInfo::getIndex(modName);
+ if (idx != UINT_MAX) {
+ auto modInfo = ModInfo::getByIndex(idx);
+ // mark the old install file as uninstalled
+ emit modReplaced(modInfo->getInstallationFile());
+ }
// save original settings like categories. Because it makes sense
QString metaFilename = targetDirectory + "/meta.ini";
QFile settingsFile(metaFilename);