Incorporated changes from bus project.
[ptas] / src / gpscontroller.cpp
index d924564..9fad558 100644 (file)
@@ -7,59 +7,63 @@
 #include <QDebug>
 
 GpsController::GpsController() :
-  q( new GpsControllerPrivate() )
+    q(new GpsControllerPrivate())
 {
-  q->init();
-  q->startGps();
+    q->init();
+    q->startGps();
+
+    connect(q, SIGNAL(locationChanged(Location*)), SIGNAL(locationChanged(Location*)));
 }
 
-GpsController::GpsController( GpsControllerPrivate *gpsControllerPrivate ) :
-  q( gpsControllerPrivate )
+GpsController::GpsController(GpsControllerPrivate *gpsControllerPrivate) :
+    q(gpsControllerPrivate)
 {
-  q->init();
-  q->startGps();
+    q->init();
+    q->startGps();
+
+    connect(q, SIGNAL(locationChanged(Location*)), SIGNAL(locationChanged(Location*)));
 }
 
 GpsController::~GpsController()
 {
-  delete q;
+    delete q;
 }
 
 void GpsController::getGps()
 {
-  Location *location;
-  Location *previousLocation = q->mostRecentlyReportedLocation();
+    qDebug() << Q_FUNC_INFO;
+    Location *location;
 
-  if ( q->useFakeLocation() ) {
-    location = q->fakeLocation();
-  } else {
-    location = q->liveLocation();
-  }
+    if (q->useFakeLocation()) {
+        location = q->fakeLocation();
+    } else {
+        location = q->liveLocation();
+    }
 
-  if ( location != previousLocation ) {
-    emit locationChanged( location );
-  }
+    if (location->isValid()) {
+        emit locationChanged(location);
+    }
 }
 
 void GpsController::useLiveGps()
 {
-  q->setUseFakeLocation( false );
-  q->startGps();
-  emit locationChanged( q->liveLocation() );
+    q->setUseFakeLocation(false);
+    q->startGps();
+    emit locationChanged(q->liveLocation());
 }
 
-void GpsController::useFakeGps( const QString &fakeLocationLabel )
+void GpsController::useFakeGps(const QString &fakeLocationLabel)
 {
-  qDebug() << "using fake gps (" << fakeLocationLabel << ")";
+    qDebug() << "using fake gps (" << fakeLocationLabel << ")";
 
-  q->setFakeLocationLabel( fakeLocationLabel );
-  Location  *fakeLocation = q->fakeLocation();
+    q->setFakeLocationLabel(fakeLocationLabel);
+    Location  *fakeLocation = q->fakeLocation();
 
-  if ( fakeLocation == 0 ) {
-    qDebug() << "invalid fake location label; cannot use fake location";
-  } else {
-    q->stopGps();
-    q->setUseFakeLocation( true );
-    emit locationChanged( fakeLocation );
-  }
+    if (fakeLocation == 0) {
+        qDebug() << "invalid fake location label; cannot use fake location";
+    } else {
+        q->stopGps();
+        q->setUseFakeLocation(true);
+        emit locationChanged(fakeLocation);
+    }
 }