#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);
+ }
}