summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Shaw <andy.shaw@qt.io>2018-03-12 12:32:00 +0100
committerAndy Shaw <andy.shaw@qt.io>2018-04-17 06:45:21 +0000
commit71beceb772dedfcaa30eda8ce2ed146e835b59f9 (patch)
tree6a1b8e8202942f28065d9002bf33352657a4884d
parent8e71e41bc901beec1aedabe8c9bc6c94df2e295a (diff)
downloadqtquickcontrols-71beceb772dedfcaa30eda8ce2ed146e835b59f9.tar.gz
Stop incrementing if the mouse is no longer over the button
Change-Id: Ibc95b14faaa77f200cf6ea5e05cb227e6a3628ca Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
-rw-r--r--src/controls/SpinBox.qml6
-rw-r--r--tests/auto/controls/data/tst_spinbox.qml38
2 files changed, 42 insertions, 2 deletions
diff --git a/src/controls/SpinBox.qml b/src/controls/SpinBox.qml
index a742abd6..b7ec6a8f 100644
--- a/src/controls/SpinBox.qml
+++ b/src/controls/SpinBox.qml
@@ -359,8 +359,9 @@ Control {
property bool autoincrement: false;
onReleased: autoincrement = false
+ onExited: autoincrement = false
Timer { running: mouseUp.pressed; interval: 350 ; onTriggered: mouseUp.autoincrement = true }
- Timer { running: mouseUp.autoincrement; interval: 60 ; repeat: true ; onTriggered: __increment() }
+ Timer { running: mouseUp.autoincrement && mouseUp.containsMouse; interval: 60 ; repeat: true ; onTriggered: __increment() }
}
// Spinbox decrement button
@@ -386,8 +387,9 @@ Control {
property bool autoincrement: false;
onReleased: autoincrement = false
+ onExited: autoincrement = false
Timer { running: mouseDown.pressed; interval: 350 ; onTriggered: mouseDown.autoincrement = true }
- Timer { running: mouseDown.autoincrement; interval: 60 ; repeat: true ; onTriggered: __decrement() }
+ Timer { running: mouseDown.autoincrement && mouseDown.containsMouse; interval: 60 ; repeat: true ; onTriggered: __decrement() }
}
Keys.onUpPressed: __increment()
diff --git a/tests/auto/controls/data/tst_spinbox.qml b/tests/auto/controls/data/tst_spinbox.qml
index 587d2be0..d42a2551 100644
--- a/tests/auto/controls/data/tst_spinbox.qml
+++ b/tests/auto/controls/data/tst_spinbox.qml
@@ -49,6 +49,7 @@
****************************************************************************/
import QtQuick 2.2
+import QtQuick.Controls 1.2
import QtQuick.Controls.Private 1.0
import QtTest 1.0
@@ -702,6 +703,43 @@ Item {
test.destroy()
}
+
+ Component {
+ id: moveMouseFlickable
+ Flickable {
+ property alias spinbox: _spinbox
+ width: 100
+ height: 200
+ contentHeight: 500
+ contentWidth: 200
+ SpinBox {
+ id: _spinbox
+ x: 20
+ y: 100
+ minimumValue: 0
+ maximumValue: 12500
+ }
+ }
+ }
+
+ function test_moveMouseInFlickable() {
+ var control = createTemporaryObject(moveMouseFlickable, container)
+ var spinbox = control.spinbox
+ spinbox.forceActiveFocus()
+ setCoordinates(spinbox)
+ mousePress(spinbox, upCoord.x, upCoord.y, Qt.LeftButton)
+ mouseMove(spinbox.parent, mainCoord.x, mainCoord.y - 50, 500)
+ compare(spinbox.hovered, false)
+ compare(spinbox.__styleData.upHovered, false)
+ compare(spinbox.__styleData.downHovered, false)
+ mouseRelease(spinbox.parent, mainCoord.x, mainCoord.y - 50, Qt.LeftButton)
+ var currentVal = spinbox.value
+ mouseMove(spinbox.parent, upCoord.x, upCoord.y)
+ compare(spinbox.hovered, true)
+ compare(spinbox.__styleData.upHovered, true)
+ compare(spinbox.__styleData.downHovered, false)
+ compare(spinbox.value, currentVal)
+ }
}
}