[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdevelop/lib
From: Sascha Cunz <sascha.cunz () tiscali ! de>
Date: 2005-09-22 19:44:01
Message-ID: 1127418241.687874.11664.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 463043 by cunz:
- Add QHash functions to DomUtil::
- Move FileTemplate:: from util into interfaces
- Keep the project's substitution map available in the KDevProject
M +3 -2 interfaces/Makefile.am
M +28 -6 interfaces/domutil.cpp
M +17 -7 interfaces/domutil.h
A interfaces/filetemplate.cpp util/filetemplate.cpp#463035
A interfaces/filetemplate.h util/filetemplate.h#463035
M +22 -0 interfaces/kdevproject.cpp
M +13 -0 interfaces/kdevproject.h
M +2 -2 util/Makefile.am
D util/filetemplate.cpp
D util/filetemplate.h
--- trunk/KDE/kdevelop/lib/interfaces/Makefile.am #463042:463043
@@ -12,7 +12,8 @@
KDevCoreIface.cpp kdevplugincontroller.cpp kdevprojectmodel.cpp \
kdevdifffrontend.cpp kdevplugin.cpp tag.cpp \
domutil.cpp kdevitemmodel.cpp urlutil.cpp \
- KDevPartControllerIface.skel KDevCoreIface.skel kdevprojectiface.skel
+ KDevPartControllerIface.skel KDevCoreIface.skel kdevprojectiface.skel \
+ filetemplate.cpp
libkdevinterfaces_la_LDFLAGS = \
$(DB3LDFLAGS) \
@@ -37,7 +38,7 @@
kdevlanguagesupport.h kdevprojectmodel.h \
kdevmainwindow.h tag.h \
kdevmakefrontend.h kdevitemmodel.h \
- urlutil.h
+ urlutil.h filetemplate.h
servicetypedir = $(kde_servicetypesdir)
servicetype_DATA = \
--- trunk/KDE/kdevelop/lib/interfaces/domutil.cpp #463042:463043
@@ -15,12 +15,10 @@
#include "domutil.h"
#include <kdebug.h>
-#include <qstringlist.h>
-#include <qfile.h>
-//Added by qt3to4:
+#include <QStringList>
+#include <QFile>
#include <QTextStream>
-
void DomUtil::makeEmpty( QDomElement& e )
{
while( !e.firstChild().isNull() )
@@ -133,6 +131,18 @@
return map;
}
+QHash<QString, QString> DomUtil::readHashEntry(const QDomDocument &doc, const \
QString& path) +{
+ QHash<QString, QString> hash;
+ QDomElement el = elementByPath(doc, path);
+ QDomElement subEl = el.firstChild().toElement();
+ while (!subEl.isNull()) {
+ hash[subEl.tagName()] = subEl.firstChild().toText().data();
+ subEl = subEl.nextSibling().toElement();
+ }
+ return hash;
+}
+
QDomElement DomUtil::namedChildElement( QDomElement& el, const QString& name )
{
QDomElement child = el.namedItem( name ).toElement();
@@ -173,12 +183,24 @@
QMap<QString,QString>::ConstIterator it;
for (it = map.begin(); it != map.end(); ++it)
{
- kdDebug( 9010 ) << "writing " << basePath << ";" << it.key() << ";" << \
it.data() << endl; + kdDebug( 9010 ) << "writing " << basePath << ";" << \
it.key() << ";" << it.value() << endl; if( ! it.key().isEmpty() )
- writeEntry(doc, basePath + it.key(), it.data() );
+ writeEntry(doc, basePath + it.key(), it.value() );
}
}
+void DomUtil::writeHashEntry(QDomDocument &doc, const QString &path, const \
QHash<QString, QString> &hash) +{
+ QString basePath( path + "/" );
+ QHash<QString,QString>::ConstIterator it;
+ for (it = hash.begin(); it != hash.end(); ++it)
+ {
+ kdDebug( 9010 ) << "writing " << basePath << ";" << it.key() << ";" << \
it.value() << endl; + if( ! it.key().isEmpty() )
+ writeEntry(doc, basePath + it.key(), it.value() );
+ }
+}
+
void DomUtil::writeIntEntry(QDomDocument &doc, const QString &path, int value)
{
writeEntry(doc, path, QString::number(value));
--- trunk/KDE/kdevelop/lib/interfaces/domutil.h #463042:463043
@@ -14,10 +14,11 @@
#define _DOMUTIL_H_
#include <qdom.h>
-#include <qpair.h>
-#include <qstringlist.h>
-#include <qlist.h>
-#include <qmap.h>
+#include <QPair>
+#include <QStringList>
+#include <QList>
+#include <QMap>
+#include <QHash>
/**
@file domutil.h
@@ -78,6 +79,10 @@
*/
static QMap<QString, QString> readMapEntry(const QDomDocument &doc, const \
QString &path); /**
+ * Reads a string to string hash. See writeHashEntry()
+ */
+ static QHash<QString, QString> readHashEntry(const QDomDocument &doc, const \
QString &path); + /**
* Retrieves an element by path, return null if any item along
* the path does not exist.
*/
@@ -151,9 +156,14 @@
const PairList &value);
/**
* Writes a string to string map. This map is stored in a way, that it can be \
read with
- * readMapEntry() and readEntry()
+ * readMapEntry() readHashEntry() and readEntry()
*/
static void writeMapEntry(QDomDocument &doc, const QString& path, const \
QMap<QString,QString> &map); + /**
+ * Writes a string to string hash. This hash is stored in a way, that it can be \
read with + * readMapEntry() readHashEntry() and readEntry()
+ */
+ static void writeHashEntry(QDomDocument &doc, const QString& path, const \
QHash<QString,QString> &hash);
/**
* Resolves an extended path
@@ -195,12 +205,12 @@
static QDomElement elementByPathExt(QDomDocument &doc, const QString \
&pathstring);
/**
- * Open file - filename - and set setContents of doc
+ * Open file @a filename and set setContents of @a doc
*/
static bool openDOMFile(QDomDocument &doc, QString filename);
/**
- * Store contents of doc in file - filename. Existing file will be truncated!
+ * Store contents of @a doc in file @a filename. Existing file will be truncated!
*/
static bool saveDOMFile(QDomDocument &doc, QString filename);
--- trunk/KDE/kdevelop/lib/interfaces/kdevproject.cpp #463042:463043
@@ -29,12 +29,15 @@
#include <qfileinfo.h>
#include <qtimer.h>
#include "kdevprojectiface.h"
+#include "filetemplate.h"
struct KDevProject::Private {
QMap<QString, QString> m_absToRel;
QStringList m_symlinkList;
QTimer *m_timer;
KDevProjectIface *m_iface;
+ QHash<QString, QString> m_templExpandMap;
+ QHash<QString, QString> m_templExpandMapXML;
};
KDevProject::KDevProject(const KDevPluginInfo *info, QObject *parent)
@@ -114,6 +117,7 @@
void KDevProject::openProject( const QString & /*dirName*/, const QString & \
/*projectName*/ ) {
buildFileMap();
+ readSubstitutionMap();
}
QStringList KDevProject::symlinkProjectFiles( )
@@ -152,4 +156,22 @@
}
}
+void KDevProject::readSubstitutionMap()
+{
+ d->m_templExpandMap = DomUtil::readHashEntry(*projectDom(), "substmap");
+ d->m_templExpandMapXML = FileTemplate::normalSubstMapToXML(d->m_templExpandMap);
+}
+
+const QHash<QString, QString>& KDevProject::substMap( SubstitutionMapTypes type )
+{
+ switch( type )
+ {
+ default:
+ case NormalFile:
+ return d->m_templExpandMap;
+ case XMLFile:
+ return d->m_templExpandMapXML;
+ }
+}
+
#include "kdevproject.moc"
--- trunk/KDE/kdevelop/lib/interfaces/kdevproject.h #463042:463043
@@ -38,6 +38,13 @@
class QTimer;
+/** Types of substitution maps */
+enum SubstitutionMapTypes
+{
+ NormalFile, //!< For a normal file
+ XMLFile //!< For a xml file
+};
+
/**
KDevelop project interface.
Plugins implementing the KDevProject interfaces are used to manage projects.
@@ -160,6 +167,12 @@
/**@return The list of files known to the project through symlinks.*/
virtual QStringList symlinkProjectFiles();
+ /** Reread template substitution map from dom */
+ virtual void readSubstitutionMap();
+
+ /**@return The template substitution map. */
+ virtual const QHash<QString, QString>& substMap( SubstitutionMapTypes type = \
NormalFile ); +
private slots:
void buildFileMap();
void slotBuildFileMap();
--- trunk/KDE/kdevelop/lib/util/Makefile.am #463042:463043
@@ -3,14 +3,14 @@
noinst_LTLIBRARIES = libkdevutil.la
libkdevutil_la_SOURCES = \
- execcommand.cpp filetemplate.cpp kfiltermodel.cpp kdevtreeview.cpp \
+ execcommand.cpp kfiltermodel.cpp kdevtreeview.cpp \
configwidgetproxy.cpp rurl.cpp kscriptactionmanager.cpp settings.cpp
METASOURCES = AUTO
kdevelopincludedir = $(includedir)/kdevelop/util
kdevelopinclude_HEADERS = \
- execcommand.h filetemplate.h configwidgetproxy.h rurl.h \
+ execcommand.h configwidgetproxy.h rurl.h \
kscriptactionmanager.h kfiltermodel.h kdevtreeview.h
DOXYGEN_REFERENCES = dcop interfaces kdecore kdefx kdeui khtml kmdi kio kjs kparts \
kutils kdevextensions kdevinterfaces
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic