]> Git trees. - libqmvoc.git/commitdiff
Move xml creation for text+grades into keduvoctext - have data and its serialization...
authorFrederik Gladhorn <gladhorn@kde.org>
Sun, 24 Feb 2008 14:52:34 +0000 (14:52 +0000)
committerFrederik Gladhorn <gladhorn@kde.org>
Sun, 24 Feb 2008 14:52:34 +0000 (14:52 +0000)
svn path=/trunk/KDE/kdeedu/libkdeedu/; revision=778755

keduvocdocument/keduvockvtml2writer.cpp
keduvocdocument/keduvockvtml2writer.h
keduvocdocument/keduvoctext.cpp
keduvocdocument/keduvoctext.h

index 72a192f72ab6906ddb7ebda2b48441c666f79629..ff89493350b8e82dfd0bcb0975a8b68bf1ea62ee 100644 (file)
@@ -373,9 +373,10 @@ bool KEduVocKvtml2Writer::writeEntries( QDomElement &entriesElement )
 
 bool KEduVocKvtml2Writer::writeTranslation( QDomElement &translationElement, KEduVocTranslation* translation )
 {
-    // <text>Kniebeugen</text>
-    translationElement.appendChild( newTextElement( KVTML_TEXT, translation->text() ) );
-kDebug() << "write tranlation:" << translation->text();
+    // so far only for KEduVocWord - text and grades
+    translation->toXML(translationElement);
+
+    ///@todo move into translation->toXML()
 
     // <comment></comment>
     if ( !translation->comment().isEmpty() ) {
@@ -420,25 +421,6 @@ kDebug() << "write tranlation:" << translation->text();
         translationElement.appendChild( newTextElement( KVTML_PARAPHRASE, translation->paraphrase() ) );
     }
 
-    // grades
-    if ( translation->practiceCount() > 0 ) {
-        QDomElement gradeElement = m_domDoc.createElement( KVTML_GRADE );
-
-        //<currentgrade>2</currentgrade>
-        gradeElement.appendChild( newTextElement( KVTML_CURRENTGRADE, QString::number( translation->grade() ) ) );
-
-        //<count>6</count>
-        gradeElement.appendChild( newTextElement( KVTML_COUNT, QString::number( translation->practiceCount() ) ) );
-
-        //<errorcount>1</errorcount>
-        gradeElement.appendChild( newTextElement( KVTML_ERRORCOUNT, QString::number( translation->badCount() ) ) );
-
-        //<date>949757271</date>
-        gradeElement.appendChild( newTextElement( KVTML_DATE,  translation->practiceDate().toString( Qt::ISODate ) ) );
-
-        translationElement.appendChild( gradeElement );
-    }
-
     // conjugation
     foreach ( const QString &tense, translation->conjugationTenses() ) {
         QDomElement thisElement = m_domDoc.createElement( KVTML_CONJUGATION );
@@ -632,3 +614,12 @@ bool KEduVocKvtml2Writer::writePersonalPronoun(QDomElement & pronounElement, con
     return true;
 }
 
+void KEduVocKvtml2Writer::appendTextElement(QDomElement & parent, const QString & elementName, const QString & text)
+{
+    QDomDocument domDoc = parent.ownerDocument();
+    QDomElement element = domDoc.createElement( elementName );
+    parent.appendChild( element );
+    QDomText textNode = domDoc.createTextNode( text );
+    element.appendChild( textNode );
+}
+
index 85924c4300baef72a0d87cd074873c8f0349ec40..3f09718b23c8a92b066b884b0ba15d4019484988 100644 (file)
@@ -112,6 +112,8 @@ public:
      */
     bool writeMultipleChoice( QDomElement &multipleChoiceElement, KEduVocTranslation* translation );
 
+    static void appendTextElement( QDomElement &parent, const QString &elementName, const QString &text );
+
 private:
     QDomElement newTextElement( const QString &elementName, const QString &text );
 
index c839f9406fb7d98098fe6e3853e2300964f3a1a6..bd79a255605d3b66671f974fa29c26dc7afc3cff 100644 (file)
@@ -12,6 +12,9 @@
  ***************************************************************************/
 
 #include "keduvoctext.h"
+#include "kvtml2defs.h"
+#include "keduvockvtml2writer.h"
+#include <QtXml/QDomDocument>
 
 class KEduVocText::KEduVocTextPrivate
 {
@@ -163,3 +166,30 @@ bool KEduVocText::operator ==(const KEduVocText & other) const
         d->m_badCount == other.d->m_badCount &&
         d->m_practiceDate == other.d->m_practiceDate;
 }
+
+void KEduVocText::toXML(QDomElement& parent)
+{
+    QDomDocument domDoc = parent.ownerDocument();
+
+    // the text
+    KEduVocKvtml2Writer::appendTextElement( parent, KVTML_TEXT, text() );
+
+    // grades
+    if ( practiceCount() > 0 ) {
+        QDomElement gradeElement = domDoc.createElement( KVTML_GRADE );
+
+            //<currentgrade>2</currentgrade>
+        KEduVocKvtml2Writer::appendTextElement( gradeElement, KVTML_CURRENTGRADE, QString::number( grade() ) );
+
+            //<count>6</count>
+        KEduVocKvtml2Writer::appendTextElement( gradeElement, KVTML_COUNT, QString::number( practiceCount() ) );
+
+            //<errorcount>1</errorcount>
+        KEduVocKvtml2Writer::appendTextElement( gradeElement, KVTML_ERRORCOUNT, QString::number( badCount() ) );
+
+            //<date>949757271</date>
+        KEduVocKvtml2Writer::appendTextElement( gradeElement, KVTML_DATE,  practiceDate().toString( Qt::ISODate ) );
+
+        parent.appendChild( gradeElement );
+    }
+}
index fc074ea726e2c2f05c9ed90b8902dff2e15f59e5..91d3cadfd9e51a51c6ed826fdd7307a0b12d1698 100644 (file)
@@ -49,6 +49,7 @@
 typedef unsigned short grade_t;
 typedef unsigned short count_t;
 
+class QDomElement;
 
 /**
  * A text in vocabulary documents. Associated with it are grade and date information.
@@ -152,6 +153,8 @@ public:
     */
     void setPracticeDate( const QDateTime & date );
 
+    void toXML(QDomElement& parent);
+
 private:
     class KEduVocTextPrivate;
     KEduVocTextPrivate * const d;