Implement Position tracking
authorLuciano Montanaro <mileima@cirulla.net>
Thu, 2 Jun 2011 13:39:49 +0000 (15:39 +0200)
committerLuciano Montanaro <mileima@cirulla.net>
Thu, 2 Jun 2011 13:39:49 +0000 (15:39 +0200)
Just trying to see if the Location API works

application/app.cpp
application/app.h
application/stationlistview.cpp
application/stationlistview.h

index e5d6f3e..96a7e98 100644 (file)
@@ -34,15 +34,22 @@ Boston, MA 02110-1301, USA.
 #include <QSettings>
 #include <QUrl>
 
+#include <QGeoPositionInfoSource>
+
+QTM_USE_NAMESPACE
+
 App::App(QObject *parent) :
     QObject(parent),
     accessManager(new QNetworkAccessManager(this)),
+    positionInfoSource(QGeoPositionInfoSource::createDefaultSource(this)),
     stationView(new StationView()),
     stationListModel(new StationListModel(this)),
     stationListView(new StationListView(stationListModel, stationView))
 {
     stationListModel->load(dataDir() + "stations/stations.qpl");
 
+    connect(positionInfoSource, SIGNAL(positionUpdated(QGeoPositionInfo)),
+            stationListView, SLOT(updatePosition(QGeoPositionInfo)));
     connect(stationListView, SIGNAL(stationSelected(const QString &)),
             SLOT(queryStation(const QString &)));
     connect(stationListView, SIGNAL(aboutTriggered()),
@@ -70,6 +77,9 @@ App::App(QObject *parent) :
         stationListView->show();
 #endif
     }
+
+    // Testing only: start updates rigt away.
+    positionInfoSource->startUpdates();
 }
 
 App::~App()
index 666eaa3..99d61eb 100644 (file)
@@ -24,6 +24,8 @@ Boston, MA 02110-1301, USA.
 
 #include <QApplication>
 
+#include <QGeoPositionInfoSource>
+
 class QNetworkAccessManager;
 class QNetworkReply;
 
@@ -31,6 +33,8 @@ class StationView;
 class StationListView;
 class StationListModel;
 
+QTM_USE_NAMESPACE
+
 class App : public QObject
 {
     Q_OBJECT
@@ -55,6 +59,7 @@ public:
 private:
     QNetworkAccessManager *accessManager;
     QNetworkReply *stationQueryReply;
+    QGeoPositionInfoSource *positionInfoSource;
     StationView *stationView;
     StationListModel *stationListModel;
     StationListView *stationListView;
index c89e0c1..21a00ac 100644 (file)
@@ -159,3 +159,8 @@ void StationListView::handleFilterChanges(const QString &filter)
         ui->filterEdit->hide();
     filterModel->setFilterFixedString(filter);
 }
+
+void StationListView::updatePosition(const QtMobility::QGeoPositionInfo &update)
+{
+    qDebug() << "Position update received" << update;
+}
index 308a277..88c6e27 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <QMainWindow>
 #include <QModelIndex>
+#include <QGeoPositionInfoSource>
 
 namespace Ui {
     class StationListView;
@@ -16,6 +17,8 @@ class KeyPressForwarder;
 class StationView;
 class StationListModel;
 
+QTM_USE_NAMESPACE
+
 class StationListView : public QMainWindow
 {
     Q_OBJECT
@@ -28,6 +31,9 @@ signals:
     void stationSelected(const QString &);
     void aboutTriggered(void);
 
+public slots:
+    void updatePosition(const QGeoPositionInfo &update);
+
 private slots:
     void showSettings(void);
     void showStation(const QModelIndex &index);