diff options
Diffstat (limited to 'src/positioningquick/qdeclarativepositionsource.cpp')
-rw-r--r-- | src/positioningquick/qdeclarativepositionsource.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
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 |