summaryrefslogtreecommitdiff
path: root/src/installationmanager.cpp
diff options
context:
space:
mode:
authorTannin <devnull@localhost>2013-12-11 20:43:30 +0100
committerTannin <devnull@localhost>2013-12-11 20:43:30 +0100
commit22b8eb7c5a5d3a0d7033bbb57b2d248fc7c0fe11 (patch)
tree985d8a59d8b11a9148a2d8cffac8c690257d3336 /src/installationmanager.cpp
parent9ee90a35dc3ebdbc76b18cbeb72995345ee37052 (diff)
- downgrading a mod (using replace) will now change the version
- bain installer will now accept archives with omod conversion data.
Diffstat (limited to 'src/installationmanager.cpp')
-rw-r--r--src/installationmanager.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/installationmanager.cpp b/src/installationmanager.cpp
index 224602a8..07c015ea 100644
--- a/src/installationmanager.cpp
+++ b/src/installationmanager.cpp
@@ -426,7 +426,7 @@ QString InstallationManager::generateBackupName(const QString &directoryName) co
}
-bool InstallationManager::testOverwrite(GuessedValue<QString> &modName) const
+bool InstallationManager::testOverwrite(GuessedValue<QString> &modName, bool *merge) const
{
QString targetDirectory = QDir::fromNativeSeparators(m_ModsDirectory + "\\" + modName);
@@ -440,6 +440,7 @@ bool InstallationManager::testOverwrite(GuessedValue<QString> &modName) const
return false;
}
}
+ *merge = (overwriteDialog.action() == QueryOverwriteDialog::ACT_MERGE);
if (overwriteDialog.action() == QueryOverwriteDialog::ACT_RENAME) {
bool ok = false;
QString name = QInputDialog::getText(m_ParentWidget, tr("Mod Name"), tr("Name"),
@@ -513,8 +514,9 @@ bool InstallationManager::doInstall(GuessedValue<QString> &modName, int modID,
return false;
}
+ bool merge = false;
// determine target directory
- if (!testOverwrite(modName)) {
+ if (!testOverwrite(modName, &merge)) {
return false;
}
@@ -549,7 +551,7 @@ bool InstallationManager::doInstall(GuessedValue<QString> &modName, int modID,
}
if (!settingsFile.contains("version") ||
(!version.isEmpty() &&
- (VersionInfo(version) >= VersionInfo(settingsFile.value("version").toString())))) {
+ (!merge || (VersionInfo(version) >= VersionInfo(settingsFile.value("version").toString()))))) {
settingsFile.setValue("version", version);
}
if (!newestVersion.isEmpty() || !settingsFile.contains("newestVersion")) {