diff options
-rw-r--r-- | core/gpslocation.cpp | 8 | ||||
-rw-r--r-- | core/gpslocation.h | 3 |
2 files changed, 10 insertions, 1 deletions
diff --git a/core/gpslocation.cpp b/core/gpslocation.cpp index 3866fdc8a..29a8827af 100644 --- a/core/gpslocation.cpp +++ b/core/gpslocation.cpp @@ -66,6 +66,7 @@ QGeoPositionInfoSource *GpsLocation::getGpsSource() status(QString("Created position source %1").arg(m_GpsSource->sourceName())); connect(m_GpsSource, SIGNAL(positionUpdated(QGeoPositionInfo)), this, SLOT(newPosition(QGeoPositionInfo))); connect(m_GpsSource, SIGNAL(updateTimeout()), this, SLOT(updateTimeout())); + connect(m_GpsSource, SIGNAL(error(QGeoPositionInfoSource::Error)), this, SLOT(positionSourceError(QGeoPositionInfoSource::Error))); m_GpsSource->setUpdateInterval(5 * 60 * 1000); // 5 minutes so the device doesn't drain the battery } else { #ifdef SUBSURFACE_MOBILE @@ -154,6 +155,13 @@ void GpsLocation::updateTimeout() status("request to get new position timed out"); } +void GpsLocation::positionSourceError(QGeoPositionInfoSource::Error) +{ + status("error receiving a GPS location"); + haveSource = NOGPS; + emit haveSourceChanged(); +} + void GpsLocation::status(QString msg) { qDebug() << msg; diff --git a/core/gpslocation.h b/core/gpslocation.h index c6e4a7912..0e333ed82 100644 --- a/core/gpslocation.h +++ b/core/gpslocation.h @@ -20,7 +20,7 @@ struct gpsTracker { int idx; }; -class GpsLocation : QObject { +class GpsLocation : public QObject { Q_OBJECT public: GpsLocation(void (*showMsgCB)(const char *msg), QObject *parent); @@ -61,6 +61,7 @@ public slots: void serviceEnable(bool toggle); void newPosition(QGeoPositionInfo pos); void updateTimeout(); + void positionSourceError(QGeoPositionInfoSource::Error error); void uploadToServer(); void downloadFromServer(); void postError(QNetworkReply::NetworkError error); |