diff options
author | Paolo Angelelli <paolo.angelelli@qt.io> | 2017-03-22 12:18:39 +0100 |
---|---|---|
committer | Paolo Angelelli <paolo.angelelli@qt.io> | 2017-03-27 11:22:37 +0000 |
commit | e924f737a6f28792a682f0dcce63a5442cdd43ce (patch) | |
tree | 63aba87db6d545ceb193a8c7cb4a0fe5ada72729 /src/location/declarativemaps | |
parent | 67ae01ab1ac3db9f33929c49349506a7f2f26c2b (diff) | |
download | qtlocation-e924f737a6f28792a682f0dcce63a5442cdd43ce.tar.gz |
Check for map in map item's geometryChanged
Add additional sanity checks to do the geometry changing
only if the map() has been set already (that is, the
item has been added to the map)
Change-Id: Id5b5faa41c68c80c3ad322f408b7a8abe5d2f7ab
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Diffstat (limited to 'src/location/declarativemaps')
4 files changed, 4 insertions, 4 deletions
diff --git a/src/location/declarativemaps/qdeclarativecirclemapitem.cpp b/src/location/declarativemaps/qdeclarativecirclemapitem.cpp index 1684a186..9aae03fa 100644 --- a/src/location/declarativemaps/qdeclarativecirclemapitem.cpp +++ b/src/location/declarativemaps/qdeclarativecirclemapitem.cpp @@ -582,7 +582,7 @@ QGeoMap::ItemType QDeclarativeCircleMapItem::itemType() const */ void QDeclarativeCircleMapItem::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) { - if (updatingGeometry_ || newGeometry == oldGeometry) { + if (!map() || !circle_.isValid() || updatingGeometry_ || newGeometry == oldGeometry) { QDeclarativeGeoMapItemBase::geometryChanged(newGeometry, oldGeometry); return; } diff --git a/src/location/declarativemaps/qdeclarativepolygonmapitem.cpp b/src/location/declarativemaps/qdeclarativepolygonmapitem.cpp index 44d1787f..5cd57dcb 100644 --- a/src/location/declarativemaps/qdeclarativepolygonmapitem.cpp +++ b/src/location/declarativemaps/qdeclarativepolygonmapitem.cpp @@ -651,7 +651,7 @@ QGeoMap::ItemType QDeclarativePolygonMapItem::itemType() const */ void QDeclarativePolygonMapItem::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) { - if (updatingGeometry_ || newGeometry.topLeft() == oldGeometry.topLeft()) { + if (!map() || !geopath_.isValid() || updatingGeometry_ || newGeometry.topLeft() == oldGeometry.topLeft()) { QDeclarativeGeoMapItemBase::geometryChanged(newGeometry, oldGeometry); return; } diff --git a/src/location/declarativemaps/qdeclarativepolylinemapitem.cpp b/src/location/declarativemaps/qdeclarativepolylinemapitem.cpp index b74023f8..7c75cd7a 100644 --- a/src/location/declarativemaps/qdeclarativepolylinemapitem.cpp +++ b/src/location/declarativemaps/qdeclarativepolylinemapitem.cpp @@ -800,7 +800,7 @@ QDeclarativeMapLineProperties *QDeclarativePolylineMapItem::line() */ void QDeclarativePolylineMapItem::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) { - if (updatingGeometry_ || newGeometry.topLeft() == oldGeometry.topLeft()) { + if (!map() || !geopath_.isValid() || updatingGeometry_ || newGeometry.topLeft() == oldGeometry.topLeft()) { QDeclarativeGeoMapItemBase::geometryChanged(newGeometry, oldGeometry); return; } diff --git a/src/location/declarativemaps/qdeclarativerectanglemapitem.cpp b/src/location/declarativemaps/qdeclarativerectanglemapitem.cpp index 53178364..79750416 100644 --- a/src/location/declarativemaps/qdeclarativerectanglemapitem.cpp +++ b/src/location/declarativemaps/qdeclarativerectanglemapitem.cpp @@ -368,7 +368,7 @@ void QDeclarativeRectangleMapItem::updatePath() */ void QDeclarativeRectangleMapItem::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) { - if (updatingGeometry_ || newGeometry.topLeft() == oldGeometry.topLeft()) { + if (!map() || !rectangle_.isValid() || updatingGeometry_ || newGeometry.topLeft() == oldGeometry.topLeft()) { QDeclarativeGeoMapItemBase::geometryChanged(newGeometry, oldGeometry); return; } |