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

List:       kde-commits
Subject:    KDE/kdeedu
From:       Frederik Gladhorn <frederik.gladhorn () gmx ! de>
Date:       2008-04-21 14:01:31
Message-ID: 1208786491.855891.32230.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 799410 by gladhorn:

Create the xml from the document in memory using qbytearray instead of needing to \
read from disk which would fail when not using kvtml2 and also needed a saved \
document to work.


 M  +7 -1      libkdeedu/keduvocdocument/keduvocdocument.cpp  
 M  +2 -0      libkdeedu/keduvocdocument/keduvocdocument.h  
 M  +19 -4     libkdeedu/keduvocdocument/keduvockvtml2writer.cpp  
 M  +5 -0      libkdeedu/keduvocdocument/keduvockvtml2writer.h  
 M  +3 -1      parley/src/export/xsldialog.cpp  


--- trunk/KDE/kdeedu/libkdeedu/keduvocdocument/keduvocdocument.cpp #799409:799410
@@ -413,6 +413,13 @@
     return 0;
 }
 
+QByteArray KEduVocDocument::toByteArray(const QString &generator)
+{
+    // no file needed
+    KEduVocKvtml2Writer kvtmlWriter(0);
+    return kvtmlWriter.toByteArray( this, generator );
+}
+
 void KEduVocDocument::merge( KEduVocDocument *docToMerge, bool matchIdentifiers )
 {
     kDebug(1100) << "Merging of docs is not implemented"; /// @todo IMPLEMENT ME
@@ -784,7 +791,6 @@
     return d->m_license;
 }
 
-
 QString KEduVocDocument::documentComment() const
 {
     return d->m_comment;
--- trunk/KDE/kdeedu/libkdeedu/keduvocdocument/keduvocdocument.h #799409:799410
@@ -117,6 +117,8 @@
      */
     int saveAs( const KUrl & url, FileType ft, const QString & generator );
 
+    QByteArray toByteArray(const QString &generator);
+
     /**
      * Merges data from another document
      *
--- trunk/KDE/kdeedu/libkdeedu/keduvocdocument/keduvockvtml2writer.cpp #799409:799410
@@ -33,9 +33,26 @@
     m_outputFile = file;
 }
 
-
 bool KEduVocKvtml2Writer::writeDoc( KEduVocDocument *doc, const QString &generator )
 {
+    if (createXmlDocument(doc, generator)) {
+        QTextStream ts( m_outputFile );
+        m_domDoc.save( ts, 2 );
+        return true;
+    }
+    return false;
+}
+
+QByteArray KEduVocKvtml2Writer::toByteArray(KEduVocDocument * doc, const QString & \
generator) +{
+    if (createXmlDocument(doc, generator)) {
+        return m_domDoc.toByteArray();
+    }
+    return QByteArray();
+}
+
+bool KEduVocKvtml2Writer::createXmlDocument( KEduVocDocument *doc, const QString \
&generator ) +{
     m_doc = doc;
 
     m_domDoc = QDomDocument( "kvtml PUBLIC \"kvtml2.dtd\" \
\"http://edu.kde.org/kanagram/kvtml2.dtd\"" ); @@ -88,9 +105,6 @@
 
     m_domDoc.appendChild( domElementKvtml );
 
-    QTextStream ts( m_outputFile );
-    m_domDoc.save( ts, 2 );
-
     return true;
 }
 
@@ -605,3 +619,4 @@
     element.appendChild( textNode );
 }
 
+
--- trunk/KDE/kdeedu/libkdeedu/keduvocdocument/keduvockvtml2writer.h #799409:799410
@@ -41,6 +41,8 @@
 
     bool writeDoc( KEduVocDocument *doc, const QString &generator );
 
+    QByteArray toByteArray( KEduVocDocument *doc, const QString &generator );
+
     /**
      * Helper function, appends a new element AND a text child to @p parent
      * Only appends if @p text is NOT empty.
@@ -51,6 +53,9 @@
     static void appendTextElement( QDomElement &parent, const QString &elementName, \
const QString &text );  
 private:
+
+    bool createXmlDocument( KEduVocDocument *doc, const QString &generator );
+
     /** write information entries
      * @param informationElement QDomElement information to write to
      * @param generator text describing generator
--- trunk/KDE/kdeedu/parley/src/export/xsldialog.cpp #799409:799410
@@ -14,6 +14,7 @@
 #include "xsldialog.h"
 
 #include <keduvocdocument.h>
+#include <keduvockvtml2writer.h>
 
 #include <KStandardDirs>
 #include <KUrl>
@@ -62,7 +63,8 @@
     xmlLoadExtDtdDefaultValue = 1;
     cur = xsltParseStylesheetFile((const xmlChar*) xslFile.toLatin1().constData());
 
-    doc = xmlParseFile( (const char*) m_doc->url().toLocalFile().toLatin1() );
+    doc = xmlParseDoc( (const xmlChar*) \
m_doc->toByteArray(m_doc->generator()).constData() ); +
     res = xsltApplyStylesheet(cur, doc, 0);
     FILE* result = fopen( (const char*) m_targetFile.toLocalFile().toLatin1(), "w");
     xsltSaveResultToFile(result, res, cur);


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

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