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