From 6fa671b329ffce681f9f522f27491bddd2ab8a15 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Wed, 3 Mar 2021 18:07:56 +0100 Subject: [PATCH] CMakePM: Use UNINITIALIZED for -D= in Batch Edit CMake is setting the UNINITIALIZED type if you forget to set the type of a variable when you do it from command line. Qt Creator was setting INTERNAL, which had the effect of not being displayed in the UI at all, giving the impression that the value has been dropped. Change-Id: I9a6b487bf5062d288365938fd7ef99b49de42884 Reviewed-by: Eike Ziller --- .../cmakeprojectmanager/cmakebuildconfiguration.cpp | 2 +- src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp | 13 ++++++++++--- src/plugins/cmakeprojectmanager/cmakeconfigitem.h | 2 +- src/plugins/cmakeprojectmanager/configmodel.h | 2 +- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index 3f40ca0b92d..7b2d8eb5690 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -519,7 +519,7 @@ void CMakeBuildSettingsWidget::updateButtonState() break; case CMakeProjectManager::ConfigModel::DataItem::UNKNOWN: default: - ni.type = CMakeConfigItem::INTERNAL; + ni.type = CMakeConfigItem::UNINITIALIZED; break; } return ni; diff --git a/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp b/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp index f979c283f35..4887bd130dd 100644 --- a/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp @@ -145,9 +145,11 @@ CMakeConfigItem::Type CMakeConfigItem::typeStringToType(const QByteArray &type) return CMakeConfigItem::PATH; if (type == "STATIC") return CMakeConfigItem::STATIC; + if (type == "INTERNAL") + return CMakeConfigItem::INTERNAL; - QTC_CHECK(type == "INTERNAL" || type == "UNINITIALIZED"); - return CMakeConfigItem::INTERNAL; + QTC_CHECK(type == "UNINITIALIZED"); + return CMakeConfigItem::UNINITIALIZED; } QString CMakeConfigItem::typeToTypeString(const CMakeConfigItem::Type t) @@ -163,8 +165,10 @@ QString CMakeConfigItem::typeToTypeString(const CMakeConfigItem::Type t) return {"INTERNAL"}; case CMakeProjectManager::CMakeConfigItem::STATIC: return {"STATIC"}; - case CMakeConfigItem::BOOL: + case CMakeProjectManager::CMakeConfigItem::BOOL: return {"BOOL"}; + case CMakeProjectManager::CMakeConfigItem::UNINITIALIZED: + return {"UNINITIALIZED"}; } QTC_CHECK(false); return {}; @@ -418,6 +422,9 @@ QString CMakeConfigItem::toString(const Utils::MacroExpander *expander) const case CMakeProjectManager::CMakeConfigItem::INTERNAL: typeStr = QLatin1String("INTERNAL"); break; + case CMakeProjectManager::CMakeConfigItem::UNINITIALIZED: + typeStr = QLatin1String("UNINITIALIZED"); + break; case CMakeProjectManager::CMakeConfigItem::STRING: default: typeStr = QLatin1String("STRING"); diff --git a/src/plugins/cmakeprojectmanager/cmakeconfigitem.h b/src/plugins/cmakeprojectmanager/cmakeconfigitem.h index 10c7651f6f7..7da405a48d8 100644 --- a/src/plugins/cmakeprojectmanager/cmakeconfigitem.h +++ b/src/plugins/cmakeprojectmanager/cmakeconfigitem.h @@ -45,7 +45,7 @@ namespace CMakeProjectManager { class CMAKE_EXPORT CMakeConfigItem { public: - enum Type { FILEPATH, PATH, BOOL, STRING, INTERNAL, STATIC }; + enum Type { FILEPATH, PATH, BOOL, STRING, INTERNAL, STATIC, UNINITIALIZED }; CMakeConfigItem(); CMakeConfigItem(const QByteArray &k, Type t, const QByteArray &d, const QByteArray &v, const QStringList &s = {}); CMakeConfigItem(const QByteArray &k, const QByteArray &v); diff --git a/src/plugins/cmakeprojectmanager/configmodel.h b/src/plugins/cmakeprojectmanager/configmodel.h index 8fb621c2ea0..a5cb94612e5 100644 --- a/src/plugins/cmakeprojectmanager/configmodel.h +++ b/src/plugins/cmakeprojectmanager/configmodel.h @@ -101,7 +101,7 @@ public: cmi.type = CMakeConfigItem::STRING; break; case DataItem::UNKNOWN: - cmi.type = CMakeConfigItem::INTERNAL; + cmi.type = CMakeConfigItem::UNINITIALIZED; break; } cmi.isUnset = isUnset;