From: Jeremy Paul Whiting Date: Tue, 24 Jul 2007 14:37:31 +0000 (+0000) Subject: writeTranslation fleshed out enough to convert kanagram and khangman files, todo... X-Git-Tag: v3.92.0~7 X-Git-Url: https://git.rmz.fi/?a=commitdiff_plain;h=19a19e5b59bded74817df825234ded06ec649d64;p=libqmvoc.git writeTranslation fleshed out enough to convert kanagram and khangman files, todo updated svn path=/trunk/KDE/kdeedu/libkdeedu/; revision=691890 --- diff --git a/kdeeducore/keduvockvtml2writer.cpp b/kdeeducore/keduvockvtml2writer.cpp index 5bf644a..27331b9 100644 --- a/kdeeducore/keduvockvtml2writer.cpp +++ b/kdeeducore/keduvockvtml2writer.cpp @@ -80,6 +80,13 @@ bool KEduVocKvtml2Writer::writeDoc(KEduVocDocument *doc, const QString &generato } // entries + currentElement = m_domDoc.createElement(KVTML_ENTRIES); + if (!writeEntries(currentElement)) + { + // at least one entry is required! + return false; + } + domElementKvtml.appendChild(currentElement); // lessons @@ -489,6 +496,97 @@ bool KEduVocKvtml2Writer::writeUsages(QDomElement &usagesElement) return true; } +bool KEduVocKvtml2Writer::writeEntries(QDomElement &entriesElement) +{ + // loop through entries + for (int i = 0; i < m_doc->entryCount(); ++i) + { + KEduVocExpression *thisEntry = m_doc->entry(i); + + // write entry tag + QDomElement entryElement = m_domDoc.createElement(KVTML_ENTRY); + + // add id + entryElement.setAttribute(KVTML_ID, QString::number(i)); + + // write inactive + entryElement.appendChild(newTextElement(KVTML_INACTIVE, thisEntry->isActive() ? KVTML_FALSE : KVTML_TRUE)); + + // write inquery + entryElement.appendChild(newTextElement(KVTML_INQUERY, thisEntry->isInQuery() ? KVTML_TRUE : KVTML_FALSE)); + + // write sizehint + entryElement.appendChild(newTextElement(KVTML_SIZEHINT, QString::number(thisEntry->sizeHint()) )); + + // loop through translations + for (int trans = 0; trans < thisEntry->translationCount(); ++trans) + { + // write translations + QDomElement translation = m_domDoc.createElement(KVTML_TRANSLATION); + translation.setAttribute(KVTML_ID, QString::number(trans)); + writeTranslation(translation, thisEntry->translation(trans)); + entryElement.appendChild(translation); + } + // add this entry to the entriesElement + entriesElement.appendChild(entryElement); + } + return true; +} + +bool KEduVocKvtml2Writer::writeTranslation(QDomElement &translationElement, const KEduVocTranslation &translation) +{ + // Kniebeugen + translationElement.appendChild(newTextElement(KVTML_TEXT, translation.translation())); + + // + translationElement.appendChild(newTextElement(KVTML_TYPE, translation.type())); + + // 1 + // TODO + + // + translationElement.appendChild(newTextElement(KVTML_COMMENT, translation.comment())); + + // + translationElement.appendChild(newTextElement(KVTML_PRONUNCIATION, translation.pronunciation())); + + // + // TODO + // + // + + // + translationElement.appendChild(newTextElement(KVTML_ANTONYM, translation.antonym())); + + // + translationElement.appendChild(newTextElement(KVTML_SYNONYM, translation.synonym())); + + // + translationElement.appendChild(newTextElement(KVTML_EXAMPLE, translation.example())); + + // + translationElement.appendChild(newTextElement(KVTML_USAGE, translation.usageLabel())); + + // + translationElement.appendChild(newTextElement(KVTML_USAGE, translation.paraphrase())); + + // grades + // TODO + + // conjugation + // TODO + + // comparison + // TODO + + // multiplechoice + // TODO + + // image + // sound + + return true; +} bool KEduVocKvtml2Writer::writeComparison(QDomDocument &domDoc, QDomElement &domElementParent, const KEduVocComparison &comp) /* diff --git a/kdeeducore/keduvockvtml2writer.h b/kdeeducore/keduvockvtml2writer.h index c377647..d2938ea 100644 --- a/kdeeducore/keduvockvtml2writer.h +++ b/kdeeducore/keduvockvtml2writer.h @@ -22,6 +22,7 @@ #include "keduvocgrammar.h" #include "keduvocmultiplechoice.h" +#include "keduvoctranslation.h" class KEduVocDocument; @@ -72,6 +73,17 @@ public: */ bool writeUsages(QDomElement &usagesElement); + /** write entries + * @param entriesElement QDomElement to write to + */ + bool writeEntries(QDomElement &entriesElement); + + /** write a translation + * @param translationElement QDomElement to write to, with id pre-set + * @param translation object to write + */ + bool writeTranslation(QDomElement &translationElement, const KEduVocTranslation &translation); + bool writeLesson(QDomDocument &domDoc, QDomElement &domElementParent); bool writeConjugEntry(QDomDocument &domDoc, QDomElement &domElementParent, KEduVocConjugation &curr_conjug); bool writeComparison(QDomDocument &domDoc, QDomElement &domElementParent, const KEduVocComparison &comp); diff --git a/kdeeducore/kvtml2todo b/kdeeducore/kvtml2todo index 3400fbf..e5f40e6 100644 --- a/kdeeducore/kvtml2todo +++ b/kdeeducore/kvtml2todo @@ -6,10 +6,6 @@ reader: store identifier name, sizehint and type? (need a place to store it first) writer: - write entries - write translations - write comparisons - write multiplechoices - write grades + write translation sub-parts: comparisons, conjugations, multiplechoices, grades write lessons