summaryrefslogtreecommitdiff
path: root/src/imports/positioning
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@digia.com>2013-11-11 15:43:40 +0100
committerAlex Blasche <alexander.blasche@digia.com>2013-11-11 15:44:15 +0100
commit43227e1b91f515775412cc7b18b60023bb251562 (patch)
treeb3e4045116bf59770acd181828bd083c4d5e5273 /src/imports/positioning
parent57705a918ae25f6234c75c67ec9b934cbf3fca9a (diff)
parent898f292736ced9ae83e7fad2da3006196dfaa8c7 (diff)
downloadqtlocation-43227e1b91f515775412cc7b18b60023bb251562.tar.gz
Merge branch 'stable' into dev
Change-Id: Ia0af08e46e39b783ffa0773bbc43a9a5a78c28bc
Diffstat (limited to 'src/imports/positioning')
-rw-r--r--src/imports/positioning/plugins.qmltypes13
-rw-r--r--src/imports/positioning/qdeclarativepositionsource.cpp47
-rw-r--r--src/imports/positioning/qdeclarativepositionsource_p.h8
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
};