summaryrefslogtreecommitdiff
path: root/src/plugins/projectexplorer/toolchain.cpp
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@qt.io>2017-01-23 16:30:06 +0100
committerTobias Hunger <tobias.hunger@qt.io>2017-01-24 16:11:14 +0000
commit5d53289f12b4671f3b1ea30134d4e9ee92f2b1f2 (patch)
tree341cd1d004a2e59b49a0af58b1c9069db88318f0 /src/plugins/projectexplorer/toolchain.cpp
parentca380246a25c2e3c4a3076922d14bf25b21d61cb (diff)
downloadqt-creator-5d53289f12b4671f3b1ea30134d4e9ee92f2b1f2.tar.gz
ProjectExplorer: Simplify Language Ids
Language ids are exposed via the MacroExpander to the user. So remove the prefix and only leave the bare essential (C and Cxx), so that %{Compiler::Executable:Cxx} continues to work. Add code to transition kits and toolchains to the new Ids. Change-Id: I012e5fd405b09032418c90d2517aede21cfa1b47 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'src/plugins/projectexplorer/toolchain.cpp')
-rw-r--r--src/plugins/projectexplorer/toolchain.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/plugins/projectexplorer/toolchain.cpp b/src/plugins/projectexplorer/toolchain.cpp
index 0d72beb187..7e867b0c47 100644
--- a/src/plugins/projectexplorer/toolchain.cpp
+++ b/src/plugins/projectexplorer/toolchain.cpp
@@ -262,10 +262,18 @@ bool ToolChain::fromMap(const QVariantMap &data)
const bool autoDetect = data.value(QLatin1String(AUTODETECT_KEY), false).toBool();
d->m_detection = autoDetect ? AutoDetectionFromSettings : ManualDetection;
- if (data.contains(LANGUAGE_KEY_V2))
- d->m_language = Core::Id::fromSetting(data.value(QLatin1String(LANGUAGE_KEY_V2)));
- else if (data.contains(LANGUAGE_KEY_V1)) // Import from old settings
+ if (data.contains(LANGUAGE_KEY_V2)) {
+ // remove hack to trim language id in 4.4: This is to fix up broken language
+ // ids that happened in 4.3 master branch
+ const QString langId = data.value(QLatin1String(LANGUAGE_KEY_V2)).toString();
+ const int pos = langId.lastIndexOf('.');
+ if (pos >= 0)
+ d->m_language = Core::Id::fromString(langId.mid(pos + 1));
+ else
+ d->m_language = Core::Id::fromString(langId);
+ } else if (data.contains(LANGUAGE_KEY_V1)) { // Import from old settings
d->m_language = Internal::fromLanguageV1(data.value(QLatin1String(LANGUAGE_KEY_V1)).toInt());
+ }
if (!d->m_language.isValid())
d->m_language = Core::Id(Constants::CXX_LANGUAGE_ID);