summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTarja Sundqvist <tarja.sundqvist@qt.io>2023-10-11 16:01:35 +0300
committerTarja Sundqvist <tarja.sundqvist@qt.io>2023-10-11 16:01:35 +0300
commitb6d96559cb9f5e0d79936c89887ea924b2c3514a (patch)
treecbc90841abc37d1ca420cdde646a4bcad56534d0
parent0ec8f5e82da7369a92824167c4d7331f6c502325 (diff)
parent4ed9f2f6768a3d3f8fcb80bbfceae7bd6bc9b998 (diff)
Merge remote-tracking branch 'origin/tqtc/lts-5.15.12' into tqtc/lts-5.15-opensourcev5.15.12-lts-lgpl
-rw-r--r--.qmake.conf2
-rw-r--r--src/positioningquick/qdeclarativepositionsource.cpp10
-rw-r--r--src/positioningquick/qdeclarativepositionsource_p.h1
3 files changed, 9 insertions, 4 deletions
diff --git a/.qmake.conf b/.qmake.conf
index edfb9862..a6fe7a56 100644
--- a/.qmake.conf
+++ b/.qmake.conf
@@ -3,7 +3,7 @@ CONFIG += warning_clean
DEFINES += QT_NO_JAVA_STYLE_ITERATORS QT_NO_LINKED_LIST
-MODULE_VERSION = 5.15.11
+MODULE_VERSION = 5.15.12
# Adds a way to debug location. The define is needed for multiple subprojects as they
# include the essential headers.
diff --git a/src/positioningquick/qdeclarativepositionsource.cpp b/src/positioningquick/qdeclarativepositionsource.cpp
index 9b7cafc1..3436811a 100644
--- a/src/positioningquick/qdeclarativepositionsource.cpp
+++ b/src/positioningquick/qdeclarativepositionsource.cpp
@@ -227,7 +227,7 @@ void QDeclarativePositionSource::tryAttach(const QString &newName, bool useFallb
m_positionSource->setPreferredPositioningMethods(
static_cast<QGeoPositionInfoSource::PositioningMethods>(int(m_preferredPositioningMethods)));
- if (m_active) {
+ if (m_startPending) {
const QGeoPositionInfo &lastKnown = m_positionSource->lastKnownPosition();
if (lastKnown.isValid())
setPosition(lastKnown);
@@ -655,6 +655,8 @@ QDeclarativePositionSource::PositioningMethods QDeclarativePositionSource::prefe
void QDeclarativePositionSource::start()
{
+ m_startPending = false;
+
if (m_positionSource)
m_positionSource->startUpdates();
@@ -727,10 +729,12 @@ void QDeclarativePositionSource::setActive(bool active)
if (active == m_active)
return;
- if (active)
+ if (active) {
+ m_startPending = true;
QTimer::singleShot(0, this, SLOT(start())); // delay ensures all properties have been set
- else
+ } else {
stop();
+ }
}
bool QDeclarativePositionSource::isActive() const
diff --git a/src/positioningquick/qdeclarativepositionsource_p.h b/src/positioningquick/qdeclarativepositionsource_p.h
index 0c1d8944..8fcc90c3 100644
--- a/src/positioningquick/qdeclarativepositionsource_p.h
+++ b/src/positioningquick/qdeclarativepositionsource_p.h
@@ -185,6 +185,7 @@ private:
QList<QDeclarativePluginParameter *> m_parameters;
bool m_componentComplete = false;
bool m_parametersInitialized = false;
+ bool m_startPending = false;
};
QT_END_NAMESPACE