summaryrefslogtreecommitdiff
path: root/src/installationmanager.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-08-17 12:42:27 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2019-08-17 12:42:27 -0400
commitdfa15218f33ad06a6e868e8e5f1022026b6530a9 (patch)
tree43fa180b413f3f6431f9329c12db2b0c3cc5e40a /src/installationmanager.cpp
parent7cc5f220520ab19940462fb6d2f660d8b7e2d600 (diff)
passes callbacks to QuestionBoxMemory so it doesn't access the ini directly
fixed selected executable being empty after closing the edit dialog put backup_install inside Settings
Diffstat (limited to 'src/installationmanager.cpp')
-rw-r--r--src/installationmanager.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/installationmanager.cpp b/src/installationmanager.cpp
index 89d0079f..522489e4 100644
--- a/src/installationmanager.cpp
+++ b/src/installationmanager.cpp
@@ -476,13 +476,18 @@ QString InstallationManager::generateBackupName(const QString &directoryName) co
bool InstallationManager::testOverwrite(GuessedValue<QString> &modName, bool *merge) const
{
QString targetDirectory = QDir::fromNativeSeparators(m_ModsDirectory + "\\" + modName);
+
while (QDir(targetDirectory).exists()) {
Settings &settings(Settings::instance());
- bool backup = settings.directInterface().value("backup_install", false).toBool();
- QueryOverwriteDialog overwriteDialog(m_ParentWidget,
- backup ? QueryOverwriteDialog::BACKUP_YES : QueryOverwriteDialog::BACKUP_NO);
+
+ const bool backup = settings.keepBackupOnInstall();
+ QueryOverwriteDialog overwriteDialog(
+ m_ParentWidget,
+ backup ? QueryOverwriteDialog::BACKUP_YES : QueryOverwriteDialog::BACKUP_NO);
+
if (overwriteDialog.exec()) {
- settings.directInterface().setValue("backup_install", overwriteDialog.backup());
+ settings.setKeepBackupOnInstall(overwriteDialog.backup());
+
if (overwriteDialog.backup()) {
QString backupDirectory = generateBackupName(targetDirectory);
if (!copyDir(targetDirectory, backupDirectory, false)) {