summaryrefslogtreecommitdiff
path: root/src/installationmanager.cpp
diff options
context:
space:
mode:
authorChris Bessent <lost.dragonist@gmail.com>2020-09-07 17:56:37 -0700
committerGitHub <noreply@github.com>2020-09-07 17:56:37 -0700
commit504683776c51253fbd2b922a269b09177944d031 (patch)
treebbc50427d1cbe3ceb9c6a8c52cac88e965241250 /src/installationmanager.cpp
parent2ad41ee2cd94f5012140989f9ddc553459fc5214 (diff)
parent23eab916aeefb773409d2c9dcb3ea2cd2ee1bda9 (diff)
Merge pull request #1227 from LostDragonist/master
Do not report a canceled install as failed
Diffstat (limited to 'src/installationmanager.cpp')
-rw-r--r--src/installationmanager.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/installationmanager.cpp b/src/installationmanager.cpp
index 801b2a67..608a8c91 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)
+IPluginInstaller::EInstallResult InstallationManager::testOverwrite(GuessedValue<QString> &modName, bool *merge)
{
QString targetDirectory = QDir::fromNativeSeparators(m_ModsDirectory + "\\" + modName);
@@ -388,7 +388,7 @@ bool InstallationManager::testOverwrite(GuessedValue<QString> &modName, bool *me
QString backupDirectory = generateBackupName(targetDirectory);
if (!copyDir(targetDirectory, backupDirectory, false)) {
reportError(tr("Failed to create backup"));
- return false;
+ return IPluginInstaller::RESULT_FAILED;
}
}
if (merge != nullptr) {
@@ -401,7 +401,7 @@ bool InstallationManager::testOverwrite(GuessedValue<QString> &modName, bool *me
if (ok && !name.isEmpty()) {
modName.update(name, GUESS_USER);
if (!ensureValidModName(modName)) {
- return false;
+ return IPluginInstaller::RESULT_FAILED;
}
targetDirectory = QDir::fromNativeSeparators(m_ModsDirectory) + "/" + modName;
}
@@ -436,18 +436,20 @@ bool InstallationManager::testOverwrite(GuessedValue<QString> &modName, bool *me
} else {
log::error("failed to restore original settings: {}", metaFilename);
}
- return true;
+ return IPluginInstaller::RESULT_SUCCESS;
} else if (overwriteDialog.action() == QueryOverwriteDialog::ACT_MERGE) {
- return true;
+ return IPluginInstaller::RESULT_SUCCESS;
+ } else /* if (overwriteDialog.action() == QueryOverwriteDialog::ACT_NONE) */ {
+ return IPluginInstaller::RESULT_CANCELED;
}
} else {
- return false;
+ return IPluginInstaller::RESULT_CANCELED;
}
}
QDir().mkdir(targetDirectory);
- return true;
+ return IPluginInstaller::RESULT_SUCCESS;;
}
@@ -476,8 +478,9 @@ IPluginInstaller::EInstallResult InstallationManager::doInstall(GuessedValue<QSt
bool merge = false;
// determine target directory
- if (!testOverwrite(modName, &merge)) {
- return IPluginInstaller::RESULT_FAILED;
+ IPluginInstaller::EInstallResult result = testOverwrite(modName, &merge);
+ if (result != IPluginInstaller::RESULT_SUCCESS) {
+ return result;
}
QString targetDirectory = QDir(m_ModsDirectory + "/" + modName).canonicalPath();