X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=zouba%2Fsrc%2Fgpscontroller.cpp;h=32568b02c4d17c703788a5a17233413a10e433b1;hb=c32bda4f974f19d525fa9bf430fd8f86fd7221f8;hp=e4de9b415dcc225d35d3c4fbb973b3b6eee13c2b;hpb=c2811396f7936d974eba4d8a2bf454713334a6d1;p=ptas diff --git a/zouba/src/gpscontroller.cpp b/zouba/src/gpscontroller.cpp index e4de9b4..32568b0 100644 --- a/zouba/src/gpscontroller.cpp +++ b/zouba/src/gpscontroller.cpp @@ -27,23 +27,36 @@ GpsController::~GpsController() void GpsController::getGps() { - if ( q->currentLocation() != 0 ) { - emit locationChanged( q->currentLocation() ); + Location *location; + + if ( q->useFakeLocation() ) { + location = q->fakeLocation(); + } else { + location = q->liveLocation(); } + + emit locationChanged( location ); } void GpsController::useLiveGps() { q->setUseFakeLocation( false ); - q->setCurrentLocation( new Location( "livegps" ) ); q->startGps(); + emit locationChanged( q->liveLocation() ); } -void GpsController::useFakeGps( Location *fakeLocation ) +void GpsController::useFakeGps( const QString &fakeLocationLabel ) { - qDebug() << "using fake gps (" << fakeLocation->label() << ")"; - q->stopGps(); - q->setUseFakeLocation( true ); - q->setCurrentLocation( fakeLocation ); - emit locationChanged( q->currentLocation() ); + qDebug() << "using fake gps (" << fakeLocationLabel << ")"; + + 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 ); + } }