summaryrefslogtreecommitdiff
path: root/src/plugins/position/serialnmea/qnmeasatelliteinfosource.cpp
diff options
context:
space:
mode:
authorIvan Solovev <ivan.solovev@qt.io>2021-01-27 15:40:17 +0100
committerIvan Solovev <ivan.solovev@qt.io>2021-01-29 10:40:46 +0100
commit26b53660fc916c543759e7add964ab696582120a (patch)
tree98f3de6180609447a4a7b14362aa3031b4b496ab /src/plugins/position/serialnmea/qnmeasatelliteinfosource.cpp
parenta8496e8d52e261a5a9206c4963adf43f6083de9e (diff)
downloadqtlocation-26b53660fc916c543759e7add964ab696582120a.tar.gz
QtPositioning: reset errors properly
Calling startUpdates(), startMonitoring() or requestUpdate() on QGeoPositionInfoSource/QGeoSatelliteInfoSource/QGeoAreaMonitorSource subclasses effectively means starting a new work session, which means that we should not care about the previous errors. This patch resets the errors to Error::NoError in all subclasses when calling these methods. Task-number: QTBUG-90491 Change-Id: Ia9cf0345e8c672d47814d8d0a865cd23541af61a Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Diffstat (limited to 'src/plugins/position/serialnmea/qnmeasatelliteinfosource.cpp')
-rw-r--r--src/plugins/position/serialnmea/qnmeasatelliteinfosource.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/plugins/position/serialnmea/qnmeasatelliteinfosource.cpp b/src/plugins/position/serialnmea/qnmeasatelliteinfosource.cpp
index cb127218..c33eb146 100644
--- a/src/plugins/position/serialnmea/qnmeasatelliteinfosource.cpp
+++ b/src/plugins/position/serialnmea/qnmeasatelliteinfosource.cpp
@@ -272,6 +272,8 @@ void QNmeaSatelliteInfoSourcePrivate::startUpdates()
if (m_invokedStart)
return;
+ m_satelliteError = QGeoSatelliteInfoSource::NoError;
+
m_invokedStart = true;
m_pendingUpdate.clear();
m_noUpdateLastInterval = false;
@@ -320,6 +322,8 @@ void QNmeaSatelliteInfoSourcePrivate::requestUpdate(int msec)
if (m_requestTimer && m_requestTimer->isActive())
return;
+ m_satelliteError = QGeoSatelliteInfoSource::NoError;
+
if (msec <= 0 || msec < m_source->minimumUpdateInterval()) {
m_source->setError(QGeoSatelliteInfoSource::UpdateTimeoutError);
return;
@@ -549,7 +553,8 @@ void QNmeaSatelliteInfoSource::requestUpdate(int msec)
void QNmeaSatelliteInfoSource::setError(QGeoSatelliteInfoSource::Error satelliteError)
{
d->m_satelliteError = satelliteError;
- emit QGeoSatelliteInfoSource::errorOccurred(satelliteError);
+ if (d->m_satelliteError != QGeoSatelliteInfoSource::NoError)
+ emit QGeoSatelliteInfoSource::errorOccurred(satelliteError);
}