From 6a62796e0b8149f5d0bf2602cac373f602253c3b Mon Sep 17 00:00:00 2001 From: James Mare Date: Tue, 1 Aug 2023 22:01:08 -0700 Subject: [PATCH] PositionManager: clear values on changing source This prevents getting stuck with old values latched in the UI. Which would happen if the new position source didn't get an update. --- src/PositionManager/PositionManager.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/PositionManager/PositionManager.cpp b/src/PositionManager/PositionManager.cpp index 0855f14..78fbd8f 100644 --- a/src/PositionManager/PositionManager.cpp +++ b/src/PositionManager/PositionManager.cpp @@ -153,6 +153,17 @@ void QGCPositionManager::setPositionSource(QGCPositionManager::QGCPositionSource if (_currentSource != nullptr) { _currentSource->stopUpdates(); disconnect(_currentSource); + + // Reset all values so we dont get stuck on old values + _geoPositionInfo = QGeoPositionInfo(); + _gcsPosition = QGeoCoordinate(); + _gcsHeading = qQNaN(); + _gcsPositionHorizontalAccuracy = std::numeric_limits::infinity(); + + emit gcsPositionChanged(_gcsPosition); + emit gcsHeadingChanged(_gcsHeading); + emit positionInfoUpdated(_geoPositionInfo); + emit gcsPositionHorizontalAccuracyChanged(); } if (qgcApp()->runningUnitTests()) {