From 5a351eaa50fd20dbfbf6c4cb093bab1ac2e71546 Mon Sep 17 00:00:00 2001 From: hjk Date: Sat, 15 Nov 2014 20:16:53 +0100 Subject: [PATCH] ProjectExplorer: Add a MacroExpander member in each project Provide Project:Name there by default, and make it accessible from the target. Change-Id: I2faa52dc8c0703f3245cac2ca15b942e3006993a Reviewed-by: Tobias Hunger --- src/plugins/projectexplorer/project.cpp | 20 +++++++++++++++++--- src/plugins/projectexplorer/project.h | 3 +++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp index b01024c55ed..1c73409d918 100644 --- a/src/plugins/projectexplorer/project.cpp +++ b/src/plugins/projectexplorer/project.cpp @@ -42,9 +42,12 @@ #include #include #include -#include -#include + #include +#include +#include + +#include /*! \class ProjectExplorer::Project @@ -98,6 +101,8 @@ public: KitMatcher m_requiredKitMatcher; KitMatcher m_preferredKitMatcher; + + Utils::MacroExpander m_macroExpander; }; ProjectPrivate::ProjectPrivate() : @@ -109,7 +114,11 @@ ProjectPrivate::~ProjectPrivate() { delete m_accessor; } Project::Project() : d(new ProjectPrivate) -{ } +{ + d->m_macroExpander.setDisplayName(tr("Project")); + d->m_macroExpander.registerVariable("Project:Name", tr("Project Name"), + [this] { return displayName(); }); +} Project::~Project() { @@ -516,6 +525,11 @@ void Project::setup(QList infoList) } } +Utils::MacroExpander *Project::macroExpander() const +{ + return &d->m_macroExpander; +} + ProjectImporter *Project::createProjectImporter() const { return 0; diff --git a/src/plugins/projectexplorer/project.h b/src/plugins/projectexplorer/project.h index b4a917fd4ab..76a2b8432b8 100644 --- a/src/plugins/projectexplorer/project.h +++ b/src/plugins/projectexplorer/project.h @@ -45,6 +45,8 @@ class IDocument; class Context; } +namespace Utils { class MacroExpander; } + namespace ProjectExplorer { class BuildInfo; @@ -141,6 +143,7 @@ public: virtual bool needsSpecialDeployment() const; void setup(QList infoList); + Utils::MacroExpander *macroExpander() const; signals: void displayNameChanged();