diff options
Diffstat (limited to 'src/location/declarativemaps/qdeclarativegeomapitembase.cpp')
-rw-r--r-- | src/location/declarativemaps/qdeclarativegeomapitembase.cpp | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/src/location/declarativemaps/qdeclarativegeomapitembase.cpp b/src/location/declarativemaps/qdeclarativegeomapitembase.cpp index 93d07386..d3a527cc 100644 --- a/src/location/declarativemaps/qdeclarativegeomapitembase.cpp +++ b/src/location/declarativemaps/qdeclarativegeomapitembase.cpp @@ -77,7 +77,7 @@ QGeoMapViewportChangeEvent &QGeoMapViewportChangeEvent::operator=(const QGeoMapV } QDeclarativeGeoMapItemBase::QDeclarativeGeoMapItemBase(QQuickItem *parent) -: QQuickItem(parent), map_(0), quickMap_(0) +: QQuickItem(parent), map_(0), quickMap_(0), geoGeometryDirty_(true), geoMaterialDirty_(true) { setFiltersChildMouseEvents(true); connect(this, SIGNAL(childrenChanged()), @@ -221,8 +221,10 @@ bool QDeclarativeGeoMapItemBase::childMouseEventFilter(QQuickItem *item, QEvent */ QSGNode *QDeclarativeGeoMapItemBase::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *pd) { - if (!map_ || !quickMap_) { - delete oldNode; + if (!map_ || !quickMap_ || map_->supportedMapItemTypes() & itemType()) { + if (oldNode) + delete oldNode; + oldNode = 0; return 0; } @@ -254,6 +256,26 @@ QSGNode *QDeclarativeGeoMapItemBase::updateMapItemPaintNode(QSGNode *oldNode, Up return 0; } +bool QDeclarativeGeoMapItemBase::isDirty() const +{ + return geoGeometryDirty_ || geoMaterialDirty_; +} + +bool QDeclarativeGeoMapItemBase::isGeoMaterialDirty() const +{ + return geoMaterialDirty_; +} + +bool QDeclarativeGeoMapItemBase::isGeoGeometryDirty() const +{ + return geoGeometryDirty_; +} + +void QDeclarativeGeoMapItemBase::markClean() +{ + geoGeometryDirty_ = geoMaterialDirty_ = false; +} + bool QDeclarativeGeoMapItemBase::isPolishScheduled() const { return QQuickItemPrivate::get(this)->polishScheduled; @@ -265,7 +287,6 @@ void QDeclarativeGeoMapItemBase::polishAndUpdate() update(); } - #include "moc_qdeclarativegeomapitembase_p.cpp" QT_END_NAMESPACE |