diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-12-25 03:02:19 +0100 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-12-25 03:02:19 +0100 |
commit | 0a185f62659cecf15ddefcf8748f73ec79b609fb (patch) | |
tree | f9397c2d2eaa73adacb7a1208f24825a31a6f58a /src/positioning | |
parent | e7bb8f636086c04acd97e4eb3c42e7c6c05dc8f2 (diff) | |
parent | 100e0416e7faff954221df9ef97920ba512712c0 (diff) | |
download | qtlocation-0a185f62659cecf15ddefcf8748f73ec79b609fb.tar.gz |
Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: Ic8ccf43538ad411edce061f24f05c627dab50a6b
Diffstat (limited to 'src/positioning')
-rw-r--r-- | src/positioning/qgeocoordinate.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/positioning/qgeocoordinate.cpp b/src/positioning/qgeocoordinate.cpp index 80904d7c..f3d3ef9c 100644 --- a/src/positioning/qgeocoordinate.cpp +++ b/src/positioning/qgeocoordinate.cpp @@ -44,11 +44,28 @@ #include <QHash> #include <QDataStream> #include <QDebug> +#include <QMetaType> #include <qnumeric.h> #include <qmath.h> QT_BEGIN_NAMESPACE + +struct CoordinateStreamOperators +{ + CoordinateStreamOperators() + { +#ifndef QT_NO_DATASTREAM + qRegisterMetaTypeStreamOperators<QGeoCoordinate>(); +#endif +#ifndef QT_NO_DEBUG_STREAM + QMetaType::registerDebugStreamOperator<QGeoCoordinate>(); +#endif + } +}; +Q_GLOBAL_STATIC(CoordinateStreamOperators, initStreamOperators); + + static const double qgeocoordinate_EARTH_MEAN_RADIUS = 6371.0072; @@ -201,6 +218,9 @@ QGeoMercatorCoordinatePrivate::~QGeoMercatorCoordinatePrivate() QGeoCoordinate::QGeoCoordinate() : d(new QGeoCoordinatePrivate) { +#ifndef QT_NO_DATASTREAM + initStreamOperators(); +#endif } /*! @@ -215,6 +235,10 @@ QGeoCoordinate::QGeoCoordinate() QGeoCoordinate::QGeoCoordinate(double latitude, double longitude) : d(new QGeoCoordinatePrivate) { +#ifndef QT_NO_DATASTREAM + initStreamOperators(); +#endif + if (QLocationUtils::isValidLat(latitude) && QLocationUtils::isValidLong(longitude)) { d->lat = latitude; d->lng = longitude; @@ -236,6 +260,10 @@ QGeoCoordinate::QGeoCoordinate(double latitude, double longitude) QGeoCoordinate::QGeoCoordinate(double latitude, double longitude, double altitude) : d(new QGeoCoordinatePrivate) { +#ifndef QT_NO_DATASTREAM + initStreamOperators(); +#endif + if (QLocationUtils::isValidLat(latitude) && QLocationUtils::isValidLong(longitude)) { d->lat = latitude; d->lng = longitude; |