KDECore
KWordMacroExpander Class Reference
#include <KMacroExpanderBase>

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.
Definition at line 217 of file kmacroexpander.h.
Public Member Functions | |
| KWordMacroExpander (QChar c=QLatin1Char('%')) | |
Protected Member Functions | |
| virtual int | expandEscapedMacro (const QString &str, int pos, QStringList &ret) |
| virtual bool | expandMacro (const QString &str, QStringList &ret)=0 |
| virtual int | expandPlainMacro (const QString &str, int pos, QStringList &ret) |
Constructor & Destructor Documentation
| KWordMacroExpander::KWordMacroExpander | ( | QChar | c = QLatin1Char('%') |
) | [inline, explicit] |
Constructor.
- Parameters:
-
c escape char indicating start of macros, or QChar::null for none
Definition at line 224 of file kmacroexpander.h.
Member Function Documentation
| int KWordMacroExpander::expandEscapedMacro | ( | const QString & | str, | |
| int | pos, | |||
| QStringList & | ret | |||
| ) | [protected, virtual] |
This function is called every time the escape char is found if it is not QChar::null.
It should determine whether the string starting at pos witin str is a valid macro and return the substitution value for it if so.
- Parameters:
-
str the input string pos the offset within str. Note that this is the position of the occurrence of the escape charret return value: the string to substitute for the macro
- Returns:
- If greater than zero, the number of chars at
posinstrto substitute withret(i.e., a valid macro was found). If less than zero, subtract this value frompos(to skip a macro, i.e., substitute it with itself). If zero, scanning continues as if no escape char was encountered at all.
Reimplemented from KMacroExpanderBase.
Definition at line 285 of file kmacroexpander.cpp.
| virtual bool KWordMacroExpander::expandMacro | ( | const QString & | str, | |
| QStringList & | ret | |||
| ) | [protected, pure virtual] |
Return substitution list ret for string macro str.
- Parameters:
-
str the macro to expand ret return variable reference. It is guaranteed to be empty when expandMacro is entered.
- Returns:
trueiffchrwas a recognized macro name
| int KWordMacroExpander::expandPlainMacro | ( | const QString & | str, | |
| int | pos, | |||
| QStringList & | ret | |||
| ) | [protected, virtual] |
This function is called for every single char within the string if the escape char is QChar::null.
It should determine whether the string starting at pos within str is a valid macro and return the substitution value for it if so.
- Parameters:
-
str the input string pos the offset within strret return value: the string to substitute for the macro
- Returns:
- If greater than zero, the number of chars at
posinstrto substitute withret(i.e., a valid macro was found). If less than zero, subtract this value frompos(to skip a macro, i.e., substitute it with itself). If zero, no macro starts atpos.
Reimplemented from KMacroExpanderBase.
Definition at line 270 of file kmacroexpander.cpp.
The documentation for this class was generated from the following files:
KDE 4.1 API Reference