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

List:       kde-commits
Subject:    KDE/kdesdk/lokalize/src/catalog/xliff
From:       Nickolai Shaforostoff <shafff () ukr ! net>
Date:       2009-05-11 22:16:16
Message-ID: 1242080176.753792.27403.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 966817 by shaforo:

preserve xml whitespace



 M  +16 -3     xliffstorage.cpp  


--- trunk/KDE/kdesdk/lokalize/src/catalog/xliff/xliffstorage.cpp #966816:966817
@@ -38,6 +38,7 @@
 #include <kglobal.h>
 #include <klocale.h>
 #include <kdatetime.h>
+#include <QXmlSimpleReader>
 
 static const char* const noyes[]={"no","yes"};
 static const char* const bintargettarget[]={"bin-target","target"};
@@ -64,9 +65,14 @@
     QTime chrono;chrono.start();
 
 
+    QXmlSimpleReader reader;
+    reader.setFeature("http://qtsoftware.com/xml/features/report-whitespace-only-CharData",true);
+    reader.setFeature("http://xml.org/sax/features/namespaces",false);
+    QXmlInputSource source(device);
+
     QString errorMsg;
     int errorLine;//+errorColumn;
-    bool success=m_doc.setContent( device, false, &errorMsg, &errorLine/*,errorColumn*/);
+    bool success=m_doc.setContent(&source, &reader, &errorMsg, &errorLine/*,errorColumn*/);
 
     if (!success)
     {
@@ -624,8 +630,15 @@
     QDomElement header=file.firstChildElement("header");
     phasegroup=header.firstChildElement("phase-group");
     if (phasegroup.isNull())
-        phasegroup=header.appendChild(m_doc.createElement("phase-group")).toElement();
-
+    {
+        phasegroup=m_doc.createElement("phase-group");
+        //order following XLIFF spec
+        QDomElement skl=header.firstChildElement("skl");
+        if (!skl.isNull())
+            header.insertAfter(phasegroup, skl);
+        else
+            header.insertBefore(phasegroup, header.firstChildElement());
+    }
     QDomElement phaseElem=phasegroup.firstChildElement("phase");
     while (!phaseElem.isNull() && phaseElem.attribute("phase-name")!=name)
         phaseElem=phaseElem.nextSiblingElement("phase");
[prev in list] [next in list] [prev in thread] [next in thread] 

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