summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/position/android/src/qgeosatelliteinfosource_android.cpp20
-rw-r--r--src/plugins/position/android/src/qgeosatelliteinfosource_android_p.h1
-rw-r--r--src/plugins/position/geoclue/qgeosatelliteinfosource_geocluemaster.cpp20
-rw-r--r--src/plugins/position/geoclue/qgeosatelliteinfosource_geocluemaster.h2
-rw-r--r--src/plugins/position/gypsy/qgeosatelliteinfosource_gypsy.cpp18
-rw-r--r--src/plugins/position/gypsy/qgeosatelliteinfosource_gypsy_p.h4
-rw-r--r--src/plugins/position/serialnmea/qnmeasatelliteinfosource.cpp10
7 files changed, 49 insertions, 26 deletions
diff --git a/src/plugins/position/android/src/qgeosatelliteinfosource_android.cpp b/src/plugins/position/android/src/qgeosatelliteinfosource_android.cpp
index 92ad0df4..65821bd8 100644
--- a/src/plugins/position/android/src/qgeosatelliteinfosource_android.cpp
+++ b/src/plugins/position/android/src/qgeosatelliteinfosource_android.cpp
@@ -109,8 +109,7 @@ void QGeoSatelliteInfoSourceAndroid::startUpdates()
androidClassKeyForUpdate, false, updateInterval());
if (error != QGeoSatelliteInfoSource::NoError) {
updatesRunning = false;
- m_error = error;
- emit QGeoSatelliteInfoSource::errorOccurred(m_error);
+ setError(error);
}
}
@@ -129,7 +128,7 @@ void QGeoSatelliteInfoSourceAndroid::requestUpdate(int timeout)
return;
if (timeout != 0 && timeout < minimumUpdateInterval()) {
- emit requestTimeout();
+ setError(QGeoSatelliteInfoSource::UpdateTimeoutError);
return;
}
@@ -148,8 +147,7 @@ void QGeoSatelliteInfoSourceAndroid::requestUpdate(int timeout)
androidClassKeyForSingleRequest, true, timeout);
if (error != QGeoSatelliteInfoSource::NoError) {
requestTimer.stop();
- m_error = error;
- emit QGeoSatelliteInfoSource::errorOccurred(m_error);
+ setError(error);
}
}
@@ -185,7 +183,7 @@ void QGeoSatelliteInfoSourceAndroid::requestTimeout()
const int count = m_satsInView.count();
if (!count) {
- emit requestTimeout();
+ setError(QGeoSatelliteInfoSource::UpdateTimeoutError);
return;
}
@@ -209,8 +207,14 @@ void QGeoSatelliteInfoSourceAndroid::reconfigureRunningSystem()
startUpdates();
}
+void QGeoSatelliteInfoSourceAndroid::setError(QGeoSatelliteInfoSource::Error error)
+{
+ m_error = error;
+ if (m_error != QGeoSatelliteInfoSource::NoError)
+ emit QGeoSatelliteInfoSource::errorOccurred(m_error);
+}
+
void QGeoSatelliteInfoSourceAndroid::locationProviderDisabled()
{
- m_error = QGeoSatelliteInfoSource::ClosedError;
- emit QGeoSatelliteInfoSource::errorOccurred(m_error);
+ setError(QGeoSatelliteInfoSource::ClosedError);
}
diff --git a/src/plugins/position/android/src/qgeosatelliteinfosource_android_p.h b/src/plugins/position/android/src/qgeosatelliteinfosource_android_p.h
index 150009a2..19b7b577 100644
--- a/src/plugins/position/android/src/qgeosatelliteinfosource_android_p.h
+++ b/src/plugins/position/android/src/qgeosatelliteinfosource_android_p.h
@@ -82,6 +82,7 @@ private Q_SLOTS:
private:
void reconfigureRunningSystem();
+ void setError(QGeoSatelliteInfoSource::Error error);
Error m_error;
int androidClassKeyForUpdate;
diff --git a/src/plugins/position/geoclue/qgeosatelliteinfosource_geocluemaster.cpp b/src/plugins/position/geoclue/qgeosatelliteinfosource_geocluemaster.cpp
index a54a51a5..9986dd3b 100644
--- a/src/plugins/position/geoclue/qgeosatelliteinfosource_geocluemaster.cpp
+++ b/src/plugins/position/geoclue/qgeosatelliteinfosource_geocluemaster.cpp
@@ -121,7 +121,7 @@ void QGeoSatelliteInfoSourceGeoclueMaster::stopUpdates()
void QGeoSatelliteInfoSourceGeoclueMaster::requestUpdate(int timeout)
{
if (timeout < minimumUpdateInterval() && timeout != 0) {
- emit requestTimeout();
+ setError(QGeoSatelliteInfoSource::UpdateTimeoutError);
return;
}
@@ -176,6 +176,13 @@ void QGeoSatelliteInfoSourceGeoclueMaster::updateSatelliteInfo(int timestamp, in
m_requestTimer.start(qMax(updateInterval(), minimumUpdateInterval()));
}
+void QGeoSatelliteInfoSourceGeoclueMaster::setError(QGeoSatelliteInfoSource::Error error)
+{
+ m_error = error;
+ if (m_error != QGeoSatelliteInfoSource::NoError)
+ emit QGeoSatelliteInfoSource::errorOccurred(m_error);
+}
+
void QGeoSatelliteInfoSourceGeoclueMaster::requestUpdateTimeout()
{
// If we end up here, there has not been a valid satellite info update.
@@ -185,7 +192,7 @@ void QGeoSatelliteInfoSourceGeoclueMaster::requestUpdateTimeout()
emit satellitesInViewUpdated(m_inView);
emit satellitesInUseUpdated(m_inUse);
} else {
- emit requestTimeout();
+ setError(QGeoSatelliteInfoSource::UpdateTimeoutError);
// Only stop satellite info if regular updates not active.
cleanupSatelliteSource();
@@ -250,8 +257,7 @@ void QGeoSatelliteInfoSourceGeoclueMaster::positionProviderChanged(const QString
}
if (providerService.isEmpty() || providerPath.isEmpty()) {
- m_error = AccessError;
- emit QGeoSatelliteInfoSource::errorOccurred(m_error);
+ setError(QGeoSatelliteInfoSource::AccessError);
return;
}
@@ -291,10 +297,8 @@ void QGeoSatelliteInfoSourceGeoclueMaster::satelliteChanged(const QDBusMessage &
void QGeoSatelliteInfoSourceGeoclueMaster::configureSatelliteSource()
{
- if (!m_master->createMasterClient(Accuracy::Detailed, QGeoclueMaster::ResourceGps)) {
- m_error = UnknownSourceError;
- emit QGeoSatelliteInfoSource::errorOccurred(m_error);
- }
+ if (!m_master->createMasterClient(Accuracy::Detailed, QGeoclueMaster::ResourceGps))
+ setError(QGeoSatelliteInfoSource::UnknownSourceError);
}
void QGeoSatelliteInfoSourceGeoclueMaster::cleanupSatelliteSource()
diff --git a/src/plugins/position/geoclue/qgeosatelliteinfosource_geocluemaster.h b/src/plugins/position/geoclue/qgeosatelliteinfosource_geocluemaster.h
index 254a17ac..98da091d 100644
--- a/src/plugins/position/geoclue/qgeosatelliteinfosource_geocluemaster.h
+++ b/src/plugins/position/geoclue/qgeosatelliteinfosource_geocluemaster.h
@@ -87,6 +87,8 @@ private:
void updateSatelliteInfo(int timestamp, int satellitesUsed, int satellitesVisible,
const QList<int> &usedPrn, const QList<QGeoSatelliteInfo> &satInfos);
+ void setError(QGeoSatelliteInfoSource::Error error);
+
QGeoclueMaster *m_master;
OrgFreedesktopGeoclueInterface *m_provider;
diff --git a/src/plugins/position/gypsy/qgeosatelliteinfosource_gypsy.cpp b/src/plugins/position/gypsy/qgeosatelliteinfosource_gypsy.cpp
index 2a3f31dc..6b1b430a 100644
--- a/src/plugins/position/gypsy/qgeosatelliteinfosource_gypsy.cpp
+++ b/src/plugins/position/gypsy/qgeosatelliteinfosource_gypsy.cpp
@@ -140,8 +140,9 @@ gchar *SatelliteGypsyEngine::eng_gconf_client_get_string(GConfClient *client, co
return ::gconf_client_get_string(client, key, err);
}
-QGeoSatelliteInfoSourceGypsy::QGeoSatelliteInfoSourceGypsy(QObject *parent) : QGeoSatelliteInfoSource(parent),
- m_engine(0), m_satellite(0), m_device(0), m_requestTimer(this), m_updatesOngoing(false), m_requestOngoing(false)
+QGeoSatelliteInfoSourceGypsy::QGeoSatelliteInfoSourceGypsy(QObject *parent)
+ : QGeoSatelliteInfoSource(parent), m_engine(0), m_satellite(0), m_device(0),
+ m_requestTimer(this), m_updatesOngoing(false), m_requestOngoing(false)
{
m_requestTimer.setSingleShot(true);
QObject::connect(&m_requestTimer, SIGNAL(timeout()), this, SLOT(requestUpdateTimeout()));
@@ -290,7 +291,7 @@ int QGeoSatelliteInfoSourceGypsy::minimumUpdateInterval() const
QGeoSatelliteInfoSource::Error QGeoSatelliteInfoSourceGypsy::error() const
{
- return NoError;
+ return m_error;
}
void QGeoSatelliteInfoSourceGypsy::startUpdates()
@@ -322,7 +323,7 @@ void QGeoSatelliteInfoSourceGypsy::requestUpdate(int timeout)
if (m_requestOngoing)
return;
if (timeout < 0) {
- emit requestTimeout();
+ setError(QGeoSatelliteInfoSource::UpdateTimeoutError);
return;
}
m_requestOngoing = true;
@@ -369,7 +370,14 @@ void QGeoSatelliteInfoSourceGypsy::requestUpdateTimeout()
m_engine->eng_g_signal_handlers_disconnect_by_func(G_OBJECT(m_satellite), (void *)satellites_changed, this);
}
m_requestOngoing = false;
- emit requestTimeout();
+ setError(QGeoSatelliteInfoSource::UpdateTimeoutError);
+}
+
+void QGeoSatelliteInfoSourceGypsy::setError(QGeoSatelliteInfoSource::Error error)
+{
+ m_error = error;
+ if (m_error != QGeoSatelliteInfoSource::NoError)
+ emit QGeoSatelliteInfoSource::errorOccurred(m_error);
}
QT_END_NAMESPACE
diff --git a/src/plugins/position/gypsy/qgeosatelliteinfosource_gypsy_p.h b/src/plugins/position/gypsy/qgeosatelliteinfosource_gypsy_p.h
index c28ca3a1..b393ce3f 100644
--- a/src/plugins/position/gypsy/qgeosatelliteinfosource_gypsy_p.h
+++ b/src/plugins/position/gypsy/qgeosatelliteinfosource_gypsy_p.h
@@ -121,6 +121,9 @@ signals:
private slots:
void requestUpdateTimeout();
+private:
+ void setError(QGeoSatelliteInfoSource::Error error);
+
protected:
// Creates an engine which encapsulates all used symbols
// that we want to be also able to mock.
@@ -134,6 +137,7 @@ private:
QTimer m_requestTimer;
bool m_updatesOngoing;
bool m_requestOngoing;
+ QGeoSatelliteInfoSource::Error m_error = QGeoSatelliteInfoSource::NoError;
};
QT_END_NAMESPACE
diff --git a/src/plugins/position/serialnmea/qnmeasatelliteinfosource.cpp b/src/plugins/position/serialnmea/qnmeasatelliteinfosource.cpp
index d0a4d3b5..cb127218 100644
--- a/src/plugins/position/serialnmea/qnmeasatelliteinfosource.cpp
+++ b/src/plugins/position/serialnmea/qnmeasatelliteinfosource.cpp
@@ -108,7 +108,7 @@ public slots:
public:
- QGeoSatelliteInfoSource *m_source = nullptr;
+ QNmeaSatelliteInfoSource *m_source = nullptr;
QGeoSatelliteInfoSource::Error m_satelliteError = QGeoSatelliteInfoSource::NoError;
QPointer<QIODevice> m_device;
struct Update {
@@ -321,7 +321,7 @@ void QNmeaSatelliteInfoSourcePrivate::requestUpdate(int msec)
return;
if (msec <= 0 || msec < m_source->minimumUpdateInterval()) {
- emit m_source->requestTimeout();
+ m_source->setError(QGeoSatelliteInfoSource::UpdateTimeoutError);
return;
}
@@ -332,7 +332,7 @@ void QNmeaSatelliteInfoSourcePrivate::requestUpdate(int msec)
bool initialized = initialize();
if (!initialized) {
- emit m_source->requestTimeout();
+ m_source->setError(QGeoSatelliteInfoSource::UpdateTimeoutError);
return;
}
@@ -356,7 +356,7 @@ void QNmeaSatelliteInfoSourcePrivate::emitPendingUpdate()
} else { // invalid or not fresh update
if (m_noUpdateLastInterval && !m_updateTimeoutSent) {
m_updateTimeoutSent = true;
- emit m_source->requestTimeout();
+ m_source->setError(QGeoSatelliteInfoSource::UpdateTimeoutError);
}
m_noUpdateLastInterval = true;
}
@@ -371,7 +371,7 @@ void QNmeaSatelliteInfoSourcePrivate::sourceDataClosed()
void QNmeaSatelliteInfoSourcePrivate::updateRequestTimeout()
{
m_requestTimer->stop();
- emit m_source->requestTimeout();
+ m_source->setError(QGeoSatelliteInfoSource::UpdateTimeoutError);
}
void QNmeaSatelliteInfoSourcePrivate::readAvailableData()