[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: KMacroExpander convience methods for kdelibs4_snapshot?
From: Sascha Cunz <sascha.cunz () tiscali ! de>
Date: 2005-09-22 17:30:17
Message-ID: 200509221930.17966.sascha.cunz () tiscali ! de
[Download RAW message or body]
Hi,
in trunk, KMacroExpander was changed to use QHash instead of QMap. This change
is not yet in kdelibs4_snapshot.
I'm about to convert and write lots of new code for kdevelop that will use
KMacroExpander, and as i expect that QMap<QString,QString> will appear there
about 75 to 100 times and i actually do not want to change that later, should
I
- merge the change from 439322 to 457320 in the kmacroexpander.* files to
kdelibs4_snapshot
- commit convience methods to kdelibs4_snapshot (i.e. like attached patch)
- use a "typedef QMap<QString,QString> KMacroExpanderMap;" in kdevelop
- just accept the fact, that i'll have to take 2 hours and walk over it again
and change it
- stop using kdelibs4_snapshot totally
- something i've not yet thought of?
Cheers Sascha
["kme.patch" (text/x-diff)]
Index: kmacroexpander.h
===================================================================
--- kmacroexpander.h (Revision 462022)
+++ kmacroexpander.h (Arbeitskopie)
@@ -271,6 +271,7 @@
* \endcode
*/
KDECORE_EXPORT QString expandMacros( const QString &str, const \
QMap<QChar,QString> &map, QChar c = '%' ); + KDECORE_EXPORT QString expandMacros( \
const QString &str, const QHash<QChar,QString> &map, QChar c = '%' );
/**
* Perform safe macro expansion (substitution) on a string for use
@@ -296,6 +297,7 @@
* \endcode
*/
KDECORE_EXPORT QString expandMacrosShellQuote( const QString &str, const \
QMap<QChar,QString> &map, QChar c = '%' ); + KDECORE_EXPORT QString \
expandMacrosShellQuote( const QString &str, const QHash<QChar,QString> &map, QChar c \
= '%' );
/**
* Perform safe macro expansion (substitution) on a string.
@@ -321,6 +323,7 @@
* \endcode
*/
KDECORE_EXPORT QString expandMacros( const QString &str, const \
QMap<QString,QString> &map, QChar c = '%' ); + KDECORE_EXPORT QString \
expandMacros( const QString &str, const QHash<QString,QString> &map, QChar c = '%' ); \
/**
* Perform safe macro expansion (substitution) on a string for use
@@ -349,13 +352,16 @@
* \endcode
*/
KDECORE_EXPORT QString expandMacrosShellQuote( const QString &str, const \
QMap<QString,QString> &map, QChar c = '%' ); + KDECORE_EXPORT QString \
expandMacrosShellQuote( const QString &str, const QHash<QString,QString> &map, QChar \
c = '%' );
/**
* Same as above, except that the macros expand to string lists that
* are simply join(" ")ed together.
*/
KDECORE_EXPORT QString expandMacros( const QString &str, const \
QMap<QChar,QStringList> &map, QChar c = '%' ); + KDECORE_EXPORT QString \
expandMacros( const QString &str, const QHash<QChar,QStringList> &map, QChar c = '%' \
);
KDECORE_EXPORT QString expandMacros( const QString &str, const \
QMap<QString,QStringList> &map, QChar c = '%' ); + KDECORE_EXPORT QString \
expandMacros( const QString &str, const QHash<QString,QStringList> &map, QChar c = \
'%' );
/*
* Same as above, except that the macros expand to string lists.
@@ -364,7 +370,9 @@
* quoted string.
*/
KDECORE_EXPORT QString expandMacrosShellQuote( const QString &str, const \
QMap<QChar,QStringList> &map, QChar c = '%' ); + KDECORE_EXPORT QString \
expandMacrosShellQuote( const QString &str, const QHash<QChar,QStringList> &map, \
QChar c = '%' );
KDECORE_EXPORT QString expandMacrosShellQuote( const QString &str, const \
QMap<QString,QStringList> &map, QChar c = '%' ); + KDECORE_EXPORT QString \
expandMacrosShellQuote( const QString &str, const QHash<QString,QStringList> &map, \
QChar c = '%' ); }
#endif /* _KMACROEXPANDER_H */
Index: kmacroexpander.cpp
===================================================================
--- kmacroexpander.cpp (Revision 462022)
+++ kmacroexpander.cpp (Arbeitskopie)
@@ -27,6 +27,17 @@
#include <kdebug.h>
+#include <QHash>
+
+template <class A, class B> QMap<A,B> hashToMap( const QHash<A,B>& h )
+{
+ QMap<A,B> m;
+ QHash<A,B>::const_iterator i = h.constBegin();
+ for( ; i != h.constEnd(); ++i )
+ m[i.key()] = i.value();
+ return m;
+}
+
KMacroExpanderBase::KMacroExpanderBase( QChar c )
{
escapechar = c;
@@ -539,4 +550,12 @@
QString expandMacros( const QString &ostr, const QMap<QString,QStringList> &map, \
QChar c ) { return TexpandMacros( ostr, map, c ); } QString expandMacrosShellQuote( \
const QString &ostr, const QMap<QString,QStringList> &map, QChar c ) { return \
TexpandMacrosShellQuote( ostr, map, c ); }
+ QString expandMacros( const QString &ostr, const QHash<QChar,QString> &map, QChar \
c ) { return TexpandMacros( ostr, hashToMap(map), c ); } + QString \
expandMacrosShellQuote( const QString &ostr, const QHash<QChar,QString> &map, QChar c \
) { return TexpandMacrosShellQuote( ostr, hashToMap(map), c ); } + QString \
expandMacros( const QString &ostr, const QHash<QString,QString> &map, QChar c ) { \
return TexpandMacros( ostr, hashToMap(map), c ); } + QString expandMacrosShellQuote( \
const QString &ostr, const QHash<QString,QString> &map, QChar c ) { return \
TexpandMacrosShellQuote( ostr, hashToMap(map), c ); } + QString expandMacros( const \
QString &ostr, const QHash<QChar,QStringList> &map, QChar c ) { return TexpandMacros( \
ostr, hashToMap(map), c ); } + QString expandMacrosShellQuote( const QString &ostr, \
const QHash<QChar,QStringList> &map, QChar c ) { return TexpandMacrosShellQuote( \
ostr, hashToMap(map), c ); } + QString expandMacros( const QString &ostr, const \
QHash<QString,QStringList> &map, QChar c ) { return TexpandMacros( ostr, \
hashToMap(map), c ); } + QString expandMacrosShellQuote( const QString &ostr, const \
QHash<QString,QStringList> &map, QChar c ) { return TexpandMacrosShellQuote( ostr, \
hashToMap(map), c ); } } // namespace
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic