Warning, /frameworks/qqc2-desktop-style/tests/testBars.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 * SPDX-FileCopyrightText: 2022 ivan (@ratijas) tkachenko <me@ratijas.tk> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 import QtQuick 2.15 0008 import QtQuick.Controls 2.15 0009 import QtQuick.Templates 2.15 as T 0010 import QtQuick.Layouts 1.15 0011 0012 import org.kde.kirigami 2.20 as Kirigami 0013 0014 Kirigami.ApplicationWindow { 0015 title: "Progress Bars & Sliders" 0016 width: demo.implicitWidth 0017 height: demo.implicitHeight 0018 0019 component LoopAnimation : SequentialAnimation { 0020 running: true 0021 0022 // this is bound to global time, so that you could open multiple 0023 // windows side by side, and they all play in sync 0024 ScriptAction { 0025 script: phase.value = value() 0026 function value() { 0027 var phase = Date.now() % 7000; 0028 if (phase < 500) { 0029 return 0; 0030 } else if (phase < 3500) { 0031 return (phase - 500) / 3000; 0032 } else if (phase < 4000) { 0033 return 1; 0034 } else { 0035 return 1 - ((phase - 4000) / 3000); 0036 } 0037 } 0038 } 0039 PropertyAction { 0040 id: phase 0041 } 0042 PauseAnimation { duration: 1 } 0043 onFinished: restart() 0044 } 0045 0046 component Demo : GridLayout { 0047 id: layout 0048 columns: 2 0049 columnSpacing: Kirigami.Units.smallSpacing 0050 rowSpacing: Kirigami.Units.smallSpacing 0051 0052 Label { 0053 text: "Mirrorring:" 0054 Layout.alignment: Qt.AlignRight 0055 } 0056 0057 RowLayout { 0058 spacing: Kirigami.Units.smallSpacing 0059 Label { 0060 text: layout.LayoutMirroring.enabled ? "Enabled" : "Disabled" 0061 Layout.rightMargin: Kirigami.Units.gridUnit * 2 0062 } 0063 0064 Label { 0065 text: "Inherit:" 0066 Layout.alignment: Qt.AlignRight 0067 } 0068 0069 Label { 0070 text: layout.LayoutMirroring.childrenInherit ? "Yes" : "No" 0071 } 0072 } 0073 0074 Label { 0075 text: "Value:" 0076 Layout.alignment: Qt.AlignRight 0077 } 0078 0079 Label { 0080 text: value.toFixed(2) 0081 property real value 0082 LoopAnimation on value {} 0083 Layout.fillWidth: true 0084 } 0085 0086 Item { 0087 Layout.preferredHeight: Kirigami.Units.gridUnit 0088 Layout.columnSpan: 2 0089 } 0090 0091 Label { 0092 text: "Progress Bar:" 0093 Layout.alignment: Qt.AlignRight | Qt.AlignVCenter 0094 } 0095 0096 ProgressBar { 0097 LoopAnimation on value {} 0098 Layout.fillWidth: true 0099 } 0100 0101 Item { 0102 Layout.preferredHeight: Kirigami.Units.gridUnit 0103 Layout.columnSpan: 2 0104 } 0105 0106 Label { 0107 text: "Indeterminate:" 0108 Layout.alignment: Qt.AlignRight | Qt.AlignVCenter 0109 } 0110 0111 ProgressBar { 0112 indeterminate: true 0113 Layout.fillWidth: true 0114 } 0115 0116 Item { 0117 Layout.preferredHeight: Kirigami.Units.gridUnit 0118 Layout.columnSpan: 2 0119 } 0120 0121 Label { 0122 text: "Slider:" 0123 Layout.alignment: Qt.AlignRight | Qt.AlignVCenter 0124 } 0125 0126 Slider { 0127 stepSize: 0.1 0128 LoopAnimation on value {} 0129 Layout.fillWidth: true 0130 } 0131 0132 Item { 0133 Layout.preferredHeight: Kirigami.Units.gridUnit 0134 Layout.columnSpan: 2 0135 } 0136 0137 Label { 0138 text: "Manual:" 0139 Layout.alignment: Qt.AlignRight | Qt.AlignVCenter 0140 } 0141 0142 // Test for BUG-455339 0143 Slider { 0144 to: 300000 0145 stepSize: 30000 0146 value: 90000 0147 Layout.fillWidth: true 0148 } 0149 } 0150 0151 Kirigami.Page { 0152 id: demo 0153 0154 anchors.fill: parent 0155 contentItem: ColumnLayout { 0156 spacing: Kirigami.Units.largeSpacing 0157 RowLayout { 0158 Layout.fillWidth: false 0159 Layout.fillHeight: false 0160 Layout.alignment: Qt.AlignHCenter 0161 spacing: Kirigami.Units.smallSpacing 0162 0163 Label { 0164 text: "Application Layout Direction:" 0165 Layout.alignment: Qt.AlignRight 0166 } 0167 Label { 0168 text: Qt.application.layoutDirection === Qt.RightToLeft ? "Right to Left" : "Left to Right" 0169 } 0170 } 0171 Kirigami.Separator { Layout.fillWidth: true } 0172 RowLayout { 0173 Layout.fillHeight: false 0174 spacing: Kirigami.Units.largeSpacing 0175 0176 Demo { 0177 id: sampleDemo 0178 LayoutMirroring.enabled: true 0179 LayoutMirroring.childrenInherit: true 0180 } 0181 Kirigami.Separator { Layout.fillHeight: true } 0182 Demo { 0183 LayoutMirroring.enabled: false 0184 LayoutMirroring.childrenInherit: true 0185 } 0186 Layout.bottomMargin: Kirigami.Units.gridUnit 0187 } 0188 Kirigami.Separator { Layout.fillWidth: true } 0189 Demo { 0190 Layout.fillWidth: false 0191 Layout.fillHeight: false 0192 Layout.alignment: Qt.AlignHCenter 0193 Layout.preferredWidth: sampleDemo.width 0194 } 0195 Item { 0196 Layout.fillHeight: true 0197 } 0198 Kirigami.SelectableLabel { 0199 Layout.fillWidth: true 0200 horizontalAlignment: Text.AlignHCenter 0201 textFormat: Text.MarkdownText 0202 text: "Hint: run this test both with `export LANGUAGE=ar:en_US LANG=ar_EG.UTF-8 LC_ALL=` and `export LANGUAGE=en:en_US LANG=en_US.UTF-8 LC_ALL=` environments." 0203 } 0204 } 0205 } 0206 }