KWordMacroExpander Class
Header: | #include <KMacroExpander> |
CMake: | find_package(KF6 REQUIRED COMPONENTS CoreAddons) target_link_libraries(mytarget PRIVATE KF6::CoreAddons) |
Inherits: | KMacroExpanderBase |
Public Functions
KWordMacroExpander(QChar c = QLatin1Char('%')) |
Protected Functions
virtual bool | expandMacro(const QString &str, QStringList &ret) = 0 |
Detailed Description
Abstract base class for simple word macro substitutors. Use this instead of the functions in the KMacroExpander namespace if speculatively pre-filling the substitution map would be too expensive.
A typical application:
class MyClass { ... private: QString m_str; ... friend class MyExpander; }; class MyExpander : public KWordMacroExpander { public: MyExpander( MyClass *_that ) : KWordMacroExpander(), that( _that ) {} protected: virtual bool expandMacro( const QString &str, QStringList &ret ); private: MyClass *that; }; bool MyExpander::expandMacro( const QString &str, QStringList &ret ) { if (str == "macro") { ret += complexOperation( that->m_str ); return true; } return false; } ... MyClass::...(...) { QString str; ... MyExpander mx( this ); mx.expandMacrosShellQuote( str ); ... }
Alternatively MyClass could inherit from KWordMacroExpander directly.
Member Function Documentation
[explicit]
KWordMacroExpander::KWordMacroExpander(QChar c = QLatin1Char('%'))
Constructor.
c escape char indicating start of macros, or QChar::null for none
[pure virtual protected]
bool KWordMacroExpander::expandMacro(const QString &str, QStringList &ret)
Return substitution list ret for string macro str.
str the macro to expand
ret return variable reference. It is guaranteed to be empty when expandMacro is entered.
Returns true
iff str was a recognized macro name