summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaolo Angelelli <paolo.angelelli@qt.io>2017-06-08 20:12:56 +0200
committerPaolo Angelelli <paolo.angelelli@qt.io>2017-08-03 10:33:20 +0000
commit4511bc9b9bc85a0021ce59feab1a28c711dec691 (patch)
treee0133488479c1a42939d00000bf2c2c301f19a21 /src
parente92bf21dfb0de4595a39e172fdbdc16b8ae8579c (diff)
downloadqtlocation-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.cpp21
-rw-r--r--src/location/declarativemaps/qdeclarativepolylinemapitem_p.h1
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;