From c61804679fdb537739b3af43cc093015f303cccf Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 10 Oct 2014 14:15:57 +0200 Subject: [PATCH] QtSupport: Use the new MacroExpander base Change-Id: I8a3f3d461179ab1abf1704166ad3861645d49f99 Reviewed-by: Tobias Hunger --- src/plugins/qtsupport/baseqtversion.cpp | 6 +- src/plugins/qtsupport/qtkitinformation.cpp | 78 ++++++++-------------- src/plugins/qtsupport/qtkitinformation.h | 2 +- 3 files changed, 33 insertions(+), 53 deletions(-) diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp index fb591e0db61..6254dcab0a6 100644 --- a/src/plugins/qtsupport/baseqtversion.cpp +++ b/src/plugins/qtsupport/baseqtversion.cpp @@ -895,7 +895,11 @@ void BaseQtVersion::parseMkSpec(ProFileEvaluator *evaluator) const AbstractMacroExpander *BaseQtVersion::createMacroExpander() const { - return QtKitInformation::createMacroExpander(this); + return new MacroExpander([this](const QString &name, QString *ret) -> bool { + if (name == QLatin1String("Qt:name")) + return false; + return QtKitInformation::resolveQtMacro(this, name, ret); + }); } FileName BaseQtVersion::mkspec() const diff --git a/src/plugins/qtsupport/qtkitinformation.cpp b/src/plugins/qtsupport/qtkitinformation.cpp index d3be8db1e90..0c5a2d1daa2 100644 --- a/src/plugins/qtsupport/qtkitinformation.cpp +++ b/src/plugins/qtsupport/qtkitinformation.cpp @@ -40,12 +40,37 @@ #include using namespace ProjectExplorer; +using namespace Utils; namespace QtSupport { - namespace Internal { -static bool resolveQtMacro(const BaseQtVersion *version, const QString &name, QString *ret) +class QtKitInformationMacroExpander : public ProjectExplorer::KitInformationMacroExpander +{ +public: + QtKitInformationMacroExpander(const ProjectExplorer::Kit *k) : + ProjectExplorer::KitInformationMacroExpander(k) + { } + + bool resolveMacro(const QString &name, QString *ret) + { + return QtKitInformation::resolveQtMacro(QtKitInformation::qtVersion(kit()), name, ret); + } +}; + +} // namespace Internal + +QtKitInformation::QtKitInformation() +{ + setObjectName(QLatin1String("QtKitInformation")); + setId(QtKitInformation::id()); + setPriority(26000); + + connect(ProjectExplorer::KitManager::instance(), SIGNAL(kitsLoaded()), + this, SLOT(kitsWereLoaded())); +} + +bool QtKitInformation::resolveQtMacro(const BaseQtVersion *version, const QString &name, QString *ret) { const QString noInfo = QCoreApplication::translate("QtSupport::QtKitInformation", "none"); @@ -65,50 +90,6 @@ static bool resolveQtMacro(const BaseQtVersion *version, const QString &name, QS return false; } -class QtVersionMacroExpander : public Utils::AbstractMacroExpander -{ -public: - QtVersionMacroExpander(const BaseQtVersion *v) : - qtVersion(v) - { } - - bool resolveMacro(const QString &name, QString *ret) - { - if (name == QLatin1String("Qt:name")) - return false; - return resolveQtMacro(qtVersion, name, ret); - } - -private: - const BaseQtVersion *qtVersion; -}; - - -class QtKitInformationMacroExpander : public ProjectExplorer::KitInformationMacroExpander -{ -public: - QtKitInformationMacroExpander(const ProjectExplorer::Kit *k) : - ProjectExplorer::KitInformationMacroExpander(k) - { } - - bool resolveMacro(const QString &name, QString *ret) - { - return resolveQtMacro(QtKitInformation::qtVersion(kit()), name, ret); - } -}; - -} // namespace Internal - -QtKitInformation::QtKitInformation() -{ - setObjectName(QLatin1String("QtKitInformation")); - setId(QtKitInformation::id()); - setPriority(26000); - - connect(ProjectExplorer::KitManager::instance(), SIGNAL(kitsLoaded()), - this, SLOT(kitsWereLoaded())); -} - QVariant QtKitInformation::defaultValue(ProjectExplorer::Kit *k) const { Q_UNUSED(k); @@ -190,11 +171,6 @@ Utils::AbstractMacroExpander *QtKitInformation::createMacroExpander(const Projec return new Internal::QtKitInformationMacroExpander(k); } -Utils::AbstractMacroExpander *QtKitInformation::createMacroExpander(const BaseQtVersion *v) -{ - return new Internal::QtVersionMacroExpander(v); -} - Core::Id QtKitInformation::id() { return "QtSupport.QtInformation"; diff --git a/src/plugins/qtsupport/qtkitinformation.h b/src/plugins/qtsupport/qtkitinformation.h index c1e6e4136ec..c17bc4811e1 100644 --- a/src/plugins/qtsupport/qtkitinformation.h +++ b/src/plugins/qtsupport/qtkitinformation.h @@ -62,7 +62,7 @@ public: Utils::AbstractMacroExpander *createMacroExpander(const ProjectExplorer::Kit *k) const; - static Utils::AbstractMacroExpander *createMacroExpander(const BaseQtVersion *v); + static bool resolveQtMacro(const BaseQtVersion *version, const QString &name, QString *ret); static Core::Id id(); static int qtVersionId(const ProjectExplorer::Kit *k);