diff options
author | Paolo Angelelli <paolo.angelelli@qt.io> | 2017-06-08 20:12:56 +0200 |
---|---|---|
committer | Paolo Angelelli <paolo.angelelli@qt.io> | 2017-08-03 10:33:20 +0000 |
commit | 4511bc9b9bc85a0021ce59feab1a28c711dec691 (patch) | |
tree | e0133488479c1a42939d00000bf2c2c301f19a21 /src | |
parent | e92bf21dfb0de4595a39e172fdbdc16b8ae8579c (diff) | |
download | qtlocation-4511bc9b9bc85a0021ce59feab1a28c711dec691.tar.gz |
Add setPath overload to QDeclarativePolylineMapItem
This patch adds a Q_INVOKABLE setPath overload that takes a QGeoPath.
This can be beneficial when a path is already available and should
be set without going through javascript array conversion.
This method should come handy also when pushing polyline data from
C++.
[ChangeLog][QtLocation][MapPolyline] Added setPath overload taking a
QGeoPath.
Change-Id: I6916500473865b8234b48e8df08dfb465a2a75d2
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/location/declarativemaps/qdeclarativepolylinemapitem.cpp | 21 | ||||
-rw-r--r-- | src/location/declarativemaps/qdeclarativepolylinemapitem_p.h | 1 |
2 files changed, 22 insertions, 0 deletions
diff --git a/src/location/declarativemaps/qdeclarativepolylinemapitem.cpp b/src/location/declarativemaps/qdeclarativepolylinemapitem.cpp index aedb9811..72c43a49 100644 --- a/src/location/declarativemaps/qdeclarativepolylinemapitem.cpp +++ b/src/location/declarativemaps/qdeclarativepolylinemapitem.cpp @@ -607,6 +607,27 @@ void QDeclarativePolylineMapItem::setPath(const QJSValue &value) } /*! + \qmlmethod int MapPolyline::setPath(geopath path) + + Sets the \l path using a \l QGeoPath type. + + \since 5.10 + + \sa path +*/ +void QDeclarativePolylineMapItem::setPath(const QGeoPath &path) +{ + if (geopath_.path() == path.path()) + return; + + geopath_ = path; + regenerateCache(); + geometry_.setPreserveGeometry(true, geopath_.boundingGeoRectangle().topLeft()); + markSourceDirtyAndUpdate(); + emit pathChanged(); +} + +/*! \internal */ void QDeclarativePolylineMapItem::setPathFromGeoList(const QList<QGeoCoordinate> &path) diff --git a/src/location/declarativemaps/qdeclarativepolylinemapitem_p.h b/src/location/declarativemaps/qdeclarativepolylinemapitem_p.h index ec57c980..6b3c42e9 100644 --- a/src/location/declarativemaps/qdeclarativepolylinemapitem_p.h +++ b/src/location/declarativemaps/qdeclarativepolylinemapitem_p.h @@ -141,6 +141,7 @@ public: QJSValue path() const; virtual void setPath(const QJSValue &value); + Q_INVOKABLE void setPath(const QGeoPath &path); bool contains(const QPointF &point) const Q_DECL_OVERRIDE; const QGeoShape &geoShape() const Q_DECL_OVERRIDE; |