Commit ba3b1116 authored by Jens Bache-Wiig's avatar Jens Bache-Wiig Committed by The Qt Project
Browse files

Fix Vertical slider


Task-number: 1303

Change-Id: Ic6cefcf456ef1a9801574096908cb475cbd51606
Reviewed-by: default avatarJ-P Nurmi <jpnurmi@digia.com>
parent a238a5ad
6.2 5.10 5.11 5.12 5.12.1 5.12.10 5.12.11 5.12.12 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13 5.13.0 5.13.1 5.13.2 5.14 5.14.0 5.14.1 5.14.2 5.15 5.15.0 5.15.1 5.15.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.9.8 dev old/5.1 old/5.2 wip/calendar wip/tizen v5.15.0-alpha1 v5.14.1 v5.14.0 v5.14.0-rc2 v5.14.0-rc1 v5.14.0-beta3 v5.14.0-beta2 v5.14.0-beta1 v5.14.0-alpha1 v5.13.2 v5.13.1 v5.13.0 v5.13.0-rc3 v5.13.0-rc2 v5.13.0-rc1 v5.13.0-beta4 v5.13.0-beta3 v5.13.0-beta2 v5.13.0-beta1 v5.13.0-alpha1 v5.12.7 v5.12.6 v5.12.5 v5.12.4 v5.12.3 v5.12.2 v5.12.1 v5.12.0 v5.12.0-rc2 v5.12.0-rc1 v5.12.0-beta4 v5.12.0-beta3 v5.12.0-beta2 v5.12.0-beta1 v5.12.0-alpha1 v5.11.3 v5.11.2 v5.11.1 v5.11.0 v5.11.0-rc2 v5.11.0-rc1 v5.11.0-beta4 v5.11.0-beta3 v5.11.0-beta2 v5.11.0-beta1 v5.11.0-alpha1 v5.10.1 v5.10.0 v5.10.0-rc3 v5.10.0-rc2 v5.10.0-rc1 v5.10.0-beta4 v5.10.0-beta3 v5.10.0-beta2 v5.10.0-beta1 v5.10.0-alpha1 v5.9.9 v5.9.8 v5.9.7 v5.9.6 v5.9.5 v5.9.4 v5.9.3 v5.9.2 v5.9.1 v5.9.0 v5.9.0-rc2 v5.9.0-rc1 v5.9.0-beta4 v5.9.0-beta3 v5.9.0-beta2 v5.9.0-beta1 v5.9.0-alpha1 v5.8.0 v5.8.0-rc1 v5.8.0-beta1 v5.8.0-alpha1 v5.7.1 v5.7.0 v5.7.0-rc1 v5.7.0-beta1 v5.7.0-alpha1 v5.6.3 v5.6.2 v5.6.1 v5.6.1-1 v5.6.0 v5.6.0-rc1 v5.6.0-beta1 v5.6.0-alpha1 v5.5.1 v5.5.0 v5.5.0-rc1 v5.5.0-beta1 v5.5.0-alpha1 v5.4.2 v5.4.1 v5.4.0 v5.4.0-rc1 v5.4.0-beta1 v5.4.0-alpha1 v5.3.2 v5.3.1 v5.3.0 v5.3.0-rc1 v5.3.0-beta1 v5.3.0-alpha1 v5.2.1 v5.2.0 v5.2.0-rc1 v5.2.0-beta1 v5.2.0-alpha1 v5.1.1 v5.1.0 v5.1.0-rc2 v5.1.0-rc1 v5.1.0-beta1 v5.1.0-alpha1
No related merge requests found
Showing with 25 additions and 16 deletions
......@@ -167,6 +167,9 @@ Control {
/*! \internal */
property bool __containsMouse: mouseArea.containsMouse
/*! \internal */
property bool __horizontal: orientation === Qt.Horizontal
Accessible.role: Accessible.Slider
Accessible.name: value
......@@ -195,10 +198,10 @@ Control {
maximumValue: 1.0
value: 0
stepSize: 0.0
inverted: false
inverted: __horizontal ? false : true
positionAtMinimum: 0
positionAtMaximum: slider.width
positionAtMaximum: __horizontal ? slider.width : slider.height
}
Item { id: fakeHandle }
......@@ -213,7 +216,7 @@ Control {
height: parent.height
drag.target: fakeHandle
drag.axis: Drag.XAxis
drag.axis: __horizontal ? Drag.XAxis : Drag.YAxis
drag.minimumX: range.positionAtMinimum
drag.maximumX: range.positionAtMaximum
......@@ -222,22 +225,19 @@ Control {
slider.focus = true;
// Clamp the value
var newX = Math.max(mouse.x, drag.minimumX);
newX = Math.min(newX, drag.maximumX);
// Debounce the press: a press event inside the handler will not
// change its position, the user needs to drag it.
// Note this really messes up things for scrollbar
// if (Math.abs(newX - fakeHandle.x) > handleLoader.width / 2)
range.position = newX;
var current = __horizontal ? mouse.x : mouse.y
var minimum = __horizontal ? drag.minimumX : drag.minimumY
var maximum = __horizontal ? drag.maximumX : drag.maximumY
var newVal = Math.max(current, minimum);
newVal = Math.min(newVal, maximum);
range.position = newVal;
}
onReleased: {
// If we don't update while dragging, this is the only
// moment that the range is updated.
if (!slider.updateValueWhileDragging)
range.position = fakeHandle.x;
range.position = __horizontal ? fakeHandle.x : fakeHandle.y;
}
}
......@@ -250,7 +250,7 @@ Control {
when: updateValueWhileDragging || !mouseArea.pressed
target: range
property: "position"
value: fakeHandle.x
value: __horizontal ? fakeHandle.x : fakeHandle.y
}
// During the drag, we simply ignore position set from the range, this
......@@ -259,11 +259,10 @@ Control {
Binding {
when: !mouseArea.drag.active
target: fakeHandle
property: "x"
property: __horizontal ? "x" : "y"
value: range.position
}
WheelArea {
id: wheelarea
anchors.fill: parent
......
......@@ -440,6 +440,8 @@ void QStyleItem::initStyleOption()
m_styleoption = new QStyleOptionSlider();
QStyleOptionSlider *opt = qstyleoption_cast<QStyleOptionSlider*>(m_styleoption);
opt->orientation = horizontal() ? Qt::Horizontal : Qt::Vertical;
opt->upsideDown = !horizontal();
opt->minimum = minimum();
opt->maximum = maximum();
opt->sliderPosition = value();
......
......@@ -48,6 +48,14 @@ TestCase {
width:400
height:400
function test_vertical() {
var slider = Qt.createQmlObject('import QtQuick.Controls 1.0; Slider {}', testCase, '');
verify(slider.height < slider.width)
slider.orientation = Qt.Vertical;
verify(slider.height > slider.width)
}
function test_minimumvalue() {
var slider = Qt.createQmlObject('import QtQuick.Controls 1.0; Slider {}', testCase, '');
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment