X-Git-Url: http://git.maemo.org/git/?p=ptas;a=blobdiff_plain;f=zouba%2Fsrc%2Fgpscontroller.cpp;h=abecb2dca9032ecad6582963ed49b103b36b70c8;hp=e924da56c2d6d3528839d31ebe9cdc1baee92c11;hb=42e623376638d658a98b0ec30850658f82e1c641;hpb=dc139290c3f16ad5d162defc0815c64da4f64d98 diff --git a/zouba/src/gpscontroller.cpp b/zouba/src/gpscontroller.cpp index e924da5..abecb2d 100644 --- a/zouba/src/gpscontroller.cpp +++ b/zouba/src/gpscontroller.cpp @@ -1,6 +1,8 @@ #include "gpscontroller.h" #include "gpscontroller_p.h" +#include "locations.h" + #include #include #include @@ -27,22 +29,38 @@ GpsController::~GpsController() void GpsController::getGps() { - if ( q->currentLocation() != 0 ) { - emit locationChanged( q->currentLocation() ); + Location *location; + + if ( q->useFakeLocation() ) { + Locations *locations = Locations::instance(); + location = locations->location( q->fakeLocationLabel() ); + } else { + location = q->liveLocation(); } + + emit locationChanged( location ); } void GpsController::useLiveGps() { q->setUseFakeLocation( false ); - q->setCurrentLocation(0); q->startGps(); + emit locationChanged( q->liveLocation() ); } -void GpsController::useFakeGps( Location *fakeLocation ) +void GpsController::useFakeGps( const QString &fakeLocationLabel ) { - q->stopGps(); - q->setUseFakeLocation( true ); - q->setCurrentLocation( fakeLocation ); - emit locationChanged( q->currentLocation() ); + qDebug() << "using fake gps (" << fakeLocationLabel << ")"; + + Locations *locations = Locations::instance(); + Location *fakeLocation = locations->location( fakeLocationLabel ); + + if ( fakeLocation == 0 ) { + qDebug() << "invalid fake location label; cannot use fake location"; + } else { + q->stopGps(); + q->setUseFakeLocation( true ); + q->setFakeLocationLabel( fakeLocationLabel ); + emit locationChanged( fakeLocation ); + } }