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
pos
instr
to 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:
true
iffchr
was 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 str
ret return value: the string to substitute for the macro
- Returns:
- if greater than zero, the number of chars at
pos
instr
to 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: