summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/imports/positioning/qdeclarativepositionsource.cpp22
-rw-r--r--tests/auto/declarative_core/tst_positionsource.qml9
2 files changed, 13 insertions, 18 deletions
diff --git a/src/imports/positioning/qdeclarativepositionsource.cpp b/src/imports/positioning/qdeclarativepositionsource.cpp
index 1d1d3a15..a13092fc 100644
--- a/src/imports/positioning/qdeclarativepositionsource.cpp
+++ b/src/imports/positioning/qdeclarativepositionsource.cpp
@@ -464,14 +464,8 @@ int QDeclarativePositionSource::updateInterval() const
QDeclarativePositionSource::PositioningMethods QDeclarativePositionSource::supportedPositioningMethods() const
{
if (m_positionSource) {
- QGeoPositionInfoSource::PositioningMethods methods = m_positionSource->supportedPositioningMethods();
- if ( (methods & QGeoPositionInfoSource::AllPositioningMethods) == methods ) {
- return QDeclarativePositionSource::AllPositioningMethods;
- } else if (methods & QGeoPositionInfoSource::SatellitePositioningMethods) {
- return QDeclarativePositionSource::SatellitePositioningMethods;
- } else if (methods & QGeoPositionInfoSource::NonSatellitePositioningMethods) {
- return QDeclarativePositionSource::NonSatellitePositioningMethods;
- }
+ return static_cast<QDeclarativePositionSource::PositioningMethods>(
+ int(m_positionSource->supportedPositioningMethods()));
}
return QDeclarativePositionSource::NoPositioningMethods;
}
@@ -515,16 +509,8 @@ void QDeclarativePositionSource::setPreferredPositioningMethods(PositioningMetho
QDeclarativePositionSource::PositioningMethods QDeclarativePositionSource::preferredPositioningMethods() const
{
if (m_positionSource) {
- QGeoPositionInfoSource::PositioningMethods methods =
- m_positionSource->preferredPositioningMethods();
- if ( (methods & QGeoPositionInfoSource::AllPositioningMethods) == methods) {
- return QDeclarativePositionSource::AllPositioningMethods;
- } else if (methods & QGeoPositionInfoSource::SatellitePositioningMethods) {
- return QDeclarativePositionSource::SatellitePositioningMethods;
- } else if (methods & QGeoPositionInfoSource::NonSatellitePositioningMethods) {
- return QDeclarativePositionSource::NonSatellitePositioningMethods;
- } else if (methods == QGeoPositionInfoSource::NoPositioningMethods)
- return QDeclarativePositionSource::NoPositioningMethods;
+ return static_cast<QDeclarativePositionSource::PositioningMethods>(
+ int(m_positionSource->preferredPositioningMethods()));
}
return m_preferredPositioningMethods;
}
diff --git a/tests/auto/declarative_core/tst_positionsource.qml b/tests/auto/declarative_core/tst_positionsource.qml
index 259c77ff..6cf99d04 100644
--- a/tests/auto/declarative_core/tst_positionsource.qml
+++ b/tests/auto/declarative_core/tst_positionsource.qml
@@ -127,6 +127,15 @@ TestCase {
compare(testingSource.updateInterval, 1000);
}
+ function test_preferredPositioningMethods() {
+ testingSource.preferredPositioningMethods = PositionSource.AllPositioningMethods;
+ compare(testingSource.preferredPositioningMethods, PositionSource.AllPositioningMethods);
+ testingSource.preferredPositioningMethods = PositionSource.SatellitePositioningMethods;
+ compare(testingSource.preferredPositioningMethods, PositionSource.SatellitePositioningMethods);
+ testingSource.preferredPositioningMethods = PositionSource.NonSatellitePositioningMethods;
+ compare(testingSource.preferredPositioningMethods, PositionSource.NonSatellitePositioningMethods);
+ }
+
function test_updates() {
updateSpy.clear();