diff options
author | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2022-09-04 11:58:35 +0200 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2022-09-15 14:40:23 +0200 |
commit | a6c48812eff4e1aa9b05ea4b811de357242c5588 (patch) | |
tree | a0524fa87eb6c77b3b0f0d9cb47b88e0655a8e97 /src/location/declarativemaps/qdeclarativepolylinemapitem_p.h | |
parent | 366a6379fb80e8c223ae57b2fd791ffdfeacdbf3 (diff) | |
download | qtlocation-a6c48812eff4e1aa9b05ea4b811de357242c5588.tar.gz |
Change QJSValue properties to QList<QGeoCoordinate/Rectangle>
The QML engine is able to operate on lists of gadgets, there is no need
for using private APIs to operate on QJSValue.
For the time being, this breaks a QML construct like
path[0].longitude = 0
This no longer changes the value of path[0].latitude in place. Instead,
use
var path0 = path[0]
path0.longitude = ...
path[0] = path0
This is consistent with other properties that have type list<gadget>, as
QML operates on copies of values, not on references. Adapt the test case
accordingly.
Since support for value-initializing properties of type list<gadget>
requires plumbing in the QML engine, and registration of conversion
routines from QVariantMap to QGeoCoordinate, augment the test.
Remove the now unnecessary toList/fromList conversion functions, and
the dependency to private QtQml libraries.
Fixes: QTBUG-105241
Change-Id: I8f248c457a6de27a3b2680bdc948c5683ebc7fa0
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Diffstat (limited to 'src/location/declarativemaps/qdeclarativepolylinemapitem_p.h')
-rw-r--r-- | src/location/declarativemaps/qdeclarativepolylinemapitem_p.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/location/declarativemaps/qdeclarativepolylinemapitem_p.h b/src/location/declarativemaps/qdeclarativepolylinemapitem_p.h index a754fa5e..948c6663 100644 --- a/src/location/declarativemaps/qdeclarativepolylinemapitem_p.h +++ b/src/location/declarativemaps/qdeclarativepolylinemapitem_p.h @@ -94,7 +94,7 @@ class Q_LOCATION_PRIVATE_EXPORT QDeclarativePolylineMapItem : public QDeclarativ Q_OBJECT Q_ENUMS(Backend) - Q_PROPERTY(QJSValue path READ path WRITE setPath NOTIFY pathChanged) + Q_PROPERTY(QList<QGeoCoordinate> path READ path WRITE setPath NOTIFY pathChanged) Q_PROPERTY(QDeclarativeMapLineProperties *line READ line CONSTANT) Q_PROPERTY(Backend backend READ backend WRITE setBackend NOTIFY backendChanged REVISION 15) @@ -121,8 +121,8 @@ public: Q_INVOKABLE void removeCoordinate(const QGeoCoordinate &coordinate); Q_INVOKABLE void removeCoordinate(int index); - QJSValue path() const; - virtual void setPath(const QJSValue &value); + QList<QGeoCoordinate> path() const; + virtual void setPath(const QList<QGeoCoordinate> &value); Q_INVOKABLE void setPath(const QGeoPath &path); bool contains(const QPointF &point) const override; |