From bd05e01e3d9b56cd6d4d41aa02bb45f4a0830465 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 8 Oct 2020 10:12:51 +0200 Subject: [PATCH] ProjectExplorer: Make default build dir template backward-comaptible Otherwise, switching back and forth between QtCreator 4.13/14 will inject new variables into the old Qt Creator, where they are not available. Amends b55825a420. Fixes: QTCREATORBUG-24740 Change-Id: I6c77626c790005c80b716e5b8006d7034c0f150b Reviewed-by: hjk --- src/plugins/projectexplorer/buildpropertiessettings.h | 1 + src/plugins/projectexplorer/projectexplorer.cpp | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/plugins/projectexplorer/buildpropertiessettings.h b/src/plugins/projectexplorer/buildpropertiessettings.h index 17432b45e0d..63c289b5fb2 100644 --- a/src/plugins/projectexplorer/buildpropertiessettings.h +++ b/src/plugins/projectexplorer/buildpropertiessettings.h @@ -35,6 +35,7 @@ class PROJECTEXPLORER_EXPORT BuildPropertiesSettings { public: QString buildDirectoryTemplate; + QString buildDirectoryTemplateOld; // TODO: Remove in ~4.16 Utils::TriState separateDebugInfo; Utils::TriState qmlDebugging; Utils::TriState qtQuickCompiler; diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 344f9c1766b..b10a4929706 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -259,7 +259,8 @@ const char PROJECT_OPEN_LOCATIONS_CONTEXT_MENU[] = "Project.P.OpenLocation.CtxM // Default directories: const char DEFAULT_BUILD_DIRECTORY_TEMPLATE[] = "../%{JS: Util.asciify(\"build-%{Project:Name}-%{Kit:FileSystemName}-%{BuildConfig:Name}\")}"; -const char DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY[] = "Directories/BuildDirectory.Template"; +const char DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY_OLD[] = "Directories/BuildDirectory.Template"; // TODO: Remove in ~4.16 +const char DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY[] = "Directories/BuildDirectory.TemplateV2"; const char BUILD_BEFORE_DEPLOY_SETTINGS_KEY[] = "ProjectExplorer/Settings/BuildBeforeDeploy"; const char DEPLOY_BEFORE_RUN_SETTINGS_KEY[] = "ProjectExplorer/Settings/DeployBeforeRun"; @@ -1532,8 +1533,14 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er dd->m_projectExplorerSettings.lowBuildPriority = s->value(Constants::LOW_BUILD_PRIORITY_SETTINGS_KEY, false).toBool(); + dd->m_buildPropertiesSettings.buildDirectoryTemplateOld + = s->value(Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY_OLD).toString(); dd->m_buildPropertiesSettings.buildDirectoryTemplate = s->value(Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY).toString(); + if (dd->m_buildPropertiesSettings.buildDirectoryTemplate.isEmpty()) { + dd->m_buildPropertiesSettings.buildDirectoryTemplate + = dd->m_buildPropertiesSettings.buildDirectoryTemplateOld; + } if (dd->m_buildPropertiesSettings.buildDirectoryTemplate.isEmpty()) dd->m_buildPropertiesSettings.buildDirectoryTemplate = Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE; // TODO: Remove in ~4.16 @@ -2110,6 +2117,8 @@ void ProjectExplorerPluginPrivate::savePersistentSettings() s->setValue(Constants::STOP_BEFORE_BUILD_SETTINGS_KEY, int(dd->m_projectExplorerSettings.stopBeforeBuild)); // Store this in the Core directory scope for backward compatibility! + s->setValue(Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY_OLD, + dd->m_buildPropertiesSettings.buildDirectoryTemplateOld); s->setValue(Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY, dd->m_buildPropertiesSettings.buildDirectoryTemplate);