diff options
author | hjk <hjk121@nokiamail.com> | 2014-10-10 14:15:44 +0200 |
---|---|---|
committer | hjk <hjk121@nokiamail.com> | 2014-10-10 16:22:52 +0200 |
commit | 46c4ab7bf9b43e5088feab54039d5de9b7165c6a (patch) | |
tree | b2382b3347f6498fc2b6e1d10061345399798cbf /src/libs/utils/stringutils.h | |
parent | 0812718905a15f1e9c6ec886faf9b051c6a3e078 (diff) | |
download | qt-creator-46c4ab7bf9b43e5088feab54039d5de9b7165c6a.tar.gz |
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 <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
Diffstat (limited to 'src/libs/utils/stringutils.h')
-rw-r--r-- | src/libs/utils/stringutils.h | 15 |
1 files changed, 15 insertions, 0 deletions
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 <functional> + 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<bool(const QString &name, QString *ret)> 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); |