KDECore
KWordMacroExpander Class Reference
Abstract base class for simple word macro substitutors. More...
#include <kmacroexpander.h>

Public Member Functions | |
| KWordMacroExpander (QChar c= '%') | |
Protected Member Functions | |
| virtual int | expandEscapedMacro (const QString &str, uint pos, QStringList &ret) |
| virtual bool | expandMacro (const QString &str, QStringList &ret)=0 |
| virtual int | expandPlainMacro (const QString &str, uint pos, QStringList &ret) |
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.
- Since:
- 3.3
Definition at line 191 of file kmacroexpander.h.
Constructor & Destructor Documentation
| KWordMacroExpander::KWordMacroExpander | ( | QChar | c = '%' |
) | [inline] |
Constructor.
- Parameters:
-
c escape char indicating start of macros, or QChar::null for none
Definition at line 198 of file kmacroexpander.h.
Member Function Documentation
| int KWordMacroExpander::expandEscapedMacro | ( | const QString & | str, | |
| uint | 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). zero requests no special action.
Reimplemented from KMacroExpanderBase.
Definition at line 469 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, | |
| uint | 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). zero requests no special action.
Reimplemented from KMacroExpanderBase.
Definition at line 455 of file kmacroexpander.cpp.
The documentation for this class was generated from the following files:
KDE 3.5 API Reference