From 7e81d330d9c6346f8dc485666709b787f6482d3f Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Tue, 20 Jun 2017 12:07:07 +0200 Subject: CMake: Hide INTERNAL and STATIC configuration entries in Project UI Task-number: QTCREATORBUG-18403 Change-Id: I6b69305ff0dc337da1d8b20e0321be5ce1b1f595 Reviewed-by: Tim Jenssen Reviewed-by: Eike Ziller --- src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp | 4 +++- src/plugins/cmakeprojectmanager/configmodel.cpp | 9 +++++++-- src/plugins/cmakeprojectmanager/configmodel.h | 1 + 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index 8ae17f13d72..8bba67e359c 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -280,7 +280,9 @@ QList CMakeBuildConfiguration::completeCMakeConfiguration j.values = i.values; j.inCMakeCache = i.inCMakeCache; - j.isAdvanced = i.isAdvanced || i.type == CMakeConfigItem::INTERNAL; + j.isAdvanced = i.isAdvanced; + j.isHidden = i.type == CMakeConfigItem::INTERNAL || i.type == CMakeConfigItem::STATIC; + switch (i.type) { case CMakeConfigItem::FILEPATH: j.type = ConfigModel::DataItem::FILE; diff --git a/src/plugins/cmakeprojectmanager/configmodel.cpp b/src/plugins/cmakeprojectmanager/configmodel.cpp index 98d9cf05b7a..7336a2a7a2b 100644 --- a/src/plugins/cmakeprojectmanager/configmodel.cpp +++ b/src/plugins/cmakeprojectmanager/configmodel.cpp @@ -257,7 +257,9 @@ void ConfigModel::setConfiguration(const QList &config) QList result; while (newIt != newEndIt && oldIt != oldEndIt) { - if (newIt->key < oldIt->key) { + if (newIt->isHidden) { + ++newIt; + } else if (newIt->key < oldIt->key) { // Add new entry: result << InternalDataItem(*newIt); ++newIt; @@ -279,8 +281,11 @@ void ConfigModel::setConfiguration(const QList &config) } // Add remaining new entries: - for (; newIt != newEndIt; ++newIt) + for (; newIt != newEndIt; ++newIt) { + if (newIt->isHidden) + continue; result << InternalDataItem(*newIt); + } beginResetModel(); m_configuration = result; diff --git a/src/plugins/cmakeprojectmanager/configmodel.h b/src/plugins/cmakeprojectmanager/configmodel.h index 94fef0b6648..f9629f702fa 100644 --- a/src/plugins/cmakeprojectmanager/configmodel.h +++ b/src/plugins/cmakeprojectmanager/configmodel.h @@ -45,6 +45,7 @@ public: QString key; Type type = STRING; + bool isHidden = false; bool isAdvanced = false; bool inCMakeCache = false; QString value; -- cgit v1.2.3