- first experiments with QJson serialization
[buliscores] / src / src / backendkicker.cpp
index f807981..f52755d 100644 (file)
@@ -8,6 +8,8 @@
 #include <QSettings>
 #include <QApplication>
 
+#include <qjson/qobjecthelper.h>
+
 #include "backendkicker.h"
 
 const int BackendKicker::INTERVAL_FAST = 180;
@@ -31,7 +33,7 @@ BackendKicker::BackendKicker(QObject *parent) :
     this->selectLeague(settings.value("League", "1. Bundesliga").toString());
 }
 
-Match* BackendKicker::getMatch(QString hometeam, QString awayteam, QDateTime date)
+Match* BackendKicker::getOrAddMatch(QString hometeam, QString awayteam, QDateTime date)
 {
     QListIterator<Match*> iter(m_matchlist);
     Match*        match;
@@ -51,9 +53,38 @@ Match* BackendKicker::getMatch(QString hometeam, QString awayteam, QDateTime dat
     return match;
 }
 
-QList<Match*> BackendKicker::matchList()
+int BackendKicker::matchCount()
 {
-    return m_matchlist;
+    return m_matchlist.count();
+}
+
+Match* BackendKicker::getMatch(int index)
+{
+    Match* match;
+
+    match = m_matchlist.at(index);
+    if (match == NULL) {
+        qWarning() << "No match at index " << index;
+    }
+
+    return match;
+}
+
+QVariant BackendKicker::serializableData()
+{
+    QVariantMap             matchvariantmap;
+    QList<QVariant>         list;
+    QListIterator<Match*>   iter(m_matchlist);
+    Match*                  match;
+
+    while (iter.hasNext()) {
+        match = iter.next();
+
+        matchvariantmap = QJson::QObjectHelper::qobject2qvariant(match);
+        list.append(QVariant(matchvariantmap));
+    }
+
+    return matchvariantmap;
 }
 
 static QDateTime parseDate(QString datehtml)
@@ -186,7 +217,7 @@ void BackendKicker::parsePage (QString htmlstr)
                  break;
              case 5: // awayteam
                  awayteam = parseTeam(tmp);
-                 match = getMatch(hometeam, awayteam, date);
+                 match = getOrAddMatch(hometeam, awayteam, date);
                  break;
              case 6: // scores
                  parseScore(match, tmp);