diff options
author | Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com> | 2015-07-20 15:51:17 +0200 |
---|---|---|
committer | Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com> | 2015-07-24 10:32:41 +0000 |
commit | 048a5363294273d60b3634f96295c28828e5383e (patch) | |
tree | c32c1c4d7f28c78b9fc3ba7a55388b715a0fc333 /tests/auto/controls/data/tst_textfield.qml | |
parent | 3515852a3fb8321da950c7ae88c2ab1e09259e8c (diff) |
Add pressAndHold support for TextField
Change-Id: I634da6568a456a5f21e30e6295d139a4e1a89e75
Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
Diffstat (limited to 'tests/auto/controls/data/tst_textfield.qml')
-rw-r--r-- | tests/auto/controls/data/tst_textfield.qml | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/auto/controls/data/tst_textfield.qml b/tests/auto/controls/data/tst_textfield.qml index 4a55ef97..9ce325b3 100644 --- a/tests/auto/controls/data/tst_textfield.qml +++ b/tests/auto/controls/data/tst_textfield.qml @@ -60,4 +60,56 @@ TestCase { verify(control) control.destroy() } + + SignalSpy { + id: pressAndHoldSpy + signalName: "pressAndHold" + } + + function test_pressAndHold() { + var control = textField.createObject(testCase) + control.width = 200 + pressAndHoldSpy.target = control + + mouseClick(control) + compare(pressAndHoldSpy.count, 0) + var interval = Qt.styleHints.mousePressAndHoldInterval + + // Short press duration => nothing happens + mousePress(control) + wait(interval * 0.3) + mouseRelease(control) + compare(pressAndHoldSpy.count, 0) + + // Long enough press duration => signal emitted + mousePress(control, 10, 10) + // Add 10% extra time to allow the control to + // receive the timer event before we come back here + wait(interval * 1.1) + compare(pressAndHoldSpy.count, 1) + mouseRelease(control) + compare(pressAndHoldSpy.count, 1) + + // Long enough, but move in between => nothing happens + pressAndHoldSpy.clear() + mousePress(control) + wait(interval * 0.6) + mouseMove(control, 5, 5, Qt.LeftButton) + wait(interval * 0.6) + compare(pressAndHoldSpy.count, 0) + mouseRelease(control) + compare(pressAndHoldSpy.count, 0) + + // Long enough, but 2nd press in between => nothing happens + pressAndHoldSpy.clear() + mousePress(control, 10, 10) + wait(interval * 0.6) + mousePress(control, 10, 10, Qt.RightButton) + wait(interval * 0.6) + compare(pressAndHoldSpy.count, 0) + mouseRelease(control, 10, 10, Qt.LeftButton|Qt.RightButton) + compare(pressAndHoldSpy.count, 0) + + control.destroy() + } } |