Warning, /frameworks/kirigami/examples/wheelhandler/FlickableUsage.qml is written in an unsupported language. File is not indexed.
0001 /* SPDX-FileCopyrightText: 2021 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.Controls as QQC2 0007 import org.kde.kirigami as Kirigami 0008 0009 QQC2.ApplicationWindow { 0010 id: root 0011 0012 width: flickable.implicitWidth 0013 height: flickable.implicitHeight 0014 visible: true 0015 0016 Flickable { 0017 id: flickable 0018 0019 anchors.fill: parent 0020 implicitWidth: wheelHandler.horizontalStepSize * 10 + leftMargin + rightMargin 0021 implicitHeight: wheelHandler.verticalStepSize * 10 + topMargin + bottomMargin 0022 0023 leftMargin: QQC2.ScrollBar.vertical.visible && QQC2.ScrollBar.vertical.mirrored ? QQC2.ScrollBar.vertical.width : 0 0024 rightMargin: QQC2.ScrollBar.vertical.visible && !QQC2.ScrollBar.vertical.mirrored ? QQC2.ScrollBar.vertical.width : 0 0025 bottomMargin: QQC2.ScrollBar.horizontal.visible ? QQC2.ScrollBar.horizontal.height : 0 0026 0027 contentWidth: contentItem.childrenRect.width 0028 contentHeight: contentItem.childrenRect.height 0029 0030 Kirigami.WheelHandler { 0031 id: wheelHandler 0032 target: flickable 0033 filterMouseEvents: true 0034 keyNavigationEnabled: true 0035 } 0036 0037 QQC2.ScrollBar.vertical: QQC2.ScrollBar { 0038 parent: flickable.parent 0039 height: flickable.height - flickable.topMargin - flickable.bottomMargin 0040 x: mirrored ? 0 : flickable.width - width 0041 y: flickable.topMargin 0042 active: flickable.QQC2.ScrollBar.horizontal.active 0043 stepSize: wheelHandler.verticalStepSize / flickable.contentHeight 0044 } 0045 0046 QQC2.ScrollBar.horizontal: QQC2.ScrollBar { 0047 parent: flickable.parent 0048 width: flickable.width - flickable.leftMargin - flickable.rightMargin 0049 x: flickable.leftMargin 0050 y: flickable.height - height 0051 active: flickable.QQC2.ScrollBar.vertical.active 0052 stepSize: wheelHandler.horizontalStepSize / flickable.contentWidth 0053 } 0054 0055 Grid { // Example content 0056 columns: Math.sqrt(visibleChildren.length) 0057 Repeater { 0058 model: 1000 0059 delegate: Rectangle { 0060 implicitWidth: wheelHandler.horizontalStepSize 0061 implicitHeight: wheelHandler.verticalStepSize 0062 gradient: Gradient { 0063 orientation: index % 2 ? Gradient.Vertical : Gradient.Horizontal 0064 GradientStop { position: 0; color: Qt.rgba(Math.random(), Math.random(), Math.random(), 1) } 0065 GradientStop { position: 1; color: Qt.rgba(Math.random(), Math.random(), Math.random(), 1) } 0066 } 0067 } 0068 } 0069 } 0070 } 0071 }