Warning, /plasma/qqc2-breeze-style/style/qtquickcontrols/ScrollBar.qml is written in an unsupported language. File is not indexed.
0001 /* SPDX-FileCopyrightText: 2020 Noah Davis <noahadvs@gmail.com>
0002 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0003 */
0004
0005 import QtQuick
0006 import QtQuick.Templates as T
0007 import org.kde.kirigami as Kirigami
0008
0009 import org.kde.breeze.impl as Impl
0010
0011 T.ScrollBar {
0012 id: control
0013
0014 // content may be loaded after this component, ensure it always stays above content
0015 // inline with qqc2-desktop-style behaviour
0016 z: 9999
0017
0018 implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
0019 implicitContentWidth + leftPadding + rightPadding)
0020 implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
0021 implicitContentHeight + topPadding + bottomPadding)
0022
0023 padding: control.interactive ? Kirigami.Units.mediumSpacing : Impl.Units.verySmallSpacing
0024 leftPadding: horizontalPadding + separator.thickness
0025
0026 visible: control.size < 1 && control.policy !== T.ScrollBar.AlwaysOff
0027 minimumSize: horizontal ? height / width : width / height
0028
0029 interactive: !Kirigami.Settings.hasTransientTouchInput
0030
0031 policy: Kirigami.Settings.isMobile || !control.interactive ? T.ScrollBar.AsNeeded : T.ScrollBar.AlwaysOn
0032
0033 contentItem: Impl.ScrollHandle {
0034 control: control
0035 policy: control.policy
0036 pressed: control.pressed
0037 }
0038
0039 background: Rectangle {
0040 visible: control.policy === T.ScrollBar.AlwaysOn
0041 color: "transparent"
0042 Kirigami.Separator {
0043 id: separator
0044 property int thickness: parent.visible ? Math.min(width, height) : 0
0045 weight: Kirigami.Separator.Weight.Light
0046 anchors {
0047 left: parent.left
0048 right: control.horizontal ? parent.right : undefined
0049 top: parent.top
0050 bottom: control.vertical ? parent.bottom : undefined
0051 }
0052 }
0053 }
0054 }