diff options
author | hjk <hjk121@nokiamail.com> | 2014-10-22 16:22:39 +0200 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@theqtcompany.com> | 2014-10-23 12:43:57 +0200 |
commit | cd53defc5d4b5206c9be234ea31f1c23d4975d15 (patch) | |
tree | cdfba9e39022dedcfb108ac0961c93ab73e65ef2 /src/libs/utils/macroexpander.cpp | |
parent | acf79d7fc61bdaefd2b108902b85f4ab48653bbe (diff) |
Restore JsonWizard expander functionality
Task-number: QTCREATORBUG-13229
Change-Id: I91fd996cdbf5f3e71bdf817e9c5beebbb007681b
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
Diffstat (limited to 'src/libs/utils/macroexpander.cpp')
-rw-r--r-- | src/libs/utils/macroexpander.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/libs/utils/macroexpander.cpp b/src/libs/utils/macroexpander.cpp index fb365242ab9..8b65275b2df 100644 --- a/src/libs/utils/macroexpander.cpp +++ b/src/libs/utils/macroexpander.cpp @@ -66,6 +66,13 @@ public: if (found) return true; + found = Utils::anyOf(m_extraResolvers, [name, ret] (const MacroExpander::ResolverFunction &resolver) { + return resolver(name, ret); + }); + + if (found) + return true; + return this == globalMacroExpander()->d ? false : globalMacroExpander()->d->resolveMacro(name, ret); } @@ -94,6 +101,7 @@ public: QHash<QByteArray, MacroExpander::StringFunction> m_map; QHash<QByteArray, MacroExpander::PrefixFunction> m_prefixMap; + QVector<MacroExpander::ResolverFunction> m_extraResolvers; QMap<QByteArray, QString> m_descriptions; QString m_displayName; QVector<MacroExpanderProvider> m_subProviders; @@ -343,6 +351,11 @@ void MacroExpander::registerFileVariables(const QByteArray &prefix, [base]() -> QString { QString tmp = base(); return tmp.isEmpty() ? QString() : QFileInfo(tmp).baseName(); }); } +void MacroExpander::registerExtraResolver(const MacroExpander::ResolverFunction &value) +{ + d->m_extraResolvers.append(value); +} + /*! * Returns all registered variable names. * |