diff options
author | Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org> | 2020-01-22 14:00:37 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2020-01-27 12:41:47 +0100 |
commit | 2aac6b3f26690b4d1be94be8f2b556794b022301 (patch) | |
tree | f397c85d22342ec87f2e64b3707c39f19fbc0256 /src | |
parent | 6423670fd00fb2b0918c41d9cbf8783912356619 (diff) |
Fix build with latest qtbase and qtdeclarative
* Bump the submodule to include the one build fix for sqlite3.
* Rename VisualDataModel to DelegateModel (it's been the latter for many
years and now the old name vanished)
* Fix dangling pointers into QList. In clearMapItems() we iterate over
m_mapItems and call removeMapItems(), which also removes from the same
QList (now vector). The same goes for m_mapItemGroups.
Change-Id: I4c229fd2cf1bce76d6ad5ffae4bdbda7fe8e6a18
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src')
m--------- | src/3rdparty/mapbox-gl-native | 0 | ||||
-rw-r--r-- | src/location/declarativemaps/qdeclarativegeomap.cpp | 18 |
2 files changed, 11 insertions, 7 deletions
diff --git a/src/3rdparty/mapbox-gl-native b/src/3rdparty/mapbox-gl-native -Subproject d9577fdebe019b19e184b4cac82749ae9ec87af +Subproject 8af62305d2e0208357c98e61bc2a9c9de8fe611 diff --git a/src/location/declarativemaps/qdeclarativegeomap.cpp b/src/location/declarativemaps/qdeclarativegeomap.cpp index 6a2d82e8..167f1d5f 100644 --- a/src/location/declarativemaps/qdeclarativegeomap.cpp +++ b/src/location/declarativemaps/qdeclarativegeomap.cpp @@ -2058,20 +2058,24 @@ void QDeclarativeGeoMap::clearMapItems() return; int removed = 0; - for (auto i : qAsConst(m_mapItemGroups)) { + for (int i = 0; i < m_mapItemGroups.count(); ++i) { + auto item = m_mapItemGroups.at(i); // Processing only top-level groups (!views) - QDeclarativeGeoMapItemView *view = qobject_cast<QDeclarativeGeoMapItemView *>(i); - if (view) + if (qobject_cast<QDeclarativeGeoMapItemView *>(item)) continue; - if (i->parentItem() != this) + + if (item->parentItem() != this) continue; - removed += removeMapItemGroup_real(i); + if (removeMapItemGroup_real(item)) { + removed++; + --i; + } } - for (auto i : qAsConst(m_mapItems)) - removed += removeMapItem_real(i); + while (!m_mapItems.isEmpty()) + removed += removeMapItem_real(m_mapItems.first()); if (removed) emit mapItemsChanged(); |