Made the view a sublcass of QDeclarativeView
[quandoparte] / application / stationlistmodel.cpp
index 09c6395..01083d8 100644 (file)
@@ -1,6 +1,7 @@
 #include "stationlistmodel.h"
 
 #include <QFile>
+#include <QFileInfo>
 #include <QDebug>
 #include <QStandardItem>
 #include <QGeoCoordinate>
@@ -18,28 +19,29 @@ StationListModel::StationListModel(QObject *parent) :
 bool StationListModel::load(const QString &filename)
 {
     QFile file(filename);
+    QFileInfo fi(file);
 
-    qDebug() << "loading filename:" << filename;
+    qDebug() << "loading file:" << fi.absoluteFilePath();
 
     if (!file.open(QFile::ReadOnly | QFile::Text)) {
         qDebug() << "cannot open file:" << filename;
         return false;
     }
-    reader.setDevice(&file);
-    reader.readNext();
-    while (!reader.atEnd()) {
-        if (reader.isStartElement()) {
-            if(reader.name() == "stations") {
+    m_reader.setDevice(&file);
+    m_reader.readNext();
+    while (!m_reader.atEnd()) {
+        if (m_reader.isStartElement()) {
+            if(m_reader.name() == "stations") {
                 readStationsElement();
             } else {
-                reader.raiseError(tr("Not a qpl file"));
+                m_reader.raiseError(tr("Not a qpl file"));
             }
         } else {
-            reader.readNext();
+            m_reader.readNext();
         }
     }
     file.close();
-    if (reader.hasError()) {
+    if (m_reader.hasError()) {
         qDebug() << "parser error for:" << filename;
         return false;
     } else if (file.error() != QFile::NoError) {
@@ -51,72 +53,64 @@ bool StationListModel::load(const QString &filename)
 
 void StationListModel::readStationsElement()
 {
-    qDebug() << "reading stations element";
-
-    reader.readNext();
-    while (!reader.atEnd()) {
-        if (reader.isEndElement()) {
-            reader.readNext();
+    m_reader.readNext();
+    while (!m_reader.atEnd()) {
+        if (m_reader.isEndElement()) {
+            m_reader.readNext();
             break;
-        } else if (reader.isStartElement()) {
-            if (reader.name() == "station") {
+        } else if (m_reader.isStartElement()) {
+            if (m_reader.name() == "station") {
                 readStationElement();
             } else {
                 skipUnknownElement();
             }
         } else {
-            reader.readNext();
+            m_reader.readNext();
         }
     }
 }
 
 void StationListModel::readStationElement()
 {
-    qDebug() << "reading station element";
-
     QStandardItem *item = new QStandardItem;
-    reader.readNext();
-    while (!reader.atEnd()) {
-        if (reader.isEndElement()) {
+    m_reader.readNext();
+    while (!m_reader.atEnd()) {
+        if (m_reader.isEndElement()) {
             this->appendRow(item);
-            reader.readNext();
+            m_reader.readNext();
             break;
-        } else if (reader.isStartElement()) {
-            if (reader.name() == "pos") {
+        } else if (m_reader.isStartElement()) {
+            if (m_reader.name() == "pos") {
                 readPosElement(item);
-            } else  if (reader.name() == "name") {
+            } else  if (m_reader.name() == "name") {
                 readNameElement(item);
             } else {
                 skipUnknownElement();
             }
         } else {
-            reader.readNext();
+            m_reader.readNext();
         }
     }
 }
 
 void StationListModel::readPosElement(QStandardItem *item)
 {
-    qDebug() << "reading pos element";
-
-    QStringList coordinates = reader.readElementText().split(",");
+    QStringList coordinates = m_reader.readElementText().split(",");
     QGeoCoordinate pos = QGeoCoordinate(coordinates[0].toDouble(), coordinates[1].toDouble());
-    item->setData(QVariant::fromValue(pos));
+    item->setData(QVariant::fromValue(pos), PositionRole);
     qDebug() << "pos:" << pos;
-    reader.readElementText();
-    if (reader.isEndElement()) {
-        reader.readNext();
+    m_reader.readElementText();
+    if (m_reader.isEndElement()) {
+        m_reader.readNext();
     }
 }
 
 void StationListModel::readNameElement(QStandardItem *item)
 {
-    qDebug() << "reading name element";
-
-    item->setText(reader.readElementText());
+    item->setText(m_reader.readElementText());
     qDebug() << "name:" << item->text();
-    if (reader.isEndElement()) {
-        reader.readNext();
+    if (m_reader.isEndElement()) {
+        m_reader.readNext();
     }
 }
 
@@ -124,15 +118,15 @@ void StationListModel::skipUnknownElement()
 {
     qDebug() << "skipping unknown element";
 
-    reader.readNext();
-    while (!reader.atEnd()) {
-        if (reader.isEndElement()) {
-            reader.readNext();
+    m_reader.readNext();
+    while (!m_reader.atEnd()) {
+        if (m_reader.isEndElement()) {
+            m_reader.readNext();
             break;
-        } else if (!reader.isStartElement()) {
+        } else if (!m_reader.isStartElement()) {
             skipUnknownElement();
         } else {
-            reader.readNext();
+            m_reader.readNext();
         }
     }
 }