diff options
author | Liang Qi <liang.qi@qt.io> | 2018-01-26 10:02:03 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2018-01-26 10:18:14 +0100 |
commit | 518633da419d6cfaf603773b9e8c5840e783bc4a (patch) | |
tree | 326ffd3f5497be64e38fa420af016867ada00538 /src/positioning/qgeopositioninfo.cpp | |
parent | 9283a290040fd55f7eb34580b99f771d4facdeb4 (diff) | |
parent | 68b5ee9e7064f66fd7e7bd69b4b51229dbe8cc3c (diff) | |
download | qtlocation-518633da419d6cfaf603773b9e8c5840e783bc4a.tar.gz |
Merge remote-tracking branch 'origin/5.9' into 5.10
Conflicts:
tests/auto/qgeotiledmap/tst_qgeotiledmap.cpp
tests/plugins/declarativetestplugin/testhelper.h
Change-Id: Ie218ab1dc68642a6922e05e5688c20b90440b72e
Diffstat (limited to 'src/positioning/qgeopositioninfo.cpp')
-rw-r--r-- | src/positioning/qgeopositioninfo.cpp | 53 |
1 files changed, 36 insertions, 17 deletions
diff --git a/src/positioning/qgeopositioninfo.cpp b/src/positioning/qgeopositioninfo.cpp index 84b7fa16..71e363d1 100644 --- a/src/positioning/qgeopositioninfo.cpp +++ b/src/positioning/qgeopositioninfo.cpp @@ -37,7 +37,7 @@ ** ****************************************************************************/ #include "qgeopositioninfo.h" - +#include "qgeopositioninfo_p.h" #include <QHash> #include <QDebug> #include <QDataStream> @@ -47,14 +47,6 @@ QT_BEGIN_NAMESPACE -class QGeoPositionInfoPrivate -{ -public: - QDateTime timestamp; - QGeoCoordinate coord; - QHash<QGeoPositionInfo::Attribute, qreal> doubleAttribs; -}; - /*! \class QGeoPositionInfo \inmodule QtPositioning @@ -106,9 +98,12 @@ QGeoPositionInfo::QGeoPositionInfo(const QGeoCoordinate &coordinate, const QDate Creates a QGeoPositionInfo with the values of \a other. */ QGeoPositionInfo::QGeoPositionInfo(const QGeoPositionInfo &other) - : d(new QGeoPositionInfoPrivate) + : d(other.d->clone()) +{ +} + +QGeoPositionInfo::QGeoPositionInfo(QGeoPositionInfoPrivate &dd) : d(&dd) { - operator=(other); } /*! @@ -127,9 +122,12 @@ QGeoPositionInfo &QGeoPositionInfo::operator=(const QGeoPositionInfo & other) if (this == &other) return *this; - d->timestamp = other.d->timestamp; - d->coord = other.d->coord; - d->doubleAttribs = other.d->doubleAttribs; + delete d; + d = other.d->clone(); + +// d->timestamp = other.d->timestamp; +// d->coord = other.d->coord; +// d->doubleAttribs = other.d->doubleAttribs; return *this; } @@ -140,9 +138,7 @@ QGeoPositionInfo &QGeoPositionInfo::operator=(const QGeoPositionInfo & other) */ bool QGeoPositionInfo::operator==(const QGeoPositionInfo &other) const { - return d->timestamp == other.d->timestamp - && d->coord == other.d->coord - && d->doubleAttribs == other.d->doubleAttribs; + return *d == *other.d; } /*! @@ -356,4 +352,27 @@ QDataStream &operator>>(QDataStream &stream, QGeoPositionInfo &info) } #endif +QGeoPositionInfoPrivate::~QGeoPositionInfoPrivate() +{ + +} + +QGeoPositionInfoPrivate *QGeoPositionInfoPrivate::clone() const +{ + return new QGeoPositionInfoPrivate(*this); +} + +bool QGeoPositionInfoPrivate::operator==(const QGeoPositionInfoPrivate &other) const +{ + return timestamp == other.timestamp + && coord == other.coord + && doubleAttribs == other.doubleAttribs; +} + +QGeoPositionInfoPrivate *QGeoPositionInfoPrivate::getPimpl(const QGeoPositionInfo &info) +{ + return info.d; +} + QT_END_NAMESPACE + |