Mark datetimes as UTC, refactor parsing, delete reply properly
authorjasu <jasu@skeletor.(none)>
Tue, 11 May 2010 06:21:37 +0000 (09:21 +0300)
committerjasu <jasu@skeletor.(none)>
Tue, 11 May 2010 06:21:37 +0000 (09:21 +0300)
src/eveskilltraining.cpp

index 29f936c..c672b6a 100644 (file)
@@ -25,6 +25,15 @@ EveSkillTraining::EveSkillTraining(QObject *parent) :
 
 bool EveSkillTraining::fromXml(QXmlStreamReader &xml)
 {
+    xml.readNextStartElement();
+    if (xml.name() != "eveapi")
+        return false;
+    xml.readNextStartElement();
+    if (xml.name() != "currentTime")
+        return false;
+
+    xml.readNextStartElement(); // end currentTime element
+    xml.readNextStartElement(); // start result element
     if (xml.name() != "result") {
         qDebug() << "Wrong element:" << xml.name();
         return false;
@@ -37,11 +46,13 @@ bool EveSkillTraining::fromXml(QXmlStreamReader &xml)
         if (xml.name() == "trainingEndTime") {
             qDebug() << "Parse end time";
             endTime = QDateTime::fromString(xml.readElementText(),"yyyy-MM-dd hh:mm:ss");//2008-08-17 06:43:00
+            startTime.setTimeSpec(Qt::UTC);
             qDebug()<< endTime;
 
         } else if (xml.name() == "trainingStartTime") {
             qDebug() << "Parse start time";
             startTime = QDateTime::fromString(xml.readElementText(),"yyyy-MM-dd hh:mm:ss");//2008-08-17 06:43:00
+            startTime.setTimeSpec(Qt::UTC);
             qDebug() << startTime;
 
         } else if (xml.name() == "trainingTypeID") {
@@ -59,11 +70,20 @@ bool EveSkillTraining::fromXml(QXmlStreamReader &xml)
 
             training = xml.readElementText().toInt() == 1;
             qDebug() << "Training?" << training;
+        } else if (xml.name() == "currentTQTime" ) {
+            currentTime = QDateTime::fromString(xml.readElementText(),"yyyy-MM-dd hh:mm:ss");
+            startTime.setTimeSpec(Qt::UTC);
+            qDebug() << "Current: " << currentTime;
         } else
             // Noop
             xml.skipCurrentElement();
 
     } // while
+    bool cached = xml.readNextStartElement(); // cachedUntil
+    if (cached) {
+        QDateTime cachedTime = QDateTime::fromString(xml.readElementText(),"yyyy-MM-dd hh:mm:ss");
+        cachedTime.setTimeSpec(Qt::UTC);
+    }
     qDebug() << "Parsing finished";
     return true;
 }
@@ -91,15 +111,7 @@ void EveSkillTraining::infoReady()
     qDebug() << "Reply ready";
     qDebug() << reply;
     QXmlStreamReader reader(reply);
-
-    reader.readNextStartElement();
-    if (reader.name() != "eveapi")
-        return;
-    reader.readNextStartElement();
-    if (reader.name() != "currentTime")
-        return;
-    reader.readNextStartElement(); // end currentTime element
-    reader.readNextStartElement(); // start result element
     fromXml(reader);
+    m_reply->deleteLater();
     emit finished();
 }