KDECore
kmacroexpander.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef KMACROEXPANDER_H
00023 #define KMACROEXPANDER_H
00024
00025 #include <kdecore_export.h>
00026 #include <QtCore/QChar>
00027
00028 class QString;
00029 class QStringList;
00030 template <typename KT, typename VT> class QHash;
00031 class KMacroExpanderBasePrivate;
00032
00041 class KDECORE_EXPORT KMacroExpanderBase {
00042
00043 public:
00048 explicit KMacroExpanderBase( QChar c = QLatin1Char('%') );
00049
00053 virtual ~KMacroExpanderBase();
00054
00060 void expandMacros( QString &str );
00061
00062
00110 bool expandMacrosShellQuote( QString &str, int &pos );
00111
00116 bool expandMacrosShellQuote( QString &str );
00117
00122 void setEscapeChar( QChar c );
00123
00128 QChar escapeChar() const;
00129
00130 protected:
00144 virtual int expandPlainMacro( const QString &str, int pos, QStringList &ret );
00145
00161 virtual int expandEscapedMacro( const QString &str, int pos, QStringList &ret );
00162
00163 private:
00164 KMacroExpanderBasePrivate * const d;
00165 };
00166
00217 class KDECORE_EXPORT KWordMacroExpander : public KMacroExpanderBase {
00218
00219 public:
00224 explicit KWordMacroExpander( QChar c = QLatin1Char('%') ) : KMacroExpanderBase( c ) {}
00225
00226 protected:
00227 virtual int expandPlainMacro( const QString &str, int pos, QStringList &ret );
00228 virtual int expandEscapedMacro( const QString &str, int pos, QStringList &ret );
00229
00237 virtual bool expandMacro( const QString &str, QStringList &ret ) = 0;
00238 };
00239
00251 class KDECORE_EXPORT KCharMacroExpander : public KMacroExpanderBase {
00252
00253 public:
00258 explicit KCharMacroExpander( QChar c = QLatin1Char('%') ) : KMacroExpanderBase( c ) {}
00259
00260 protected:
00261 virtual int expandPlainMacro( const QString &str, int pos, QStringList &ret );
00262 virtual int expandEscapedMacro( const QString &str, int pos, QStringList &ret );
00263
00271 virtual bool expandMacro( QChar chr, QStringList &ret ) = 0;
00272 };
00273
00278 namespace KMacroExpander {
00299 KDECORE_EXPORT QString expandMacros( const QString &str, const QHash<QChar,QString> &map, QChar c = '%' );
00300
00324 KDECORE_EXPORT QString expandMacrosShellQuote( const QString &str, const QHash<QChar,QString> &map,
00325 QChar c = QLatin1Char('%') );
00326
00350 KDECORE_EXPORT QString expandMacros( const QString &str, const QHash<QString,QString> &map,
00351 QChar c = QLatin1Char('%') );
00352
00380 KDECORE_EXPORT QString expandMacrosShellQuote( const QString &str, const QHash<QString,QString> &map,
00381 QChar c = QLatin1Char('%') );
00382
00387 KDECORE_EXPORT QString expandMacros( const QString &str, const QHash<QChar,QStringList> &map,
00388 QChar c = QLatin1Char('%') );
00389 KDECORE_EXPORT QString expandMacros( const QString &str, const QHash<QString,QStringList> &map,
00390 QChar c = QLatin1Char('%') );
00391
00398 KDECORE_EXPORT QString expandMacrosShellQuote( const QString &str, const QHash<QChar,QStringList> &map,
00399 QChar c = QLatin1Char('%') );
00400 KDECORE_EXPORT QString expandMacrosShellQuote( const QString &str, const QHash<QString,QStringList> &map,
00401 QChar c = QLatin1Char('%') );
00402 }
00403
00404 #endif