aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Moe Gustavsen <richard.gustavsen@qt.io>2019-03-01 14:26:22 +0100
committerRichard Moe Gustavsen <richard.gustavsen@qt.io>2019-03-04 13:06:46 +0000
commitf29584ce40a27047a40d2a1d17bc132f65976c50 (patch)
tree373f3fb65f039b7e94218feb93eeda31c12f9113
parent247dad297cb7f8d5af42434c67d24ffcc7bae017 (diff)
ScrollBar: set a default minimumSize for all styles
If you don't specify a minimumSize, the scrollbar handles will be "invisible" when the size of the content view is much larger than the viewport. Since having hidden handles is pointless, set a default minimum size to be the same as the height of the handle. Change-Id: Ia486a616308b5edfd6aa6a29f34a6fc9030c276b Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
-rw-r--r--src/imports/controls/ScrollBar.qml1
-rw-r--r--src/imports/controls/fusion/ScrollBar.qml1
-rw-r--r--src/imports/controls/imagine/ScrollBar.qml1
-rw-r--r--src/imports/controls/material/ScrollBar.qml1
-rw-r--r--src/imports/controls/universal/ScrollBar.qml1
-rw-r--r--tests/auto/controls/data/tst_scrollbar.qml5
6 files changed, 9 insertions, 1 deletions
diff --git a/src/imports/controls/ScrollBar.qml b/src/imports/controls/ScrollBar.qml
index 1cff0afc..0948fb1d 100644
--- a/src/imports/controls/ScrollBar.qml
+++ b/src/imports/controls/ScrollBar.qml
@@ -49,6 +49,7 @@ T.ScrollBar {
padding: 2
visible: control.policy !== T.ScrollBar.AlwaysOff
+ minimumSize: orientation == Qt.Horizontal ? height / width : width / height
contentItem: Rectangle {
implicitWidth: control.interactive ? 6 : 2
diff --git a/src/imports/controls/fusion/ScrollBar.qml b/src/imports/controls/fusion/ScrollBar.qml
index e4fb7949..93b58f0e 100644
--- a/src/imports/controls/fusion/ScrollBar.qml
+++ b/src/imports/controls/fusion/ScrollBar.qml
@@ -51,6 +51,7 @@ T.ScrollBar {
padding: 2
visible: control.policy !== T.ScrollBar.AlwaysOff
+ minimumSize: orientation == Qt.Horizontal ? height / width : width / height
contentItem: Rectangle {
implicitWidth: control.interactive ? 6 : 2
diff --git a/src/imports/controls/imagine/ScrollBar.qml b/src/imports/controls/imagine/ScrollBar.qml
index 787ea663..1b21becb 100644
--- a/src/imports/controls/imagine/ScrollBar.qml
+++ b/src/imports/controls/imagine/ScrollBar.qml
@@ -48,6 +48,7 @@ T.ScrollBar {
implicitContentHeight + topPadding + bottomPadding)
visible: control.policy !== T.ScrollBar.AlwaysOff
+ minimumSize: orientation == Qt.Horizontal ? height / width : width / height
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
diff --git a/src/imports/controls/material/ScrollBar.qml b/src/imports/controls/material/ScrollBar.qml
index a376742d..8f2cc99d 100644
--- a/src/imports/controls/material/ScrollBar.qml
+++ b/src/imports/controls/material/ScrollBar.qml
@@ -48,6 +48,7 @@ T.ScrollBar {
padding: control.interactive ? 1 : 2
visible: control.policy !== T.ScrollBar.AlwaysOff
+ minimumSize: orientation == Qt.Horizontal ? height / width : width / height
contentItem: Rectangle {
implicitWidth: control.interactive ? 13 : 4
diff --git a/src/imports/controls/universal/ScrollBar.qml b/src/imports/controls/universal/ScrollBar.qml
index d6a525f7..1e049533 100644
--- a/src/imports/controls/universal/ScrollBar.qml
+++ b/src/imports/controls/universal/ScrollBar.qml
@@ -47,6 +47,7 @@ T.ScrollBar {
implicitContentHeight + topPadding + bottomPadding)
visible: control.policy !== T.ScrollBar.AlwaysOff
+ minimumSize: orientation == Qt.Horizontal ? height / width : width / height
// TODO: arrows
diff --git a/tests/auto/controls/data/tst_scrollbar.qml b/tests/auto/controls/data/tst_scrollbar.qml
index 0051b785..9d21fa8b 100644
--- a/tests/auto/controls/data/tst_scrollbar.qml
+++ b/tests/auto/controls/data/tst_scrollbar.qml
@@ -67,7 +67,10 @@ TestCase {
Component {
id: scrollBar
- ScrollBar { padding: 0 }
+ ScrollBar {
+ padding: 0
+ minimumSize: 0
+ }
}
Component {