void QGeoPositionInfoSourceAndroid::setPreferredPositioningMethods(QGeoPositionInfoSource::PositioningMethods methods) { PositioningMethods previousPreferredPositioningMethods = preferredPositioningMethods(); QGeoPositionInfoSource::setPreferredPositioningMethods(methods); if (previousPreferredPositioningMethods == preferredPositioningMethods()) return; if (updatesRunning) reconfigureRunningSystem(); }
/*! \reimp */ void QGeoPositionInfoSourceBb::setPreferredPositioningMethods(PositioningMethods methods) { PositioningMethods previousPreferredPositioningMethods = preferredPositioningMethods(); QGeoPositionInfoSource::setPreferredPositioningMethods(methods); if (previousPreferredPositioningMethods == preferredPositioningMethods()) return; Q_D(QGeoPositionInfoSourceBb); if (d->_startUpdatesInvoked) { d->stopUpdates(); d->startUpdates(); } }
void QDeclarativePositionSource::setName(const QString &newName) { if (m_positionSource && m_positionSource->sourceName() == newName) return; const QString previousName = name(); int previousUpdateInterval = updateInterval(); PositioningMethods previousPositioningMethods = supportedPositioningMethods(); PositioningMethods previousPreferredPositioningMethods = preferredPositioningMethods(); delete m_positionSource; if (newName.isEmpty()) m_positionSource = QGeoPositionInfoSource::createDefaultSource(this); else m_positionSource = QGeoPositionInfoSource::createSource(newName, this); if (m_positionSource) { connect(m_positionSource, SIGNAL(positionUpdated(QGeoPositionInfo)), this, SLOT(positionUpdateReceived(QGeoPositionInfo))); connect(m_positionSource, SIGNAL(error(QGeoPositionInfoSource::Error)), this, SLOT(sourceErrorReceived(QGeoPositionInfoSource::Error))); connect(m_positionSource, SIGNAL(updateTimeout()), this, SLOT(updateTimeoutReceived())); m_positionSource->setUpdateInterval(m_updateInterval); m_positionSource->setPreferredPositioningMethods( static_cast<QGeoPositionInfoSource::PositioningMethods>(int(m_preferredPositioningMethods))); setPosition(m_positionSource->lastKnownPosition()); } if (previousUpdateInterval != updateInterval()) emit updateIntervalChanged(); if (previousPreferredPositioningMethods != preferredPositioningMethods()) emit preferredPositioningMethodsChanged(); if (previousPositioningMethods != supportedPositioningMethods()) emit supportedPositioningMethodsChanged(); emit validityChanged(); if (m_active) { m_active = false; emit activeChanged(); } if (previousName != name()) emit nameChanged(); }
void QGeoPositionInfoSourceAndroidGms::setPreferredPositioningMethods(const PositioningMethods methods) { const PositioningMethods previousPreferredPositioningMethods = preferredPositioningMethods(); QGeoPositionInfoSource::setPreferredPositioningMethods(methods); if (previousPreferredPositioningMethods == preferredPositioningMethods()) { return; } if (updatesRunning_) { reconfigureRunningSystem(); } }
void QDeclarativePositionSource::componentComplete() { if (!m_positionSource) { int previousUpdateInterval = updateInterval(); PositioningMethods previousPositioningMethods = supportedPositioningMethods(); PositioningMethods previousPreferredPositioningMethods = preferredPositioningMethods(); m_positionSource = QGeoPositionInfoSource::createDefaultSource(this); if (m_positionSource) { connect(m_positionSource, SIGNAL(positionUpdated(QGeoPositionInfo)), this, SLOT(positionUpdateReceived(QGeoPositionInfo))); connect(m_positionSource, SIGNAL(error(QGeoPositionInfoSource::Error)), this, SLOT(sourceErrorReceived(QGeoPositionInfoSource::Error))); connect(m_positionSource, SIGNAL(updateTimeout()), this, SLOT(updateTimeoutReceived())); m_positionSource->setUpdateInterval(m_updateInterval); m_positionSource->setPreferredPositioningMethods( static_cast<QGeoPositionInfoSource::PositioningMethods>(int(m_preferredPositioningMethods))); setPosition(m_positionSource->lastKnownPosition()); } if (previousUpdateInterval != updateInterval()) emit updateIntervalChanged(); if (previousPreferredPositioningMethods != preferredPositioningMethods()) emit preferredPositioningMethodsChanged(); if (previousPositioningMethods != supportedPositioningMethods()) emit supportedPositioningMethodsChanged(); emit validityChanged(); if (m_active) { m_active = false; emit activeChanged(); } emit nameChanged(); } }
void QDeclarativePositionSource::setPreferredPositioningMethods(PositioningMethods methods) { if (m_positionSource) { PositioningMethods previousPreferredPositioningMethods = preferredPositioningMethods(); m_preferredPositioningMethods = methods; if (previousPreferredPositioningMethods != methods) { m_positionSource->setPreferredPositioningMethods( static_cast<QGeoPositionInfoSource::PositioningMethods>(int(methods))); if (previousPreferredPositioningMethods != m_positionSource->preferredPositioningMethods()) emit preferredPositioningMethodsChanged(); } } else { if (m_preferredPositioningMethods != methods) { m_preferredPositioningMethods = methods; emit preferredPositioningMethodsChanged(); } } }
void QGeoPositionInfoSourceAndroid::startUpdates() { if (updatesRunning) return; if (preferredPositioningMethods() == 0) { m_error = UnknownSourceError; emit QGeoPositionInfoSource::error(m_error); return; } updatesRunning = true; QGeoPositionInfoSource::Error error = AndroidPositioning::startUpdates(androidClassKeyForUpdate); //if (error != QGeoPositionInfoSource::NoError) { //TODO if (error != 3) { updatesRunning = false; m_error = error; emit QGeoPositionInfoSource::error(m_error); } }
void QGeoPositionInfoSourceAndroidGms::startUpdates() { if (updatesRunning_) { return; } Q_ASSERT(regularProvider_); const PositioningMethods methods = preferredPositioningMethods(); if (methods == 0) { setError(UnknownSourceError); return; } QAndroidGmsLocationProvider::enPriority priority = QAndroidGmsLocationProvider::PRIORITY_LOW_POWER; if (QGeoPositionInfoSource::NonSatellitePositioningMethods & methods) { priority = QAndroidGmsLocationProvider::PRIORITY_BALANCED_POWER_ACCURACY; } if (QGeoPositionInfoSource::SatellitePositioningMethods & methods) { priority = QAndroidGmsLocationProvider::PRIORITY_HIGH_ACCURACY; } regularProvider_->setPriority(priority); updatesRunning_ = true; Q_ASSERT(regularProvider_); regularProvider_->setUpdateInterval(updateInterval(), minimumUpdateInterval()); regularProvider_->startUpdates(); onProvidersChange(providersListener_->isActiveProvidersEnabled()); }
/*! \property QGeoPositionInfoSourceBb::provider \brief This property specifies the location provider you wish to use (hybrid, gnss, network). */ QString QGeoPositionInfoSourceBb::provider() const { return positioningMethodsToProviderMap.value(preferredPositioningMethods()); }