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())
// 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;
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
/** 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);
#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"