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() ) {
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 );
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 );
+}
+
*/
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 );
***************************************************************************/
#include "keduvoctext.h"
+#include "kvtml2defs.h"
+#include "keduvockvtml2writer.h"
+#include <QtXml/QDomDocument>
class KEduVocText::KEduVocTextPrivate
{
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 );
+ }
+}
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.
*/
void setPracticeDate( const QDateTime & date );
+ void toXML(QDomElement& parent);
+
private:
class KEduVocTextPrivate;
KEduVocTextPrivate * const d;