diff options
author | Alex Blasche <alexander.blasche@digia.com> | 2013-11-11 15:43:40 +0100 |
---|---|---|
committer | Alex Blasche <alexander.blasche@digia.com> | 2013-11-11 15:44:15 +0100 |
commit | 43227e1b91f515775412cc7b18b60023bb251562 (patch) | |
tree | b3e4045116bf59770acd181828bd083c4d5e5273 /src/imports/positioning | |
parent | 57705a918ae25f6234c75c67ec9b934cbf3fca9a (diff) | |
parent | 898f292736ced9ae83e7fad2da3006196dfaa8c7 (diff) | |
download | qtlocation-43227e1b91f515775412cc7b18b60023bb251562.tar.gz |
Merge branch 'stable' into dev
Change-Id: Ia0af08e46e39b783ffa0773bbc43a9a5a78c28bc
Diffstat (limited to 'src/imports/positioning')
-rw-r--r-- | src/imports/positioning/plugins.qmltypes | 13 | ||||
-rw-r--r-- | src/imports/positioning/qdeclarativepositionsource.cpp | 47 | ||||
-rw-r--r-- | src/imports/positioning/qdeclarativepositionsource_p.h | 8 |
3 files changed, 38 insertions, 30 deletions
diff --git a/src/imports/positioning/plugins.qmltypes b/src/imports/positioning/plugins.qmltypes index 06b75fed..32a3c67d 100644 --- a/src/imports/positioning/plugins.qmltypes +++ b/src/imports/positioning/plugins.qmltypes @@ -147,18 +147,18 @@ Module { Enum { name: "PositioningMethod" values: { - "NoPositioningMethod": 0, - "SatellitePositioningMethod": 255, - "NonSatellitePositioningMethod": -256, + "NoPositioningMethods": 0, + "SatellitePositioningMethods": 255, + "NonSatellitePositioningMethods": -256, "AllPositioningMethods": -1 } } Enum { name: "PositioningMethods" values: { - "NoPositioningMethod": 0, - "SatellitePositioningMethod": 255, - "NonSatellitePositioningMethod": -256, + "NoPositioningMethods": 0, + "SatellitePositioningMethods": 255, + "NonSatellitePositioningMethods": -256, "AllPositioningMethods": -1 } } @@ -168,6 +168,7 @@ Module { "AccessError": 0, "ClosedError": 1, "UnknownSourceError": 2, + "NoError": 3, "SocketError": 100 } } diff --git a/src/imports/positioning/qdeclarativepositionsource.cpp b/src/imports/positioning/qdeclarativepositionsource.cpp index da439511..a32557fd 100644 --- a/src/imports/positioning/qdeclarativepositionsource.cpp +++ b/src/imports/positioning/qdeclarativepositionsource.cpp @@ -116,9 +116,9 @@ QT_BEGIN_NAMESPACE */ QDeclarativePositionSource::QDeclarativePositionSource() -: m_positionSource(0), m_preferredPositioningMethods(NoPositioningMethod), m_nmeaFile(0), +: m_positionSource(0), m_preferredPositioningMethods(NoPositioningMethods), m_nmeaFile(0), m_nmeaSocket(0), m_active(false), m_singleUpdate(false), m_updateInterval(0), - m_sourceError(UnknownSourceError) + m_sourceError(NoError) { } @@ -453,9 +453,9 @@ int QDeclarativePositionSource::updateInterval() const current source. \list - \li PositionSource.NoPositioningMethod - No positioning methods supported (no source). - \li PositionSource.SatellitePositioningMethod - Satellite-based positioning methods such as GPS are supported. - \li PositionSource.NonSatellitePositioningMethod - Non-satellite-based methods are supported. + \li PositionSource.NoPositioningMethods - No positioning methods supported (no source). + \li PositionSource.SatellitePositioningMethods - Satellite-based positioning methods such as GPS are supported. + \li PositionSource.NonSatellitePositioningMethods - Non-satellite-based methods are supported. \li PositionSource.AllPositioningMethods - Both satellite-based and non-satellite positioning methods are supported. \endlist @@ -468,12 +468,12 @@ QDeclarativePositionSource::PositioningMethods QDeclarativePositionSource::suppo if ( (methods & QGeoPositionInfoSource::AllPositioningMethods) == methods ) { return QDeclarativePositionSource::AllPositioningMethods; } else if (methods & QGeoPositionInfoSource::SatellitePositioningMethods) { - return QDeclarativePositionSource::SatellitePositioningMethod; + return QDeclarativePositionSource::SatellitePositioningMethods; } else if (methods & QGeoPositionInfoSource::NonSatellitePositioningMethods) { - return QDeclarativePositionSource::NonSatellitePositioningMethod; + return QDeclarativePositionSource::NonSatellitePositioningMethods; } } - return QDeclarativePositionSource::NoPositioningMethod; + return QDeclarativePositionSource::NoPositioningMethods; } /*! @@ -483,8 +483,9 @@ QDeclarativePositionSource::PositioningMethods QDeclarativePositionSource::suppo current source. \list - \li PositionSource.SatellitePositioningMethod - Satellite-based positioning methods such as GPS should be preferred. - \li PositionSource.NonSatellitePositioningMethod - Non-satellite-based methods should be preferred. + \li PositionSource.NoPositioningMethods - No positioning method is preferred. + \li PositionSource.SatellitePositioningMethods - Satellite-based positioning methods such as GPS should be preferred. + \li PositionSource.NonSatellitePositioningMethods - Non-satellite-based methods should be preferred. \li PositionSource.AllPositioningMethods - Any positioning methods are acceptable. \endlist @@ -519,10 +520,11 @@ QDeclarativePositionSource::PositioningMethods QDeclarativePositionSource::prefe if ( (methods & QGeoPositionInfoSource::AllPositioningMethods) == methods) { return QDeclarativePositionSource::AllPositioningMethods; } else if (methods & QGeoPositionInfoSource::SatellitePositioningMethods) { - return QDeclarativePositionSource::SatellitePositioningMethod; + return QDeclarativePositionSource::SatellitePositioningMethods; } else if (methods & QGeoPositionInfoSource::NonSatellitePositioningMethods) { - return QDeclarativePositionSource::NonSatellitePositioningMethod; - } + return QDeclarativePositionSource::NonSatellitePositioningMethods; + } else if (methods == QGeoPositionInfoSource::NoPositioningMethods) + return QDeclarativePositionSource::NoPositioningMethods; } return m_preferredPositioningMethods; } @@ -665,9 +667,10 @@ void QDeclarativePositionSource::positionUpdateReceived(const QGeoPositionInfo & \list \li PositionSource.AccessError - The connection setup to the remote positioning backend failed because the application lacked the required privileges. - \li PositionSource.ClosedError - The remote positioning backend closed the connection, which happens for example in case - the user is switching location services to off. This object becomes invalid and should be deleted. - A new source can be declared later on to check whether the positioning backend is up again. + \li PositionSource.ClosedError - The positioning backend closed the connection, which happens for example in case + the user is switching location services to off. As soon as the location service is re-enabled + regular updates will resume. + \li PositionSource.NoError - No error has occurred. \li PositionSource.UnknownSourceError - An unidentified error occurred. \li PositionSource.SocketError - An error occurred while connecting to an nmea source using a socket. \endlist @@ -725,13 +728,15 @@ void QDeclarativePositionSource::componentComplete() */ void QDeclarativePositionSource::sourceErrorReceived(const QGeoPositionInfoSource::Error error) { - if (error == QGeoPositionInfoSource::AccessError) { + if (error == QGeoPositionInfoSource::AccessError) m_sourceError = QDeclarativePositionSource::AccessError; - } else if (error == QGeoPositionInfoSource::ClosedError) { + else if (error == QGeoPositionInfoSource::ClosedError) m_sourceError = QDeclarativePositionSource::ClosedError; - } else { - m_sourceError = QDeclarativePositionSource::UnknownSourceError; - } + else if (error == QGeoPositionInfoSource::NoError) + return; //nothing to do + else + m_sourceError = QDeclarativePositionSource::UnknownSourceError; + emit sourceErrorChanged(); } diff --git a/src/imports/positioning/qdeclarativepositionsource_p.h b/src/imports/positioning/qdeclarativepositionsource_p.h index bb229d5e..b44ba4bb 100644 --- a/src/imports/positioning/qdeclarativepositionsource_p.h +++ b/src/imports/positioning/qdeclarativepositionsource_p.h @@ -73,9 +73,9 @@ class QDeclarativePositionSource : public QObject, public QQmlParserStatus public: enum PositioningMethod { - NoPositioningMethod = 0, - SatellitePositioningMethod = QGeoPositionInfoSource::SatellitePositioningMethods, - NonSatellitePositioningMethod = QGeoPositionInfoSource::NonSatellitePositioningMethods, + NoPositioningMethods = QGeoPositionInfoSource::NoPositioningMethods, + SatellitePositioningMethods = QGeoPositionInfoSource::SatellitePositioningMethods, + NonSatellitePositioningMethods = QGeoPositionInfoSource::NonSatellitePositioningMethods, AllPositioningMethods = QGeoPositionInfoSource::AllPositioningMethods }; @@ -86,6 +86,8 @@ public: AccessError = QGeoPositionInfoSource::AccessError, ClosedError = QGeoPositionInfoSource::ClosedError, UnknownSourceError = QGeoPositionInfoSource::UnknownSourceError, + NoError = QGeoPositionInfoSource::NoError, + //Leave a gap for future error enum values in QGeoPositionInfoSource::Error SocketError = 100 }; |