[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [plasmate/terietor/kconfigxt] editors/kconfigxt: write the kcfg element
From:       Giorgos Tsiapaliokas <terietor () gmail ! com>
Date:       2012-08-09 13:00:26
Message-ID: 20120809130026.DC185A60A6 () git ! kde ! org
[Download RAW message or body]

Git commit 62da092d0ac0e54400840d3d755aeb1651212e75 by Giorgos Tsiapaliokas.
Committed on 09/08/2012 at 12:09.
Pushed by tsiapaliwkas into branch 'terietor/kconfigxt'.

write the kcfg element

M  +33   -15   editors/kconfigxt/kconfigxtwriter.cpp
M  +5    -0    editors/kconfigxt/kconfigxtwriter.h

http://commits.kde.org/plasmate/62da092d0ac0e54400840d3d755aeb1651212e75

diff --git a/editors/kconfigxt/kconfigxtwriter.cpp b/editors/kconfigxt/kconfigxtwriter.cpp
index d5ccff5..735800d 100644
--- a/editors/kconfigxt/kconfigxtwriter.cpp
+++ b/editors/kconfigxt/kconfigxtwriter.cpp
@@ -103,24 +103,17 @@ void KConfigXtWriter::writeXML()
     m_writer->writeStartDocument();
 
     //start kcfg element
-    m_writer->writeStartElement("kcfg");
+    startKcfgElement();
+
+    //start kcfgfile element
+    m_writer->writeStartElement("kcfgfile");
+    m_writer->writeAttribute("name", "");
+    m_writer->writeEndElement();
 
     foreach(const KConfigXtWriterItem& writerItem, m_dataList) {
         //start group
         m_writer->writeStartElement("group");
 
-        //TODO add the above into the xml
-        /*every kconfigxt xml file contains the below data
-         * 
-         *   <?xml version="1.0" encoding="UTF-8"?>
-         *   <kcfg xmlns="http://www.kde.org/standards/kcfg/1.0"
-         *   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         *   xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
-         *   http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" >
-         *   <kcfgfile name=""/>
-         *   </kcfg>
-         *
-         */
         m_writer->writeAttribute("name", writerItem.group());
 
         foreach(const KConfigXtReaderItem& readerItem, writerItem.entries()) {
@@ -157,8 +150,9 @@ void KConfigXtWriter::writeXML()
         //end group
         m_writer->writeEndElement();
     }
-    //end kcfg
-    m_writer->writeEndElement();
+    //end kcfg element
+    endKcfgElement();
+
     //end the document
     m_writer->writeEndDocument();
 
@@ -166,6 +160,30 @@ void KConfigXtWriter::writeXML()
     m_writer->device()->close();
 }
 
+void KConfigXtWriter::startKcfgElement()
+{
+    //write the kcfg manually
+    QByteArray startKcfg;
+    startKcfg.append("\n");
+    startKcfg.append("<kcfg xmlns=\"http://www.kde.org/standards/kcfg/1.0\"");
+    startKcfg.append("\n");
+    startKcfg.append("     xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"");
+    startKcfg.append("\n");
+    startKcfg.append("     xsi:schemaLocation=\"http://www.kde.org/standards/kcfg/1.0\"");
+    startKcfg.append("\n");
+    startKcfg.append("     http://www.kde.org/standards/kcfg/1.0/kcfg.xsd\" >");
+    startKcfg.append("\n");
+    m_writer->device()->write(startKcfg);
+}
+
+void KConfigXtWriter::endKcfgElement()
+{
+    QByteArray endKcfg;
+    endKcfg.append("\n");
+    endKcfg.append("</kcfg>");
+    m_writer->device()->write(endKcfg);
+}
+
 QList<KConfigXtWriterItem> KConfigXtWriter::readerItemsToWriterIems(QStringList& groupList,
                                             QList<KConfigXtReaderItem> entriesList) const
 {
diff --git a/editors/kconfigxt/kconfigxtwriter.h b/editors/kconfigxt/kconfigxtwriter.h
index 3e1ea99..d3560cd 100644
--- a/editors/kconfigxt/kconfigxtwriter.h
+++ b/editors/kconfigxt/kconfigxtwriter.h
@@ -84,6 +84,11 @@ private:
     QList<KConfigXtWriterItem> m_dataList;
     QFile *m_xmlFile;
     QXmlStreamWriter *m_writer;
+
+    //we have to write the kcfg element manually
+    //because qxmlstreamwriter doesn't support it
+    void startKcfgElement();
+    void endKcfgElement();
 };
 
 #endif

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic