From 46c4ab7bf9b43e5088feab54039d5de9b7165c6a Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 10 Oct 2014 14:15:44 +0200 Subject: Utils: Introduce a not-so-abstract MacroExpander utility class The current use of AbstractMacroExpander requires some boiler plate code that can be avoided. Change-Id: I753d872d824274d94d5105232a8fc05ac7bf0711 Reviewed-by: Oswald Buddenhagen Reviewed-by: Tobias Hunger --- src/libs/utils/stringutils.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/libs/utils/stringutils.h') diff --git a/src/libs/utils/stringutils.h b/src/libs/utils/stringutils.h index 97d47d64e4..958d56976c 100644 --- a/src/libs/utils/stringutils.h +++ b/src/libs/utils/stringutils.h @@ -32,6 +32,8 @@ #include "utils_global.h" +#include + QT_BEGIN_NAMESPACE class QStringList; QT_END_NAMESPACE @@ -75,6 +77,19 @@ private: bool expandNestedMacros(const QString &str, int *pos, QString *ret); }; +class QTCREATOR_UTILS_EXPORT MacroExpander : public AbstractMacroExpander +{ +public: + typedef std::function Resolver; + + explicit MacroExpander(const Resolver &resolver) : m_resolver(resolver) {} + + bool resolveMacro(const QString &name, QString *ret) { return m_resolver(name, ret); } + +private: + Resolver m_resolver; +}; + QTCREATOR_UTILS_EXPORT void expandMacros(QString *str, AbstractMacroExpander *mx); QTCREATOR_UTILS_EXPORT QString expandMacros(const QString &str, AbstractMacroExpander *mx); -- cgit v1.2.1