summaryrefslogtreecommitdiff
path: root/src/positioning/qgeorectangle.h
diff options
context:
space:
mode:
authorPaolo Angelelli <paolo.angelelli@qt.io>2017-04-28 16:41:50 +0200
committerPaolo Angelelli <paolo.angelelli@qt.io>2017-05-03 07:49:44 +0000
commitcd0f0f577d283b3a5f45d2d8707703f551ac9573 (patch)
tree504fd823c0d1cc7f11aa7b5ac33051f00965c861 /src/positioning/qgeorectangle.h
parenta2ea3f872c45150e5485134e69d65b474f1f996b (diff)
downloadqtlocation-cd0f0f577d283b3a5f45d2d8707703f551ac9573.tar.gz
Move QGeoRectangle definition inside qgeorectangle.h
Change-Id: I7d0bb4eac89ca9a018f71faa9d73f62d97a24085 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/positioning/qgeorectangle.h')
-rw-r--r--src/positioning/qgeorectangle.h85
1 files changed, 83 insertions, 2 deletions
diff --git a/src/positioning/qgeorectangle.h b/src/positioning/qgeorectangle.h
index 9e9acf91..82afd725 100644
--- a/src/positioning/qgeorectangle.h
+++ b/src/positioning/qgeorectangle.h
@@ -42,7 +42,88 @@
#include <QtPositioning/QGeoShape>
-// QGeoRectangle declaration now in qgeoshape.h.
-// This file remains for compatibility.
+QT_BEGIN_NAMESPACE
+
+class QGeoRectanglePrivate;
+
+class Q_POSITIONING_EXPORT QGeoRectangle : public QGeoShape
+{
+ Q_GADGET
+ Q_PROPERTY(QGeoCoordinate bottomLeft READ bottomLeft WRITE setBottomLeft)
+ Q_PROPERTY(QGeoCoordinate bottomRight READ bottomRight WRITE setBottomRight)
+ Q_PROPERTY(QGeoCoordinate topLeft READ topLeft WRITE setTopLeft)
+ Q_PROPERTY(QGeoCoordinate topRight READ topRight WRITE setTopRight)
+ Q_PROPERTY(QGeoCoordinate center READ center WRITE setCenter)
+ Q_PROPERTY(double height READ height WRITE setHeight)
+ Q_PROPERTY(double width READ width WRITE setWidth)
+
+public:
+ QGeoRectangle();
+ QGeoRectangle(const QGeoCoordinate &center, double degreesWidth, double degreesHeight);
+ QGeoRectangle(const QGeoCoordinate &topLeft, const QGeoCoordinate &bottomRight);
+ QGeoRectangle(const QList<QGeoCoordinate> &coordinates);
+ QGeoRectangle(const QGeoRectangle &other);
+ QGeoRectangle(const QGeoShape &other);
+
+ ~QGeoRectangle();
+
+ QGeoRectangle &operator=(const QGeoRectangle &other);
+
+ using QGeoShape::operator==;
+ bool operator==(const QGeoRectangle &other) const;
+
+ using QGeoShape::operator!=;
+ bool operator!=(const QGeoRectangle &other) const;
+
+ void setTopLeft(const QGeoCoordinate &topLeft);
+ QGeoCoordinate topLeft() const;
+
+ void setTopRight(const QGeoCoordinate &topRight);
+ QGeoCoordinate topRight() const;
+
+ void setBottomLeft(const QGeoCoordinate &bottomLeft);
+ QGeoCoordinate bottomLeft() const;
+
+ void setBottomRight(const QGeoCoordinate &bottomRight);
+ QGeoCoordinate bottomRight() const;
+
+ void setCenter(const QGeoCoordinate &center);
+ QGeoCoordinate center() const;
+
+ void setWidth(double degreesWidth);
+ double width() const;
+
+ void setHeight(double degreesHeight);
+ double height() const;
+
+ using QGeoShape::contains;
+ bool contains(const QGeoRectangle &rectangle) const;
+ Q_INVOKABLE bool intersects(const QGeoRectangle &rectangle) const;
+
+ Q_INVOKABLE void translate(double degreesLatitude, double degreesLongitude);
+ Q_INVOKABLE QGeoRectangle translated(double degreesLatitude, double degreesLongitude) const;
+ Q_INVOKABLE void extendRectangle(const QGeoCoordinate &coordinate);
+
+ Q_INVOKABLE QGeoRectangle united(const QGeoRectangle &rectangle) const;
+ QGeoRectangle operator|(const QGeoRectangle &rectangle) const;
+ QGeoRectangle &operator|=(const QGeoRectangle &rectangle);
+
+ Q_INVOKABLE QString toString() const;
+
+private:
+ inline QGeoRectanglePrivate *d_func();
+ inline const QGeoRectanglePrivate *d_func() const;
+};
+
+Q_DECLARE_TYPEINFO(QGeoRectangle, Q_MOVABLE_TYPE);
+
+inline QGeoRectangle QGeoRectangle::operator|(const QGeoRectangle &rectangle) const
+{
+ return united(rectangle);
+}
+
+QT_END_NAMESPACE
+
+Q_DECLARE_METATYPE(QGeoRectangle)
#endif