]> Git trees. - libqmvoc.git/commitdiff
readGrades fleshed out
authorJeremy Paul Whiting <jpwhiting@kde.org>
Sun, 22 Jul 2007 20:32:05 +0000 (20:32 +0000)
committerJeremy Paul Whiting <jpwhiting@kde.org>
Sun, 22 Jul 2007 20:32:05 +0000 (20:32 +0000)
svn path=/trunk/KDE/kdeedu/libkdeedu/; revision=691050

kdeeducore/keduvockvtml2reader.cpp
kdeeducore/keduvockvtml2reader.h
kdeeducore/kvtml2defs.h
kdeeducore/kvtml2todo

index def07aabb5b9ea9e8eedd1b0acb4f1482d32a602..fc8259ebcca9127d975495e12cccfd079cbc91bb 100644 (file)
@@ -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
index d12372952264c057af02f6147faf77fce7249e63..be1d04491e800450ac82d90565ff915dd0ed6721 100644 (file)
@@ -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);
 
index d20cb172af0ed8de9591d5d67f8e5336e0bd3410..d974d20352367a46881d1d7d8d41e8d386b28076 100644 (file)
 #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"
index fa91a777697f5fb720f482ab5100bc863c60366f..824ec20a856ca688c00b325afcab71e14a56ada8 100644 (file)
@@ -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: