diff --git a/src/plugins/cmakeprojectmanager/configmodel.cpp b/src/plugins/cmakeprojectmanager/configmodel.cpp index 287615650ca..a274c5a89ea 100644 --- a/src/plugins/cmakeprojectmanager/configmodel.cpp +++ b/src/plugins/cmakeprojectmanager/configmodel.cpp @@ -508,10 +508,11 @@ void ConfigModel::generateTree() auto root = new Utils::TreeItem; for (InternalDataItem &di : m_configuration) { auto it = initialHash.find(di.key); + Utils::MacroExpander *expander = macroExpander(); if (it != initialHash.end()) - di.initialValue = it->expandedValue(macroExpander()); + di.initialValue = it->expandedValue(expander); - root->appendChild(new Internal::ConfigModelTreeItem(&di)); + root->appendChild(new Internal::ConfigModelTreeItem(&di, expander)); } setRootItem(root); } @@ -673,11 +674,17 @@ QString ConfigModelTreeItem::toolTip() const tooltip << dataItem->description; const QString pattern = "
%1
%2
"; + const QString value = dataItem->currentValue(); if (dataItem->isInitial) { if (!dataItem->kitValue.isEmpty()) tooltip << pattern.arg(Tr::tr("Kit:")).arg(dataItem->kitValue); - tooltip << pattern.arg(Tr::tr("Initial Configuration:")).arg(dataItem->currentValue()); + tooltip << pattern.arg(Tr::tr("Initial Configuration:")).arg(value); + + const QString expandedValue = dataItem->expandedValue(m_macroExpander); + const bool showExpanded = expandedValue != value; + if (showExpanded) + tooltip << pattern.arg(Tr::tr("Expands to:")).arg(expandedValue); } else { if (!dataItem->initialValue.isEmpty()) { tooltip << pattern.arg(Tr::tr("Initial Configuration:")) @@ -685,7 +692,7 @@ QString ConfigModelTreeItem::toolTip() const } if (dataItem->inCMakeCache) { - tooltip << pattern.arg(Tr::tr("Current Configuration:")).arg(dataItem->currentValue()); + tooltip << pattern.arg(Tr::tr("Current Configuration:")).arg(value); } else { tooltip << pattern.arg(Tr::tr("Not in CMakeCache.txt")).arg(QString()); } diff --git a/src/plugins/cmakeprojectmanager/configmodel.h b/src/plugins/cmakeprojectmanager/configmodel.h index e70cac3bbec..0e3de71cb77 100644 --- a/src/plugins/cmakeprojectmanager/configmodel.h +++ b/src/plugins/cmakeprojectmanager/configmodel.h @@ -123,7 +123,10 @@ private: class ConfigModelTreeItem : public Utils::TreeItem { public: - ConfigModelTreeItem(ConfigModel::InternalDataItem *di = nullptr) : dataItem(di) {} + ConfigModelTreeItem(ConfigModel::InternalDataItem *di, Utils::MacroExpander *macroExpander) + : dataItem(di) + , m_macroExpander(macroExpander) + {} ~ConfigModelTreeItem() override; QVariant data(int column, int role) const final; @@ -134,6 +137,9 @@ public: QString currentValue() const; ConfigModel::InternalDataItem *dataItem; + +private: + Utils::MacroExpander *m_macroExpander = nullptr; }; } // CMakeProjectManager::Internal