summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/imports/location/qdeclarativecirclemapitem.cpp32
-rw-r--r--src/imports/location/qdeclarativecirclemapitem_p.h6
-rw-r--r--src/imports/location/qdeclarativegeomap.cpp4
-rw-r--r--src/imports/location/qdeclarativegeomapitembase.cpp12
-rw-r--r--src/imports/location/qdeclarativegeomapitembase_p.h5
-rw-r--r--src/imports/location/qdeclarativegeomapquickitem.cpp30
-rw-r--r--src/imports/location/qdeclarativegeomapquickitem_p.h2
-rw-r--r--src/imports/location/qdeclarativepolygonmapitem.cpp19
-rw-r--r--src/imports/location/qdeclarativepolygonmapitem_p.h2
-rw-r--r--src/imports/location/qdeclarativepolylinemapitem.cpp17
-rw-r--r--src/imports/location/qdeclarativepolylinemapitem_p.h2
-rw-r--r--src/imports/location/qdeclarativerectanglemapitem.cpp34
-rw-r--r--src/imports/location/qdeclarativerectanglemapitem_p.h4
-rw-r--r--tests/auto/declarative_ui/tst_map_error.qml2
-rw-r--r--tests/auto/declarative_ui/tst_map_flick.qml1
-rw-r--r--tests/auto/declarative_ui/tst_map_item.qml43
-rw-r--r--tests/auto/declarative_ui/tst_map_item_details.qml17
-rw-r--r--tests/auto/declarative_ui/tst_map_item_fit_viewport.qml2
-rw-r--r--tests/auto/declarative_ui/tst_map_mouse.qml54
19 files changed, 155 insertions, 133 deletions
diff --git a/src/imports/location/qdeclarativecirclemapitem.cpp b/src/imports/location/qdeclarativecirclemapitem.cpp
index 92977179..eb3de7a2 100644
--- a/src/imports/location/qdeclarativecirclemapitem.cpp
+++ b/src/imports/location/qdeclarativecirclemapitem.cpp
@@ -35,7 +35,6 @@
****************************************************************************/
#include "qdeclarativecirclemapitem_p.h"
-#include "qdeclarativegeomapquickitem_p.h"
#include "qdeclarativepolygonmapitem_p.h"
#include "qgeocameracapabilities_p.h"
#include "qgeoprojection_p.h"
@@ -302,9 +301,9 @@ QDeclarativeCircleMapItem::QDeclarativeCircleMapItem(QQuickItem *parent)
{
setFlag(ItemHasContents, true);
QObject::connect(&border_, SIGNAL(colorChanged(QColor)),
- this, SLOT(updateMapItemAssumeDirty()));
+ this, SLOT(markSourceDirtyAndUpdate()));
QObject::connect(&border_, SIGNAL(widthChanged(qreal)),
- this, SLOT(updateMapItemAssumeDirty()));
+ this, SLOT(markSourceDirtyAndUpdate()));
// assume that circles are not self-intersecting
// to speed up processing
@@ -335,21 +334,18 @@ QDeclarativeMapLineProperties *QDeclarativeCircleMapItem::border()
return &border_;
}
-void QDeclarativeCircleMapItem::updateMapItemAssumeDirty()
+void QDeclarativeCircleMapItem::markSourceDirtyAndUpdate()
{
geometry_.markSourceDirty();
borderGeometry_.markSourceDirty();
- updateMapItem();
+ polishAndUpdate();
}
void QDeclarativeCircleMapItem::setMap(QDeclarativeGeoMap *quickMap, QGeoMap *map)
{
QDeclarativeGeoMapItemBase::setMap(quickMap,map);
- if (map) {
- geometry_.markSourceDirty();
- borderGeometry_.markSourceDirty();
- updateMapItem();
- }
+ if (map)
+ markSourceDirtyAndUpdate();
}
/*!
@@ -365,10 +361,7 @@ void QDeclarativeCircleMapItem::setCenter(const QGeoCoordinate &center)
return;
center_ = center;
-
- geometry_.markSourceDirty();
- borderGeometry_.markSourceDirty();
- updateMapItem();
+ markSourceDirtyAndUpdate();
emit centerChanged(center_);
}
@@ -389,7 +382,7 @@ void QDeclarativeCircleMapItem::setColor(const QColor &color)
return;
color_ = color;
dirtyMaterial_ = true;
- updateMapItem();
+ update();
emit colorChanged(color_);
}
@@ -411,9 +404,7 @@ void QDeclarativeCircleMapItem::setRadius(qreal radius)
return;
radius_ = radius;
- geometry_.markSourceDirty();
- borderGeometry_.markSourceDirty();
- updateMapItem();
+ markSourceDirtyAndUpdate();
emit radiusChanged(radius);
}
@@ -459,7 +450,7 @@ QSGNode *QDeclarativeCircleMapItem::updateMapItemPaintNode(QSGNode *oldNode, Upd
/*!
\internal
*/
-void QDeclarativeCircleMapItem::updateMapItem()
+void QDeclarativeCircleMapItem::updatePolish()
{
if (!map() || !center().isValid())
return;
@@ -501,7 +492,6 @@ void QDeclarativeCircleMapItem::updateMapItem()
}
setPositionOnMap(circlePath_.at(0), geometry_.firstPointOffset());
- update();
}
/*!
@@ -541,7 +531,7 @@ void QDeclarativeCircleMapItem::afterViewportChanged(const QGeoMapViewportChange
geometry_.markScreenDirty();
borderGeometry_.markScreenDirty();
- updateMapItem();
+ polishAndUpdate();
}
/*!
diff --git a/src/imports/location/qdeclarativecirclemapitem_p.h b/src/imports/location/qdeclarativecirclemapitem_p.h
index fb786e08..9b142309 100644
--- a/src/imports/location/qdeclarativecirclemapitem_p.h
+++ b/src/imports/location/qdeclarativecirclemapitem_p.h
@@ -56,8 +56,6 @@
QT_BEGIN_NAMESPACE
-class QDeclarativeGeoMapQuickItem;
-
class QGeoMapCircleGeometry : public QGeoMapPolygonGeometry
{
public:
@@ -101,10 +99,10 @@ Q_SIGNALS:
protected:
void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) Q_DECL_OVERRIDE;
+ void updatePolish() Q_DECL_OVERRIDE;
protected Q_SLOTS:
- virtual void updateMapItem() Q_DECL_OVERRIDE;
- void updateMapItemAssumeDirty();
+ void markSourceDirtyAndUpdate();
virtual void afterViewportChanged(const QGeoMapViewportChangeEvent &event) Q_DECL_OVERRIDE;
private:
diff --git a/src/imports/location/qdeclarativegeomap.cpp b/src/imports/location/qdeclarativegeomap.cpp
index 2b76d318..d9981b69 100644
--- a/src/imports/location/qdeclarativegeomap.cpp
+++ b/src/imports/location/qdeclarativegeomap.cpp
@@ -1227,6 +1227,10 @@ void QDeclarativeGeoMap::fitViewportToMapItemsRefine(bool refine)
continue;
}
}
+ // Force map items to update immediately. Needed to ensure correct item size and positions
+ // when recursively calling this function.
+ if (item->isPolishScheduled())
+ item->updatePolish();
topLeftX = item->position().x();
topLeftY = item->position().y();
diff --git a/src/imports/location/qdeclarativegeomapitembase.cpp b/src/imports/location/qdeclarativegeomapitembase.cpp
index e76c11b0..cde00abf 100644
--- a/src/imports/location/qdeclarativegeomapitembase.cpp
+++ b/src/imports/location/qdeclarativegeomapitembase.cpp
@@ -39,6 +39,7 @@
#include <QtQml/QQmlInfo>
#include <QtQuick/QSGOpacityNode>
#include <QtQuick/private/qquickmousearea_p.h>
+#include <QtQuick/private/qquickitem_p.h>
QT_BEGIN_NAMESPACE
@@ -248,6 +249,17 @@ QSGNode *QDeclarativeGeoMapItemBase::updateMapItemPaintNode(QSGNode *oldNode, Up
return 0;
}
+bool QDeclarativeGeoMapItemBase::isPolishScheduled() const
+{
+ return QQuickItemPrivate::get(this)->polishScheduled;
+}
+
+void QDeclarativeGeoMapItemBase::polishAndUpdate()
+{
+ polish();
+ update();
+}
+
#include "moc_qdeclarativegeomapitembase_p.cpp"
diff --git a/src/imports/location/qdeclarativegeomapitembase_p.h b/src/imports/location/qdeclarativegeomapitembase_p.h
index d4ad34c5..c7793fbd 100644
--- a/src/imports/location/qdeclarativegeomapitembase_p.h
+++ b/src/imports/location/qdeclarativegeomapitembase_p.h
@@ -89,13 +89,14 @@ public:
virtual QSGNode *updateMapItemPaintNode(QSGNode *, UpdatePaintNodeData *);
protected Q_SLOTS:
- virtual void updateMapItem() = 0;
virtual void afterChildrenChanged();
virtual void afterViewportChanged(const QGeoMapViewportChangeEvent &event) = 0;
+ void polishAndUpdate();
protected:
float zoomLevelOpacity() const;
bool childMouseEventFilter(QQuickItem *item, QEvent *event);
+ bool isPolishScheduled() const;
private Q_SLOTS:
void baseCameraDataChanged(const QGeoCameraData &camera);
@@ -106,6 +107,8 @@ private:
QSizeF lastSize_;
QGeoCameraData lastCameraData_;
+
+ friend class QDeclarativeGeoMap;
};
QT_END_NAMESPACE
diff --git a/src/imports/location/qdeclarativegeomapquickitem.cpp b/src/imports/location/qdeclarativegeomapquickitem.cpp
index 81f88dac..ca67b183 100644
--- a/src/imports/location/qdeclarativegeomapquickitem.cpp
+++ b/src/imports/location/qdeclarativegeomapquickitem.cpp
@@ -146,8 +146,7 @@ void QDeclarativeGeoMapQuickItem::setCoordinate(const QGeoCoordinate &coordinate
coordinate_ = coordinate;
- updateMapItem();
-
+ polishAndUpdate();
emit coordinateChanged();
}
@@ -158,10 +157,11 @@ void QDeclarativeGeoMapQuickItem::setMap(QDeclarativeGeoMap *quickMap, QGeoMap *
{
QDeclarativeGeoMapItemBase::setMap(quickMap,map);
if (map && quickMap) {
- QObject::connect(quickMap, SIGNAL(heightChanged()), this, SLOT(updateMapItem()));
- QObject::connect(quickMap, SIGNAL(widthChanged()), this, SLOT(updateMapItem()));
- QObject::connect(map, SIGNAL(cameraDataChanged(QGeoCameraData)), this, SLOT(updateMapItem()));
- updateMapItem();
+ connect(quickMap, SIGNAL(heightChanged()), this, SLOT(polishAndUpdate()));
+ connect(quickMap, SIGNAL(widthChanged()), this, SLOT(polishAndUpdate()));
+ connect(map, SIGNAL(cameraDataChanged(QGeoCameraData)),
+ this, SLOT(polishAndUpdate()));
+ polishAndUpdate();
}
}
@@ -203,8 +203,7 @@ void QDeclarativeGeoMapQuickItem::setSourceItem(QQuickItem *sourceItem)
return;
sourceItem_ = sourceItem;
- updateMapItem();
-
+ polishAndUpdate();
emit sourceItemChanged();
}
@@ -249,7 +248,7 @@ void QDeclarativeGeoMapQuickItem::setAnchorPoint(const QPointF &anchorPoint)
if (anchorPoint == anchorPoint_)
return;
anchorPoint_ = anchorPoint;
- updateMapItem();
+ polishAndUpdate();
emit anchorPointChanged();
}
@@ -281,7 +280,7 @@ void QDeclarativeGeoMapQuickItem::setZoomLevel(qreal zoomLevel)
if (zoomLevel == zoomLevel_)
return;
zoomLevel_ = zoomLevel;
- updateMapItem();
+ polishAndUpdate();
emit zoomLevelChanged();
}
@@ -293,7 +292,7 @@ qreal QDeclarativeGeoMapQuickItem::zoomLevel() const
/*!
\internal
*/
-void QDeclarativeGeoMapQuickItem::updateMapItem()
+void QDeclarativeGeoMapQuickItem::updatePolish()
{
if (!quickMap() && sourceItem_) {
mapAndSourceItemSet_ = false;
@@ -311,13 +310,13 @@ void QDeclarativeGeoMapQuickItem::updateMapItem()
sourceItem_.data()->setParentItem(opacityContainer_);
sourceItem_.data()->setTransformOrigin(QQuickItem::TopLeft);
connect(sourceItem_.data(), SIGNAL(xChanged()),
- this, SLOT(updateMapItem()));
+ this, SLOT(polishAndUpdate()));
connect(sourceItem_.data(), SIGNAL(yChanged()),
- this, SLOT(updateMapItem()));
+ this, SLOT(polishAndUpdate()));
connect(sourceItem_.data(), SIGNAL(widthChanged()),
- this, SLOT(updateMapItem()));
+ this, SLOT(polishAndUpdate()));
connect(sourceItem_.data(), SIGNAL(heightChanged()),
- this, SLOT(updateMapItem()));
+ this, SLOT(polishAndUpdate()));
}
QScopedValueRollback<bool> rollback(updatingGeometry_);
@@ -330,7 +329,6 @@ void QDeclarativeGeoMapQuickItem::updateMapItem()
setWidth(sourceItem_.data()->width());
setHeight(sourceItem_.data()->height());
setPositionOnMap(coordinate(), scaleFactor() * anchorPoint_);
- update();
}
/*!
diff --git a/src/imports/location/qdeclarativegeomapquickitem_p.h b/src/imports/location/qdeclarativegeomapquickitem_p.h
index af9f6ec6..0410f060 100644
--- a/src/imports/location/qdeclarativegeomapquickitem_p.h
+++ b/src/imports/location/qdeclarativegeomapquickitem_p.h
@@ -90,9 +90,9 @@ Q_SIGNALS:
protected:
void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) Q_DECL_OVERRIDE;
+ void updatePolish() Q_DECL_OVERRIDE;
protected Q_SLOTS:
- virtual void updateMapItem() Q_DECL_OVERRIDE;
virtual void afterChildrenChanged() Q_DECL_OVERRIDE;
virtual void afterViewportChanged(const QGeoMapViewportChangeEvent &event) Q_DECL_OVERRIDE;
diff --git a/src/imports/location/qdeclarativepolygonmapitem.cpp b/src/imports/location/qdeclarativepolygonmapitem.cpp
index 9a71614f..6fdef816 100644
--- a/src/imports/location/qdeclarativepolygonmapitem.cpp
+++ b/src/imports/location/qdeclarativepolygonmapitem.cpp
@@ -332,7 +332,7 @@ QDeclarativePolygonMapItem::QDeclarativePolygonMapItem(QQuickItem *parent)
void QDeclarativePolygonMapItem::handleBorderUpdated()
{
borderGeometry_.markSourceDirty();
- updateMapItem();
+ polishAndUpdate();
}
QDeclarativePolygonMapItem::~QDeclarativePolygonMapItem()
@@ -367,7 +367,7 @@ void QDeclarativePolygonMapItem::setMap(QDeclarativeGeoMap *quickMap, QGeoMap *m
if (map) {
geometry_.markSourceDirty();
borderGeometry_.markSourceDirty();
- updateMapItem();
+ polishAndUpdate();
}
}
@@ -423,7 +423,7 @@ void QDeclarativePolygonMapItem::setPath(const QJSValue &value)
geometry_.markSourceDirty();
borderGeometry_.markSourceDirty();
- updateMapItem();
+ polishAndUpdate();
emit pathChanged();
}
@@ -441,7 +441,7 @@ void QDeclarativePolygonMapItem::addCoordinate(const QGeoCoordinate &coordinate)
geometry_.markSourceDirty();
borderGeometry_.markSourceDirty();
- updateMapItem();
+ polishAndUpdate();
emit pathChanged();
}
@@ -465,7 +465,7 @@ void QDeclarativePolygonMapItem::removeCoordinate(const QGeoCoordinate &coordina
geometry_.markSourceDirty();
borderGeometry_.markSourceDirty();
- updateMapItem();
+ polishAndUpdate();
emit pathChanged();
}
@@ -489,7 +489,7 @@ void QDeclarativePolygonMapItem::setColor(const QColor &color)
color_ = color;
dirtyMaterial_ = true;
- updateMapItem();
+ update();
emit colorChanged(color_);
}
@@ -519,7 +519,7 @@ QSGNode *QDeclarativePolygonMapItem::updateMapItemPaintNode(QSGNode *oldNode, Up
/*!
\internal
*/
-void QDeclarativePolygonMapItem::updateMapItem()
+void QDeclarativePolygonMapItem::updatePolish()
{
if (!map() || path_.count() == 0)
return;
@@ -546,7 +546,6 @@ void QDeclarativePolygonMapItem::updateMapItem()
setHeight(combined.height());
setPositionOnMap(path_.at(0), -1 * geometry_.sourceBoundingBox().topLeft());
- update();
}
/*!
@@ -582,7 +581,7 @@ void QDeclarativePolygonMapItem::afterViewportChanged(const QGeoMapViewportChang
borderGeometry_.setPreserveGeometry(true, borderGeometry_.geoLeftBound());
geometry_.markScreenDirty();
borderGeometry_.markScreenDirty();
- updateMapItem();
+ polishAndUpdate();
}
/*!
@@ -639,7 +638,7 @@ void QDeclarativePolygonMapItem::geometryChanged(const QRectF &newGeometry, cons
borderGeometry_.setPreserveGeometry(true, leftBoundCoord);
geometry_.markSourceDirty();
borderGeometry_.markSourceDirty();
- updateMapItem();
+ polishAndUpdate();
emit pathChanged();
}
diff --git a/src/imports/location/qdeclarativepolygonmapitem_p.h b/src/imports/location/qdeclarativepolygonmapitem_p.h
index 86a9ec4c..8b803b1d 100644
--- a/src/imports/location/qdeclarativepolygonmapitem_p.h
+++ b/src/imports/location/qdeclarativepolygonmapitem_p.h
@@ -111,9 +111,9 @@ Q_SIGNALS:
protected:
void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) Q_DECL_OVERRIDE;
+ void updatePolish() Q_DECL_OVERRIDE;
protected Q_SLOTS:
- virtual void updateMapItem() Q_DECL_OVERRIDE;
void handleBorderUpdated();
virtual void afterViewportChanged(const QGeoMapViewportChangeEvent &event) Q_DECL_OVERRIDE;
diff --git a/src/imports/location/qdeclarativepolylinemapitem.cpp b/src/imports/location/qdeclarativepolylinemapitem.cpp
index 9201701c..71a205d3 100644
--- a/src/imports/location/qdeclarativepolylinemapitem.cpp
+++ b/src/imports/location/qdeclarativepolylinemapitem.cpp
@@ -472,7 +472,7 @@ void QDeclarativePolylineMapItem::updateAfterLinePropertiesChanged()
{
// mark dirty just in case we're a width change
geometry_.markSourceDirty();
- updateMapItem();
+ polishAndUpdate();
}
/*!
@@ -483,7 +483,7 @@ void QDeclarativePolylineMapItem::setMap(QDeclarativeGeoMap *quickMap, QGeoMap *
QDeclarativeGeoMapItemBase::setMap(quickMap,map);
if (map) {
geometry_.markSourceDirty();
- updateMapItem();
+ polishAndUpdate();
}
}
@@ -546,7 +546,7 @@ void QDeclarativePolylineMapItem::setPathFromGeoList(const QList<QGeoCoordinate>
path_ = path;
geometry_.markSourceDirty();
- updateMapItem();
+ polishAndUpdate();
emit pathChanged();
}
@@ -563,7 +563,7 @@ void QDeclarativePolylineMapItem::addCoordinate(const QGeoCoordinate &coordinate
path_.append(coordinate);
geometry_.markSourceDirty();
- updateMapItem();
+ polishAndUpdate();
emit pathChanged();
}
@@ -586,7 +586,7 @@ void QDeclarativePolylineMapItem::removeCoordinate(const QGeoCoordinate &coordin
path_.removeAt(index);
geometry_.markSourceDirty();
- updateMapItem();
+ polishAndUpdate();
emit pathChanged();
}
@@ -652,7 +652,7 @@ void QDeclarativePolylineMapItem::geometryChanged(const QRectF &newGeometry, con
+ newCoordinate.longitude() - firstLongitude));
geometry_.setPreserveGeometry(true, leftBoundCoord);
geometry_.markSourceDirty();
- updateMapItem();
+ polishAndUpdate();
emit pathChanged();
}
@@ -688,13 +688,13 @@ void QDeclarativePolylineMapItem::afterViewportChanged(const QGeoMapViewportChan
}
geometry_.setPreserveGeometry(true, geometry_.geoLeftBound());
geometry_.markScreenDirty();
- updateMapItem();
+ polishAndUpdate();
}
/*!
\internal
*/
-void QDeclarativePolylineMapItem::updateMapItem()
+void QDeclarativePolylineMapItem::updatePolish()
{
if (!map() || path_.count() == 0)
return;
@@ -709,7 +709,6 @@ void QDeclarativePolylineMapItem::updateMapItem()
setHeight(geometry_.sourceBoundingBox().height());
setPositionOnMap(path_.at(0), -1 * geometry_.sourceBoundingBox().topLeft());
- update();
}
/*!
diff --git a/src/imports/location/qdeclarativepolylinemapitem_p.h b/src/imports/location/qdeclarativepolylinemapitem_p.h
index 6eeeb11f..a7b7f167 100644
--- a/src/imports/location/qdeclarativepolylinemapitem_p.h
+++ b/src/imports/location/qdeclarativepolylinemapitem_p.h
@@ -132,9 +132,9 @@ Q_SIGNALS:
protected:
void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) Q_DECL_OVERRIDE;
void setPathFromGeoList(const QList<QGeoCoordinate> &path);
+ void updatePolish() Q_DECL_OVERRIDE;
protected Q_SLOTS:
- virtual void updateMapItem() Q_DECL_OVERRIDE;
void updateAfterLinePropertiesChanged();
virtual void afterViewportChanged(const QGeoMapViewportChangeEvent &event) Q_DECL_OVERRIDE;
diff --git a/src/imports/location/qdeclarativerectanglemapitem.cpp b/src/imports/location/qdeclarativerectanglemapitem.cpp
index 2dbb630b..c28bcf3e 100644
--- a/src/imports/location/qdeclarativerectanglemapitem.cpp
+++ b/src/imports/location/qdeclarativerectanglemapitem.cpp
@@ -177,9 +177,9 @@ QDeclarativeRectangleMapItem::QDeclarativeRectangleMapItem(QQuickItem *parent)
{
setFlag(ItemHasContents, true);
QObject::connect(&border_, SIGNAL(colorChanged(QColor)),
- this, SLOT(updateMapItemAssumeDirty()));
+ this, SLOT(markSourceDirtyAndUpdate()));
QObject::connect(&border_, SIGNAL(widthChanged(qreal)),
- this, SLOT(updateMapItemAssumeDirty()));
+ this, SLOT(markSourceDirtyAndUpdate()));
}
QDeclarativeRectangleMapItem::~QDeclarativeRectangleMapItem()
@@ -192,11 +192,8 @@ QDeclarativeRectangleMapItem::~QDeclarativeRectangleMapItem()
void QDeclarativeRectangleMapItem::setMap(QDeclarativeGeoMap *quickMap, QGeoMap *map)
{
QDeclarativeGeoMapItemBase::setMap(quickMap,map);
- if (map) {
- geometry_.markSourceDirty();
- borderGeometry_.markSourceDirty();
- updateMapItem();
- }
+ if (map)
+ markSourceDirtyAndUpdate();
}
/*!
@@ -229,9 +226,7 @@ void QDeclarativeRectangleMapItem::setTopLeft(const QGeoCoordinate &topLeft)
topLeft_ = topLeft;
- geometry_.markSourceDirty();
- borderGeometry_.markSourceDirty();
- updateMapItem();
+ markSourceDirtyAndUpdate();
emit topLeftChanged(topLeft_);
}
@@ -243,11 +238,11 @@ QGeoCoordinate QDeclarativeRectangleMapItem::topLeft()
/*!
\internal
*/
-void QDeclarativeRectangleMapItem::updateMapItemAssumeDirty()
+void QDeclarativeRectangleMapItem::markSourceDirtyAndUpdate()
{
geometry_.markSourceDirty();
borderGeometry_.markSourceDirty();
- updateMapItem();
+ polishAndUpdate();
}
/*!
@@ -263,9 +258,7 @@ void QDeclarativeRectangleMapItem::setBottomRight(const QGeoCoordinate &bottomRi
bottomRight_ = bottomRight;
- geometry_.markSourceDirty();
- borderGeometry_.markSourceDirty();
- updateMapItem();
+ markSourceDirtyAndUpdate();
emit bottomRightChanged(bottomRight_);
}
@@ -291,7 +284,7 @@ void QDeclarativeRectangleMapItem::setColor(const QColor &color)
return;
color_ = color;
dirtyMaterial_ = true;
- updateMapItem();
+ polishAndUpdate();
emit colorChanged(color_);
}
@@ -333,7 +326,7 @@ QSGNode *QDeclarativeRectangleMapItem::updateMapItemPaintNode(QSGNode *oldNode,
/*!
\internal
*/
-void QDeclarativeRectangleMapItem::updateMapItem()
+void QDeclarativeRectangleMapItem::updatePolish()
{
if (!map() || !topLeft().isValid() || !bottomRight().isValid())
return;
@@ -368,7 +361,6 @@ void QDeclarativeRectangleMapItem::updateMapItem()
}
setPositionOnMap(pathClosed.at(0), geometry_.firstPointOffset());
- update();
}
/*!
@@ -404,7 +396,7 @@ void QDeclarativeRectangleMapItem::afterViewportChanged(const QGeoMapViewportCha
borderGeometry_.setPreserveGeometry(true, borderGeometry_.geoLeftBound());
geometry_.markScreenDirty();
borderGeometry_.markScreenDirty();
- updateMapItem();
+ polishAndUpdate();
}
/*!
@@ -448,9 +440,7 @@ void QDeclarativeRectangleMapItem::geometryChanged(const QRectF &newGeometry, co
bottomRight_ = newBottomRight;
geometry_.setPreserveGeometry(true, newTopLeft);
borderGeometry_.setPreserveGeometry(true, newTopLeft);
- geometry_.markSourceDirty();
- borderGeometry_.markSourceDirty();
- updateMapItem();
+ markSourceDirtyAndUpdate();
emit topLeftChanged(topLeft_);
emit bottomRightChanged(bottomRight_);
}
diff --git a/src/imports/location/qdeclarativerectanglemapitem_p.h b/src/imports/location/qdeclarativerectanglemapitem_p.h
index d4c319ab..fb9936b0 100644
--- a/src/imports/location/qdeclarativerectanglemapitem_p.h
+++ b/src/imports/location/qdeclarativerectanglemapitem_p.h
@@ -105,10 +105,10 @@ Q_SIGNALS:
protected:
void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) Q_DECL_OVERRIDE;
+ void updatePolish() Q_DECL_OVERRIDE;
protected Q_SLOTS:
- virtual void updateMapItem() Q_DECL_OVERRIDE;
- void updateMapItemAssumeDirty();
+ void markSourceDirtyAndUpdate();
virtual void afterViewportChanged(const QGeoMapViewportChangeEvent &event) Q_DECL_OVERRIDE;
private:
diff --git a/tests/auto/declarative_ui/tst_map_error.qml b/tests/auto/declarative_ui/tst_map_error.qml
index aaa58e6c..c102db6e 100644
--- a/tests/auto/declarative_ui/tst_map_error.qml
+++ b/tests/auto/declarative_ui/tst_map_error.qml
@@ -100,7 +100,7 @@ Item {
mouseClick(map, 50, 50)
mouseClick(map, 50, 50)
mouseClick(map, 50, 50)
- compare(map.mouseClickedSpy.count, 3)
+ tryCompare(map.mouseClickedSpy, "count", 3)
}
function test_map_clicked_wiht_no_plugin()
diff --git a/tests/auto/declarative_ui/tst_map_flick.qml b/tests/auto/declarative_ui/tst_map_flick.qml
index 4094a7c7..e225480d 100644
--- a/tests/auto/declarative_ui/tst_map_flick.qml
+++ b/tests/auto/declarative_ui/tst_map_flick.qml
@@ -288,6 +288,7 @@ Item {
{
map.center.latitude = 50
map.center.longitude = 50
+ waitForRendering(map)
mousePress(page, 0, 0)
for (var i = 0; i < 50; i += 5) {
wait(20)
diff --git a/tests/auto/declarative_ui/tst_map_item.qml b/tests/auto/declarative_ui/tst_map_item.qml
index 32de8efd..5be8896f 100644
--- a/tests/auto/declarative_ui/tst_map_item.qml
+++ b/tests/auto/declarative_ui/tst_map_item.qml
@@ -257,37 +257,40 @@ Item {
map.center = preMapRect.topLeft
var point = map.fromCoordinate(preMapRect.topLeft)
mouseClick(map, point.x + 5, point.y + 5)
- compare(preMapRectClicked.count, 1)
+ tryCompare(preMapRectClicked, "count", 1)
mouseClick(map, 1, 1) // no item hit
- compare(preMapRectClicked.count, 1)
+ tryCompare(preMapRectClicked, "count", 1)
compare(preMapCircleClicked.count, 0)
// click circle, overlaps and is above rect
map.center = preMapCircle.center
+ verify(waitForRendering(map))
point = map.fromCoordinate(preMapCircle.center)
mouseClick(map, point.x - 5, point.y - 5)
- compare(preMapRectClicked.count, 1)
+ tryCompare(preMapRectClicked, "count", 1)
compare(preMapCircleClicked.count, 1)
// click within circle bounding rect but not inside the circle geometry
map.center = preMapCircle.center.atDistanceAndAzimuth(preMapCircle.radius, -45)
mouseClick(map, preMapCircle.x + 4, preMapCircle.y + 4)
- compare(preMapRectClicked.count, 2)
+ tryCompare(preMapRectClicked, "count", 2)
compare(preMapCircleClicked.count, 1)
// click quick item
compare(preMapQuickItemClicked.count, 0)
map.center = preMapQuickItem.coordinate
+ verify(waitForRendering(map))
point = map.fromCoordinate(preMapQuickItem.coordinate)
mouseClick(map, point.x + 5, point.y + 5)
- compare(preMapQuickItemClicked.count, 1)
+ tryCompare(preMapQuickItemClicked, "count", 1)
// click polygon
compare (preMapPolygonClicked.count, 0)
map.center = preMapPolygon.path[1]
+ verify(waitForRendering(map))
point = map.fromCoordinate(preMapPolygon.path[1])
mouseClick(map, point.x - 5, point.y)
- compare(preMapPolygonClicked.count, 1)
+ tryCompare(preMapPolygonClicked, "count", 1)
// remove items and repeat clicks to verify they are gone
map.clearMapItems()
@@ -328,48 +331,54 @@ Item {
compare (map.mapItems.length, 6)
visualInspectionPoint()
map.center = preMapRect.topLeft
+ verify(waitForRendering(map))
point = map.fromCoordinate(preMapRect.topLeft)
mouseClick(map, point.x + 5, point.y + 5)
- compare(preMapRectClicked.count, 1)
+ tryCompare(preMapRectClicked, "count", 1)
map.center = preMapCircle.center
+ verify(waitForRendering(map))
point = map.fromCoordinate(preMapCircle.center)
mouseClick(map, point.x - 5, point.y - 5)
- compare(preMapRectClicked.count, 1)
+ tryCompare(preMapRectClicked, "count", 1)
compare(preMapCircleClicked.count, 1)
map.center = preMapCircle.center.atDistanceAndAzimuth(preMapCircle.radius, -45)
mouseClick(map, preMapCircle.x + 4, preMapCircle.y + 4)
- compare(preMapRectClicked.count, 2)
+ tryCompare(preMapRectClicked, "count", 2)
compare(preMapCircleClicked.count, 1)
compare(preMapQuickItemClicked.count, 0)
map.center = preMapQuickItem.coordinate
+ verify(waitForRendering(map))
point = map.fromCoordinate(preMapQuickItem.coordinate)
mouseClick(map, point.x + 5, point.y + 5)
- compare(preMapQuickItemClicked.count, 1)
+ tryCompare(preMapQuickItemClicked, "count", 1)
map.center = preMapPolygon.path[1]
+ verify(waitForRendering(map))
point = map.fromCoordinate(preMapPolygon.path[1])
mouseClick(map, point.x - 5, point.y)
- compare(preMapPolygonClicked.count, 1)
+ tryCompare(preMapPolygonClicked, "count", 1)
// item clips to map. not sure if this is sensible test
map.addMapItem(extMapCircle)
map.center = extMapCircle.center
+ verify(waitForRendering(map))
visualInspectionPoint();
point = map.fromCoordinate(extMapCircle.center)
mouseClick(map, point.x, point.y)
- compare(extMapCircleClicked.count, 1)
+ tryCompare(extMapCircleClicked, "count", 1)
mouseClick(map, point.x, -5)
- compare(extMapCircleClicked.count, 1)
+ tryCompare(extMapCircleClicked, "count", 1)
map.removeMapItem(extMapCircle)
map.addMapItem(extMapQuickItem)
map.center = extMapQuickItem.coordinate
+ verify(waitForRendering(map))
visualInspectionPoint();
point = map.fromCoordinate(extMapQuickItem.coordinate)
mouseClick(map, point.x + 5, point.y + 5)
- compare(extMapQuickItemClicked.count, 1)
+ tryCompare(extMapQuickItemClicked, "count", 1)
mouseClick(map, map.width + 5, point.y + 5)
- compare(extMapQuickItemClicked.count, 1)
+ tryCompare(extMapQuickItemClicked, "count", 1)
map.removeMapItem(extMapQuickItem)
}
@@ -378,6 +387,8 @@ Item {
// basic drags, drag rectangle
compare (preMapRectActiveChanged.count, 0)
map.center = preMapRect.topLeft
+ verify(waitForRendering(map))
+
var i
var point = map.fromCoordinate(preMapRect.topLeft)
var targetCoordinate = map.toCoordinate(51, 51)
@@ -400,6 +411,7 @@ Item {
// drag circle
compare (preMapCircleActiveChanged.count, 0)
map.center = preMapCircle.center
+ verify(waitForRendering(map))
point = map.fromCoordinate(preMapCircle.center)
targetCoordinate = map.toCoordinate(51, 51)
mousePress(map, point.x, point.y)
@@ -418,6 +430,7 @@ Item {
// drag quick item
compare (preMapQuickItemActiveChanged.count, 0)
map.center = preMapQuickItem.coordinate
+ verify(waitForRendering(map))
point = map.fromCoordinate(preMapQuickItem.coordinate)
targetCoordinate = map.toCoordinate(51, 51)
mousePress(map, point.x + 5, point.y + 5)
diff --git a/tests/auto/declarative_ui/tst_map_item_details.qml b/tests/auto/declarative_ui/tst_map_item_details.qml
index b4468301..20849079 100644
--- a/tests/auto/declarative_ui/tst_map_item_details.qml
+++ b/tests/auto/declarative_ui/tst_map_item_details.qml
@@ -41,7 +41,11 @@ Item {
x: 0; y: 0;
width: 240
height: 240
- Plugin { id: testPlugin; name : "qmlgeo.test.plugin"; allowExperimental: true }
+ Plugin { id: testPlugin
+ name : "qmlgeo.test.plugin"
+ allowExperimental: true
+ parameters: [ PluginParameter { name: "finishRequestImmediately"; value: true}]
+ }
property variant mapDefaultCenter: QtPositioning.coordinate(20, 20)
@@ -327,8 +331,9 @@ Item {
verify(extMapPolygon0.path.length == 0)
extMapPolygon.addCoordinate(polyCoordinate)
verify(extMapPolygon.path.length == 3)
+ verify(waitForRendering(map))
mouseClick(map, point.x - 5, point.y)
- compare(extMapPolygonClicked.count, 1)
+ tryCompare(extMapPolygonClicked, "count", 1)
extMapPolygon.path[0].latitude = 10
verify(extMapPolygon.path[0].latitude, 10)
@@ -427,6 +432,7 @@ Item {
verify(point.x > map.width / 2.0)
// move item edge onto dateline
extMapRectDateline.topLeft.longitude = datelineCoordinate.longitude
+ verify(waitForRendering(map))
point = map.fromCoordinate(extMapRectDateline.topLeft)
verify(point.x == map.width / 2.0)
// drag item back onto dateline
@@ -450,6 +456,7 @@ Item {
point = map.fromCoordinate(extMapCircleDateline.center)
verify(point.x == map.width / 2.0)
extMapCircleDateline.center.longitude = datelineCoordinateRight.longitude
+ verify(waitForRendering(map))
point = map.fromCoordinate(extMapCircleDateline.center)
verify(point.x > map.width / 2.0)
mousePress(map, point.x, point.y)
@@ -469,6 +476,7 @@ Item {
point = map.fromCoordinate(extMapQuickItemDateline.coordinate)
verify(point.x < map.width / 2.0)
extMapQuickItemDateline.coordinate.longitude = datelineCoordinateRight.longitude
+ verify(waitForRendering(map))
point = map.fromCoordinate(extMapQuickItemDateline.coordinate)
verify(point.x > map.width / 2.0)
mousePress(map, point.x + 5, point.y + 5)
@@ -510,6 +518,7 @@ Item {
path = extMapPolygonDateline.path;
path[3].longitude = datelineCoordinate.longitude;
extMapPolygonDateline.path = path;
+ verify(waitForRendering(map))
point = map.fromCoordinate(extMapPolygonDateline.path[3])
verify(point.x == map.width / 2.0)
mousePress(map, point.x + 5, point.y - 5)
@@ -518,6 +527,7 @@ Item {
mouseMove(map, point.x + 5 - i, point.y - 5 )
}
mouseRelease(map, point.x + 5 - i, point.y - 5)
+ verify(waitForRendering(map,10000))
point = map.fromCoordinate(extMapPolygonDateline.path[0])
verify(point.x < map.width / 2.0)
point = map.fromCoordinate(extMapPolygonDateline.path[1])
@@ -596,6 +606,7 @@ Item {
// rectangle
map.addMapItem(extMapRectEdge)
+ verify(waitForRendering(map))
verify(extMapRectEdge.topLeft.longitude == -15)
verify(extMapRectEdge.bottomRight.longitude == -5)
var point = map.fromCoordinate(extMapRectEdge.topLeft)
@@ -650,6 +661,7 @@ Item {
// quickitem
map.addMapItem(extMapQuickItemEdge)
map.center = datelineCoordinate
+ verify(waitForRendering(map))
verify(extMapQuickItemEdge.coordinate.longitude == -15)
point = map.fromCoordinate(extMapQuickItemEdge.coordinate)
verify(point.x < map.width)
@@ -671,6 +683,7 @@ Item {
// polygon
map.center = datelineCoordinate
map.addMapItem(extMapPolygonEdge)
+ verify(waitForRendering(map))
verify(extMapPolygonEdge.path[0].longitude == -15)
verify(extMapPolygonEdge.path[1].longitude == -5)
verify(extMapPolygonEdge.path[2].longitude == -5)
diff --git a/tests/auto/declarative_ui/tst_map_item_fit_viewport.qml b/tests/auto/declarative_ui/tst_map_item_fit_viewport.qml
index 8671d05d..b3ac1d8f 100644
--- a/tests/auto/declarative_ui/tst_map_item_fit_viewport.qml
+++ b/tests/auto/declarative_ui/tst_map_item_fit_viewport.qml
@@ -240,6 +240,7 @@ Item {
// normal case - fit viewport to items which are all already visible
verify_visibility_all_items()
map.fitViewportToMapItems()
+ verify(waitForRendering(map))
visualInspectionPoint()
verify_visibility_all_items()
}
@@ -577,6 +578,7 @@ Item {
map.addMapItem(preMapPolygon)
map.addMapItem(preMapPolyline)
map.addMapItem(preMapRoute)
+ verify(waitForRendering(map))
compare (map.mapItems.length, 6)
calculate_bounds()
}
diff --git a/tests/auto/declarative_ui/tst_map_mouse.qml b/tests/auto/declarative_ui/tst_map_mouse.qml
index fe02f81d..57cde142 100644
--- a/tests/auto/declarative_ui/tst_map_mouse.qml
+++ b/tests/auto/declarative_ui/tst_map_mouse.qml
@@ -267,25 +267,25 @@ Item {
compare(mouseUpperClickedSpy.count, 0)
mouseUpper.enabled = true
mouseClick(map, 5, 25)
- compare(mouseUpperClickedSpy.count, 1)
+ tryCompare(mouseUpperClickedSpy, "count", 1)
compare(mouseUpperEnabledChangedSpy.count, 2)
// when overlapping are is disabled, the event should flow through
compare(mouseOverlapperClickedSpy.count, 0)
mouseClick(map, 55, 25)
- compare(mouseUpperClickedSpy.count, 1)
+ tryCompare(mouseUpperClickedSpy, "count", 1)
compare(mouseOverlapperClickedSpy.count, 1)
mouseOverlapper.enabled = false
compare(mouseOverlapperEnabledChangedSpy.count, 1)
compare(mouseOverlapper.enabled, false)
mouseClick(map, 55, 25)
- compare(mouseOverlapperClickedSpy.count, 1)
+ tryCompare(mouseOverlapperClickedSpy, "count", 1)
compare(mouseUpperClickedSpy.count, 2)
// re-enable and verify that still works
mouseOverlapper.enabled = true
compare(mouseOverlapperEnabledChangedSpy.count, 2)
compare(mouseOverlapper.enabled, true)
mouseClick(map, 55, 25)
- compare(mouseOverlapperClickedSpy.count, 2) // should consume again
+ tryCompare(mouseOverlapperClickedSpy, "count", 2) // should consume again
compare(mouseUpperClickedSpy.count, 2)
}
@@ -338,7 +338,7 @@ Item {
mouseUpper.acceptedButtons = Qt.LeftButton
compare(mouseUpperAcceptedButtonsChangedSpy.count, 2)
mouseClick(map, 5, 25)
- compare(mouseUpperClickedSpy.count, 1)
+ tryCompare(mouseUpperClickedSpy, "count", 1)
}
function test_basic_position_changed() {
@@ -574,40 +574,40 @@ Item {
// mouse click with unaccepted buttons should not cause click
mouseUpper.acceptedButtons = Qt.LeftButton
mouseClick(map, 5, 25, Qt.RightButton, Qt.AltModifier)
- compare(mouseUpperClickedSpy.count, 1)
+ tryCompare(mouseUpperClickedSpy, "count", 1)
compare(mouseLowerClickedSpy.count, 0)
compare(mouseOverlapperClickedSpy.count, 0)
mouseClick(map, 5, 25)
- compare(mouseUpperClickedSpy.count, 2)
+ tryCompare(mouseUpperClickedSpy, "count", 2)
compare(mouseLowerClickedSpy.count, 0)
compare(mouseOverlapperClickedSpy.count, 0)
compare(mouseUpper.lastModifiers, Qt.NoModifier)
compare(mouseUpper.lastButton, Qt.LeftButton)
mouseClick(map, 5, 55)
- compare(mouseUpperClickedSpy.count, 2)
+ tryCompare(mouseUpperClickedSpy, "count", 2)
compare(mouseLowerClickedSpy.count, 1)
compare(mouseOverlapperClickedSpy.count, 0)
mouseClick(map, 5, 55)
- compare(mouseUpperClickedSpy.count, 2)
+ tryCompare(mouseUpperClickedSpy,"count", 2)
compare(mouseLowerClickedSpy.count, 2)
compare(mouseOverlapperClickedSpy.count, 0)
// declaration order counts on overlap case; overlapping area
// declared later will get the events
mouseClick(map, 55, 25)
- compare(mouseUpperClickedSpy.count, 2)
+ tryCompare(mouseUpperClickedSpy, "count", 2)
compare(mouseLowerClickedSpy.count, 2)
compare(mouseOverlapperClickedSpy.count, 1)
mouseClick(map, 55, 75)
- compare(mouseUpperClickedSpy.count, 2)
+ tryCompare(mouseUpperClickedSpy, "count", 2)
compare(mouseLowerClickedSpy.count, 2)
compare(mouseOverlapperClickedSpy.count, 2)
real_click(map, 55, 25)
- compare(mouseUpperClickedSpy.count, 2)
+ tryCompare(mouseUpperClickedSpy, "count", 2)
compare(mouseLowerClickedSpy.count, 2)
compare(mouseOverlapperClickedSpy.count, 3)
real_click(map, 55, 75)
- compare(mouseUpperClickedSpy.count, 2)
+ tryCompare(mouseUpperClickedSpy, "count", 2)
compare(mouseLowerClickedSpy.count, 2)
compare(mouseOverlapperClickedSpy.count, 4)
}
@@ -621,7 +621,7 @@ Item {
compare(mouseLowerDoubleClickedSpy.count, 0)
compare(mouseOverlapperDoubleClickedSpy.count, 0)
real_double_click(map, 5, 25)
- compare(mouseUpper.lastAccepted, true)
+ tryCompare(mouseUpper, "lastAccepted", true)
compare(mouseUpper.lastButton, Qt.LeftButton)
compare(mouseUpper.lastModifiers, Qt.NoModifier)
compare(mouseUpper.lastWasHeld, false)
@@ -632,26 +632,26 @@ Item {
compare(mouseLowerDoubleClickedSpy.count, 0)
compare(mouseOverlapperDoubleClickedSpy.count, 0)
real_double_click(map, 5, 25)
- compare(mouseUpperDoubleClickedSpy.count, 2)
+ tryCompare(mouseUpperDoubleClickedSpy, "count", 2)
compare(mouseLowerDoubleClickedSpy.count, 0)
compare(mouseOverlapperDoubleClickedSpy.count, 0)
real_double_click(map, 5, 55)
- compare(mouseUpperDoubleClickedSpy.count, 2)
+ tryCompare(mouseUpperDoubleClickedSpy, "count", 2)
compare(mouseLowerDoubleClickedSpy.count, 1)
compare(mouseOverlapperDoubleClickedSpy.count, 0)
real_double_click(map, 5, 55)
- compare(mouseUpperDoubleClickedSpy.count, 2)
+ tryCompare(mouseUpperDoubleClickedSpy, "count", 2)
compare(mouseLowerDoubleClickedSpy.count, 2)
compare(mouseOverlapperDoubleClickedSpy.count, 0)
// declaration order counts on overlap case; overlapping area declared later will get the events
real_double_click(map, 55, 25)
- compare(mouseUpperDoubleClickedSpy.count, 2)
+ tryCompare(mouseUpperDoubleClickedSpy, "count", 2)
compare(mouseLowerDoubleClickedSpy.count, 2)
compare(mouseOverlapperDoubleClickedSpy.count, 1)
compare(mouseOverlapperPressedSpy.count, 2)
compare(mouseOverlapperReleasedSpy.count, 2)
real_double_click(map, 55, 75)
- compare(mouseUpperDoubleClickedSpy.count, 2)
+ tryCompare(mouseUpperDoubleClickedSpy, "count", 2)
compare(mouseLowerDoubleClickedSpy.count, 2)
compare(mouseOverlapperDoubleClickedSpy.count, 2)
compare(mouseOverlapperPressedSpy.count, 4)
@@ -659,20 +659,20 @@ Item {
// disable overlapping area and check event is delivered to the ones beneath
mouseOverlapper.enabled = false
real_double_click(map, 55, 25)
- compare(mouseUpperDoubleClickedSpy.count, 3)
+ tryCompare(mouseUpperDoubleClickedSpy, "count", 3)
compare(mouseLowerDoubleClickedSpy.count, 2)
compare(mouseOverlapperDoubleClickedSpy.count, 2)
real_double_click(map, 55, 75)
- compare(mouseUpperDoubleClickedSpy.count, 3)
+ tryCompare(mouseUpperDoubleClickedSpy, "count", 3)
compare(mouseLowerDoubleClickedSpy.count, 3)
compare(mouseOverlapperDoubleClickedSpy.count, 2)
mouseOverlapper.enabled = true
real_double_click(map, 55, 25)
- compare(mouseUpperDoubleClickedSpy.count, 3)
+ tryCompare(mouseUpperDoubleClickedSpy, "count", 3)
compare(mouseLowerDoubleClickedSpy.count, 3)
compare(mouseOverlapperDoubleClickedSpy.count, 3)
real_double_click(map, 55, 75)
- compare(mouseUpperDoubleClickedSpy.count, 3)
+ tryCompare(mouseUpperDoubleClickedSpy, "count", 3)
compare(mouseLowerDoubleClickedSpy.count, 3)
compare(mouseOverlapperDoubleClickedSpy.count, 4)
}
@@ -698,11 +698,11 @@ Item {
compare(mouseUpper.lastY, 5) // remember 20 offset of the mouse area
mouseRelease(map,5,25)
real_press_and_hold(map, 5, 55)
- compare(mouseUpperPressAndHoldSpy.count, 1)
+ tryCompare(mouseUpperPressAndHoldSpy, "count", 1)
compare(mouseLowerPressAndHoldSpy.count, 1)
compare(mouseOverlapperPressAndHoldSpy.count, 0)
real_press_and_hold(map, 55, 75)
- compare(mouseUpperPressAndHoldSpy.count, 1)
+ tryCompare(mouseUpperPressAndHoldSpy, "count", 1)
compare(mouseLowerPressAndHoldSpy.count, 1)
compare(mouseOverlapperPressAndHoldSpy.count, 1)
compare(mouseOverlapper.lastAccepted, true)
@@ -713,14 +713,14 @@ Item {
compare(mouseOverlapper.lastY, 75)
// make sure that the wasHeld is cleared
mouseClick(map, 55, 75)
- compare(mouseOverlapper.lastAccepted, true)
+ tryCompare(mouseOverlapper, "lastAccepted", true)
compare(mouseOverlapper.lastButton, Qt.LeftButton)
compare(mouseOverlapper.lastModifiers, Qt.NoModifier)
compare(mouseOverlapper.lastWasHeld, false)
compare(mouseOverlapper.lastX, 5)
compare(mouseOverlapper.lastY, 75)
real_press_and_hold(map, 55, 25)
- compare(mouseUpperPressAndHoldSpy.count, 1)
+ tryCompare(mouseUpperPressAndHoldSpy, "count", 1)
compare(mouseLowerPressAndHoldSpy.count, 1)
compare(mouseOverlapperPressAndHoldSpy.count, 2)
}