Warning, /plasma/plasma-bigscreen/kcms/bigscreen-settings/ui/delegates/Digit.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 * SPDX-FileCopyrightText: 2021 Aditya Mehra <aix.m@outlook.com>
0003 * SPDX-FileCopyrightText: 2011 Marco Martin <mart@kde.org>
0004 *
0005 * SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007
0008 import QtQuick 2.14
0009 import org.kde.kirigami as Kirigami
0010
0011 Item {
0012 id: root
0013
0014 property alias model: spinnerView.model
0015 property alias currentIndex: spinnerView.currentIndex
0016 property alias delegate: spinnerView.delegate
0017 property alias moving: spinnerView.moving
0018 property int selectedIndex: -1
0019 property int fontSize: 14
0020
0021 width: parent.width / 3
0022 height: parent.height
0023
0024 Text {
0025 id: placeHolder
0026 visible: false
0027 font.pointSize: root.fontSize
0028 text: "00"
0029 }
0030
0031 Keys.onUpPressed: {
0032 spinnerView.incrementCurrentIndex()
0033 selectedIndex = spinnerView.ownIndex
0034 }
0035
0036 Keys.onDownPressed: {
0037 spinnerView.decrementCurrentIndex()
0038 selectedIndex = spinnerView.ownIndex
0039 }
0040
0041 PathView {
0042 id: spinnerView
0043 anchors.fill: parent
0044 model: 60
0045 clip: true
0046 pathItemCount: 5
0047 dragMargin: 800
0048 preferredHighlightBegin: 0.5
0049 preferredHighlightEnd: 0.5
0050 property int ownIndex: currentIndex
0051
0052 delegate: Text {
0053 horizontalAlignment: Text.AlignHCenter
0054 width: spinnerView.width
0055 text: index < 10 ? "0"+index : index
0056 color: root.focus && root.currentIndex == index ? Kirigami.Theme.linkColor : Kirigami.Theme.textColor
0057 font.pointSize: root.fontSize
0058 opacity: PathView.itemOpacity
0059 }
0060
0061 onMovingChanged: {
0062 userConfiguring = true
0063 if (!moving) {
0064 selectedIndex = spinnerView.ownIndex
0065 }
0066 }
0067
0068 path: Path {
0069 startX: spinnerView.width/2
0070 startY: spinnerView.height + 1.5*placeHolder.height
0071 PathAttribute { name: "itemOpacity"; value: 0 }
0072 PathLine {
0073 x: spinnerView.width/2
0074 y: spinnerView.height/2
0075 }
0076 PathAttribute { name: "itemOpacity"; value: 1 }
0077 PathLine {
0078 x: spinnerView.width/2
0079 y: -1.5*placeHolder.height
0080 }
0081 PathAttribute { name: "itemOpacity"; value: 0 }
0082 }
0083 }
0084 }
0085