Changes: Changed the route table to a layout of buttons and tamed the layouts a bit.
[ptas] / zouba / src / gpscontroller.cpp
1 #include "gpscontroller.h"
2 #include "gpscontroller_p.h"
3
4 #include <QObject>
5 #include <QGeoPositionInfo>
6 #include <QGeoPositionInfoSource>
7 #include <QDebug>
8
9 GpsController::GpsController() :
10   q( new GpsControllerPrivate() )
11 {
12   q->init();
13   q->startGps();
14 }
15
16 GpsController::GpsController( GpsControllerPrivate *gpsControllerPrivate ) :
17   q( gpsControllerPrivate )
18 {
19   q->init();
20   q->startGps();
21 }
22
23 GpsController::~GpsController()
24 {
25   delete q;
26 }
27
28 void GpsController::getGps()
29 {
30   Location *location;
31
32   if ( q->useFakeLocation() ) {
33     location = q->fakeLocation();
34   } else {
35     location = q->liveLocation();
36   }
37
38   emit locationChanged( location );
39 }
40
41 void GpsController::useLiveGps()
42 {
43   q->setUseFakeLocation( false );
44   q->startGps();
45   emit locationChanged( q->liveLocation() );
46 }
47
48 void GpsController::useFakeGps( const QString &fakeLocationLabel )
49 {
50   qDebug() << "using fake gps (" << fakeLocationLabel << ")";
51
52   q->setFakeLocationLabel( fakeLocationLabel );
53   Location  *fakeLocation = q->fakeLocation();
54
55   if ( fakeLocation == 0 ) {
56     qDebug() << "invalid fake location label; cannot use fake location";
57   } else {
58     q->stopGps();
59     q->setUseFakeLocation( true );
60     emit locationChanged( fakeLocation );
61   }
62 }