From 497215c813e94234881d0dfc3e6859d167ba8cf1 Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Sun, 24 Feb 2008 14:52:34 +0000 Subject: [PATCH] Move xml creation for text+grades into keduvoctext - have data and its serialization together... svn path=/trunk/KDE/kdeedu/libkdeedu/; revision=778755 --- keduvocdocument/keduvockvtml2writer.cpp | 35 +++++++++---------------- keduvocdocument/keduvockvtml2writer.h | 2 ++ keduvocdocument/keduvoctext.cpp | 30 +++++++++++++++++++++ keduvocdocument/keduvoctext.h | 3 +++ 4 files changed, 48 insertions(+), 22 deletions(-) diff --git a/keduvocdocument/keduvockvtml2writer.cpp b/keduvocdocument/keduvockvtml2writer.cpp index 72a192f..ff89493 100644 --- a/keduvocdocument/keduvockvtml2writer.cpp +++ b/keduvocdocument/keduvockvtml2writer.cpp @@ -373,9 +373,10 @@ bool KEduVocKvtml2Writer::writeEntries( QDomElement &entriesElement ) bool KEduVocKvtml2Writer::writeTranslation( QDomElement &translationElement, KEduVocTranslation* translation ) { - // Kniebeugen - 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() // 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 ); - - //2 - gradeElement.appendChild( newTextElement( KVTML_CURRENTGRADE, QString::number( translation->grade() ) ) ); - - //6 - gradeElement.appendChild( newTextElement( KVTML_COUNT, QString::number( translation->practiceCount() ) ) ); - - //1 - gradeElement.appendChild( newTextElement( KVTML_ERRORCOUNT, QString::number( translation->badCount() ) ) ); - - //949757271 - 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 ); +} + diff --git a/keduvocdocument/keduvockvtml2writer.h b/keduvocdocument/keduvockvtml2writer.h index 85924c4..3f09718 100644 --- a/keduvocdocument/keduvockvtml2writer.h +++ b/keduvocdocument/keduvockvtml2writer.h @@ -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 ); diff --git a/keduvocdocument/keduvoctext.cpp b/keduvocdocument/keduvoctext.cpp index c839f94..bd79a25 100644 --- a/keduvocdocument/keduvoctext.cpp +++ b/keduvocdocument/keduvoctext.cpp @@ -12,6 +12,9 @@ ***************************************************************************/ #include "keduvoctext.h" +#include "kvtml2defs.h" +#include "keduvockvtml2writer.h" +#include 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 ); + + //2 + KEduVocKvtml2Writer::appendTextElement( gradeElement, KVTML_CURRENTGRADE, QString::number( grade() ) ); + + //6 + KEduVocKvtml2Writer::appendTextElement( gradeElement, KVTML_COUNT, QString::number( practiceCount() ) ); + + //1 + KEduVocKvtml2Writer::appendTextElement( gradeElement, KVTML_ERRORCOUNT, QString::number( badCount() ) ); + + //949757271 + KEduVocKvtml2Writer::appendTextElement( gradeElement, KVTML_DATE, practiceDate().toString( Qt::ISODate ) ); + + parent.appendChild( gradeElement ); + } +} diff --git a/keduvocdocument/keduvoctext.h b/keduvocdocument/keduvoctext.h index fc074ea..91d3cad 100644 --- a/keduvocdocument/keduvoctext.h +++ b/keduvocdocument/keduvoctext.h @@ -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; -- 2.47.3