aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/controls
diff options
context:
space:
mode:
authorJan Arve Sæther <jan-arve.saether@qt.io>2020-10-29 17:01:27 +0100
committerJan Arve Sæther <jan-arve.saether@qt.io>2020-12-10 16:21:21 +0100
commit64fd0b53b378ef91725d4950720c3bdfaee11498 (patch)
tree4860bf008c3437a41575e9a05dda8eba96f05848 /src/imports/controls
parent8d061f542181cfe0ac9052948c869d87ce80589b (diff)
Add support for ScrollBar arrow buttons
In order to achieve this, it separates out QQuickSpinButton into a separate file (and renames it since it's not only purposed for SpinBox anymore). This allows it to be also used by QQuickScrollBar. Fixes: QTBUG-88115 Pick-to: 6.0 Change-Id: I2dea42b29750b7bc619031f40a43717fc10c177b Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/imports/controls')
-rw-r--r--src/imports/controls/windows/ScrollBar.qml52
1 files changed, 48 insertions, 4 deletions
diff --git a/src/imports/controls/windows/ScrollBar.qml b/src/imports/controls/windows/ScrollBar.qml
index d3b09418..0ccbb155 100644
--- a/src/imports/controls/windows/ScrollBar.qml
+++ b/src/imports/controls/windows/ScrollBar.qml
@@ -40,10 +40,10 @@ import QtQuick.NativeStyle as NativeStyle
NativeStyle.DefaultScrollBar {
id: controlRoot
- topPadding: orientation == Qt.Vertical ? 17 : 0
- bottomPadding: orientation == Qt.Vertical ? 17 : 0
- leftPadding: orientation == Qt.Horizontal ? 17 : 0
- rightPadding: orientation == Qt.Horizontal ? 17 : 0
+ topPadding: orientation === Qt.Vertical ? controlRoot.__decreaseVisual.indicator.height : 0
+ bottomPadding: orientation === Qt.Vertical ? controlRoot.__increaseVisual.indicator.height : 0
+ leftPadding: orientation === Qt.Horizontal ? controlRoot.__decreaseVisual.indicator.width : 0
+ rightPadding: orientation === Qt.Horizontal ? controlRoot.__increaseVisual.indicator.width : 0
contentItem: NativeStyle.ScrollBar {
control: controlRoot
@@ -81,4 +81,48 @@ NativeStyle.DefaultScrollBar {
subControl: NativeStyle.ScrollBar.Groove
overrideState: NativeStyle.ScrollBar.NeverHovered
}
+
+ __decreaseVisual.indicator: NativeStyle.ScrollBar {
+ control: controlRoot
+ subControl: NativeStyle.ScrollBar.SubLine
+ overrideState: NativeStyle.ScrollBar.AlwaysHovered
+ opacity: controlRoot.__decreaseVisual.hovered ? 1 : 0
+ visible: contentItem instanceof NativeStyle.StyleItem
+ Behavior on opacity { NumberAnimation { duration: contentItem.transitionDuration } }
+ useNinePatchImage: false
+ }
+
+ NativeStyle.ScrollBar {
+ control: controlRoot
+ subControl: NativeStyle.ScrollBar.SubLine
+ overrideState: NativeStyle.ScrollBar.AlwaysSunken
+ opacity: controlRoot.__decreaseVisual.pressed ? 1 : 0
+ visible: contentItem instanceof NativeStyle.StyleItem
+ useNinePatchImage: false
+ z: 1
+ }
+
+ __increaseVisual.indicator: NativeStyle.ScrollBar {
+ control: controlRoot
+ subControl: NativeStyle.ScrollBar.AddLine
+ x: orientation == Qt.Horizontal ? controlRoot.width - width : 0
+ y: orientation == Qt.Vertical ? controlRoot.height - height : 0
+ overrideState: NativeStyle.ScrollBar.AlwaysHovered
+ opacity: controlRoot.__increaseVisual.hovered ? 1 : 0
+ visible: contentItem instanceof NativeStyle.StyleItem
+ Behavior on opacity { NumberAnimation { duration: contentItem.transitionDuration } }
+ useNinePatchImage: false
+ }
+
+ NativeStyle.ScrollBar {
+ control: controlRoot
+ subControl: NativeStyle.ScrollBar.AddLine
+ x: __increaseVisual.indicator.x
+ y: __increaseVisual.indicator.y
+ z: 1
+ overrideState: NativeStyle.ScrollBar.AlwaysSunken
+ opacity: controlRoot.__increaseVisual.pressed ? 1 : 0
+ visible: contentItem instanceof NativeStyle.StyleItem
+ useNinePatchImage: false
+ }
}