aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2016-05-11 12:33:43 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2016-05-11 11:24:48 +0000
commit55aef74a8ebd65d2178bd3a2536ca44dcaecd46e (patch)
tree5213c22897bbe6e7bfa2b95fe2e6247236601f20 /tests
parent8b2e819ab2246d01eb564a52aa08bdf1d55c02c2 (diff)
QQuickPopup: emit xChanged() and yChanged() when _local_ coords change
Emitting xChanged() and yChanged() when the (scene) geometry of the internal popup item changes is not sufficient, because QQuickPopup operates in the parent item's coordinate space. When a popup is pushed inside the window margins, the local coordinates change, but the global coordinates don't. Change-Id: I296f1ecd1d1e882c2ff730a2bf68641bd57cbb4f Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/controls/data/tst_popup.qml18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/auto/controls/data/tst_popup.qml b/tests/auto/controls/data/tst_popup.qml
index 156bc652..a681b2f9 100644
--- a/tests/auto/controls/data/tst_popup.qml
+++ b/tests/auto/controls/data/tst_popup.qml
@@ -334,6 +334,24 @@ TestCase {
compare(xSpy.count, 1)
compare(ySpy.count, 1)
+ // re-parent and reset the position
+ control.parent = rect.createObject(testCase, {color: "red", width: 100, height: 100})
+ control.x = 0
+ control.y = 0
+ compare(xSpy.count, 2)
+ compare(ySpy.count, 2)
+
+ // moving parent outside margins triggers change notifiers
+ control.parent.x = -50
+ compare(control.x, 50 + control.leftMargin)
+ compare(xSpy.count, 3)
+ compare(ySpy.count, 2)
+
+ control.parent.y = -60
+ compare(control.y, 60 + control.topMargin)
+ compare(xSpy.count, 3)
+ compare(ySpy.count, 3)
+
control.destroy()
}