#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()),
stationListView->show();
#endif
}
+
+ // Testing only: start updates rigt away.
+ positionInfoSource->startUpdates();
}
App::~App()
#include <QApplication>
+#include <QGeoPositionInfoSource>
+
class QNetworkAccessManager;
class QNetworkReply;
class StationListView;
class StationListModel;
+QTM_USE_NAMESPACE
+
class App : public QObject
{
Q_OBJECT
private:
QNetworkAccessManager *accessManager;
QNetworkReply *stationQueryReply;
+ QGeoPositionInfoSource *positionInfoSource;
StationView *stationView;
StationListModel *stationListModel;
StationListView *stationListView;
#include <QMainWindow>
#include <QModelIndex>
+#include <QGeoPositionInfoSource>
namespace Ui {
class StationListView;
class StationView;
class StationListModel;
+QTM_USE_NAMESPACE
+
class StationListView : public QMainWindow
{
Q_OBJECT
void stationSelected(const QString &);
void aboutTriggered(void);
+public slots:
+ void updatePosition(const QGeoPositionInfo &update);
+
private slots:
void showSettings(void);
void showStation(const QModelIndex &index);