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.
Author Oswald Buddenhagen
|