From b610b11a732acaa0502645af35fe1607ff5c3cfd Mon Sep 17 00:00:00 2001 From: Jeremy Paul Whiting Date: Sun, 22 Jul 2007 20:32:05 +0000 Subject: [PATCH] readGrades fleshed out svn path=/trunk/KDE/kdeedu/libkdeedu/; revision=691050 --- kdeeducore/keduvockvtml2reader.cpp | 54 ++++++++++++++++++++++++++---- kdeeducore/keduvockvtml2reader.h | 5 +-- kdeeducore/kvtml2defs.h | 5 +-- kdeeducore/kvtml2todo | 1 - 4 files changed, 53 insertions(+), 12 deletions(-) diff --git a/kdeeducore/keduvockvtml2reader.cpp b/kdeeducore/keduvockvtml2reader.cpp index def07aa..fc8259e 100644 --- a/kdeeducore/keduvockvtml2reader.cpp +++ b/kdeeducore/keduvockvtml2reader.cpp @@ -458,6 +458,15 @@ bool KEduVocKvtml2Reader::readTranslation(QDomElement &translationElement, expr.translation(index).setConjugation(conjugation); } + // grade elements + currentElement = translationElement.firstChildElement(KVTML_GRADE); + while (!currentElement.isNull()) + { + // TODO: read grade + readGrade(currentElement, expr, index); + currentElement = currentElement.nextSiblingElement(KVTML_GRADE); + } + // comparisons currentElement = translationElement.firstChildElement(KVTML_COMPARISON); if (!currentElement.isNull()) @@ -490,13 +499,6 @@ bool KEduVocKvtml2Reader::readTranslation(QDomElement &translationElement, // TODO: do something with the sound } - // grade - currentElement = translationElement.firstChildElement(KVTML_GRADE); - if (!currentElement.isNull()) - { - // TODO: read grade - } - // if (query_id == KV_O) // q_org = lang; @@ -945,6 +947,44 @@ bool KEduVocKvtml2Reader::readMultipleChoice(QDomElement &multipleChoiceElement, return true; } +bool KEduVocKvtml2Reader::readGrade(QDomElement &gradeElement, KEduVocExpression &expr, int index) +{ + bool result = true; + int id = gradeElement.attribute(KVTML_FROMID).toInt(&result); + if (!result) + { + m_errorMessage = i18n("identifier missing id"); + return false; + } + + QDomElement currentElement = gradeElement.firstChildElement(KVTML_CURRENTGRADE); + if (!currentElement.isNull()) + { + // TODO: find out how to use the current grade class for + // currentGradeInt and currentGradeFloat, or if this will always just have a float + } + + currentElement = gradeElement.firstChildElement(KVTML_COUNT); + if (!currentElement.isNull()) + { + int value = currentElement.text().toInt(); + expr.translation(index).gradeFrom(id).setQueryCount(value); + } + + currentElement = gradeElement.firstChildElement(KVTML_ERRORCOUNT); + if (!currentElement.isNull()) + { + int value = currentElement.text().toInt(); + expr.translation(index).gradeFrom(id).setBadCount(value); + } + + currentElement = gradeElement.firstChildElement(KVTML_DATE); + if (!currentElement.isNull()) + { + QDateTime value = QDateTime::fromTime_t(currentElement.text().toUInt()); + expr.translation(index).gradeFrom(id).setQueryDate(value); + } +} //**** old code from kvtmlreader diff --git a/kdeeducore/keduvockvtml2reader.h b/kdeeducore/keduvockvtml2reader.h index d123729..be1d044 100644 --- a/kdeeducore/keduvockvtml2reader.h +++ b/kdeeducore/keduvockvtml2reader.h @@ -108,9 +108,10 @@ public: /** read a grade * @param gradeElement element to read from - * #param grade object to read to + * @param expr expression element to add grades to + * @param index index of the current translation */ - bool readGrade(QDomElement &gradeElement, KEduVocGrade &grade); + bool readGrade(QDomElement &gradeElement, KEduVocExpression &expr, int index); bool readLesson(QDomElement &lessonElement); diff --git a/kdeeducore/kvtml2defs.h b/kdeeducore/kvtml2defs.h index d20cb17..d974d20 100644 --- a/kdeeducore/kvtml2defs.h +++ b/kdeeducore/kvtml2defs.h @@ -91,9 +91,10 @@ #define KVTML_SOUND "sound" #define KVTML_GRADE "grade" -#define KVTML_CURRENTGRADE "currentgradeint" +#define KVTML_FROMID "fromid" +#define KVTML_CURRENTGRADE "currentgrade" #define KVTML_COUNT "count" -#define KVTML_WRONG "errorcount" +#define KVTML_ERRORCOUNT "errorcount" #define KVTML_DATE "date" #define KVTML_TRUE "true" diff --git a/kdeeducore/kvtml2todo b/kdeeducore/kvtml2todo index fa91a77..824ec20 100644 --- a/kdeeducore/kvtml2todo +++ b/kdeeducore/kvtml2todo @@ -3,7 +3,6 @@ Temporary todo for kvtml2 reader: read lessons read falsefriend tags - read grades store identifier name, sizehint and type? (need a place to store it first) writer: -- 2.47.3