diff --git a/src/libs/installer/constants.h b/src/libs/installer/constants.h index df31a2c..41609d4 100644 --- a/src/libs/installer/constants.h +++ b/src/libs/installer/constants.h @@ -78,6 +78,7 @@ static const QLatin1String scRunProgram("RunProgram"); static const QLatin1String scRunProgramArguments("RunProgramArguments"); static const QLatin1String scStartMenuDir("StartMenuDir"); static const QLatin1String scRemoveTargetDir("RemoveTargetDir"); +static const QLatin1String scOverwriteExistingInstallation("OverwriteExistingInstallation"); static const QLatin1String scRunProgramDescription("RunProgramDescription"); static const QLatin1String scTargetConfigurationFile("TargetConfigurationFile"); static const QLatin1String scAllowNonAsciiCharacters("AllowNonAsciiCharacters"); diff --git a/src/libs/installer/packagemanagercoredata.cpp b/src/libs/installer/packagemanagercoredata.cpp index 399f929..3f1d615 100644 --- a/src/libs/installer/packagemanagercoredata.cpp +++ b/src/libs/installer/packagemanagercoredata.cpp @@ -91,6 +91,7 @@ PackageManagerCoreData::PackageManagerCoreData(const QHash &va m_variables.insert(scTargetDir, replaceVariables(m_settings.targetDir())); m_variables.insert(scRemoveTargetDir, replaceVariables(m_settings.removeTargetDir())); + m_variables.insert(scOverwriteExistingInstallation, m_settings.overwriteExistingInstallation()); } void PackageManagerCoreData::clear() diff --git a/src/libs/installer/packagemanagergui.cpp b/src/libs/installer/packagemanagergui.cpp index 85bf4e1..09ae876 100644 --- a/src/libs/installer/packagemanagergui.cpp +++ b/src/libs/installer/packagemanagergui.cpp @@ -2264,8 +2264,8 @@ bool TargetDirectoryPage::validatePage() if (!isVisible()) return true; - const QString remove = packageManagerCore()->value(QLatin1String("RemoveTargetDir")); - if (!QVariant(remove).toBool()) + const QString overwrite = packageManagerCore()->value(QLatin1String("OverwriteExistingInstallation")); + if (QVariant(overwrite).toBool()) return true; const QString targetDir = this->targetDir(); diff --git a/src/libs/installer/settings.cpp b/src/libs/installer/settings.cpp index 94adbf8..721906f 100644 --- a/src/libs/installer/settings.cpp +++ b/src/libs/installer/settings.cpp @@ -253,6 +253,7 @@ Settings Settings::fromFileAndPrefix(const QString &path, const QString &prefix, << scInstallerApplicationIcon << scInstallerWindowIcon << scLogo << scWatermark << scBanner << scBackground << scStartMenuDir << scMaintenanceToolName << scMaintenanceToolIniFile << scRemoveTargetDir + << scOverwriteExistingInstallation << scRunProgram << scRunProgramArguments << scRunProgramDescription << scDependsOnLocalInstallerBinary << scAllowSpaceInPath << scAllowNonAsciiCharacters << scWizardStyle << scTitleColor @@ -423,6 +424,11 @@ QString Settings::removeTargetDir() const return d->m_data.value(scRemoveTargetDir).toString(); } +QString Settings::overwriteExistingInstallation() const +{ + return d->m_data.value(scOverwriteExistingInstallation).toString(); +} + QString Settings::maintenanceToolName() const { return d->m_data.value(scMaintenanceToolName).toString(); diff --git a/src/libs/installer/settings.h b/src/libs/installer/settings.h index 96c2ba4..c4698d1 100644 --- a/src/libs/installer/settings.h +++ b/src/libs/installer/settings.h @@ -106,6 +106,7 @@ public: QString adminTargetDir() const; QString removeTargetDir() const; + QString overwriteExistingInstallation() const; QString maintenanceToolName() const; QString maintenanceToolIniFile() const;