Warning, /plasma/kwin/src/plugins/showfps/qml/main.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 SPDX-FileCopyrightText: 2022 Arjen Hiemstra <ahiemstra@heimr.nl>
0003
0004 SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006
0007 import QtQuick
0008 import QtQuick.Controls
0009 import QtQuick.Layouts
0010
0011 import org.kde.kirigami 2.18 as Kirigami
0012 import org.kde.quickcharts as Charts
0013 import org.kde.quickcharts.controls as ChartControls
0014
0015 Rectangle {
0016 id: root
0017
0018 required property QtObject effect
0019
0020 readonly property color gridColor: Qt.rgba(Kirigami.Theme.backgroundColor.r,
0021 Kirigami.Theme.backgroundColor.g,
0022 Kirigami.Theme.backgroundColor.b,
0023 0.25)
0024
0025 color: Qt.rgba(1.0, 1.0, 1.0, 0.5)
0026
0027 ColumnLayout {
0028 anchors.fill: parent
0029
0030 RowLayout {
0031 Layout.fillWidth: true
0032 Layout.fillHeight: true
0033
0034 Charts.BarChart {
0035 id: fpsChart
0036
0037 Layout.preferredWidth: Kirigami.Units.gridUnit
0038 Layout.fillHeight: true
0039
0040 yRange.minimum: root.effect.maximumFps + 10
0041 yRange.increment: 10
0042
0043 valueSources: Charts.SingleValueSource { value: root.effect.fps }
0044
0045 colorSource: Charts.SingleValueSource { value: Kirigami.Theme.highlightColor }
0046
0047 ChartControls.GridLines {
0048 anchors.fill: parent
0049 z: -1
0050
0051 chart: fpsChart
0052
0053 direction: ChartControls.GridLines.Vertical;
0054
0055 major.visible: false
0056
0057 minor.frequency: 10
0058 minor.lineWidth: 1
0059 minor.color: root.gridColor
0060 }
0061 }
0062
0063 Charts.BarChart {
0064 Layout.fillWidth: true
0065 Layout.fillHeight: true
0066
0067 yRange.minimum: 100
0068 yRange.increment: 10
0069
0070 xRange.from: 0
0071 xRange.to: 50
0072 xRange.automatic: false
0073
0074 indexingMode: Charts.Chart.IndexSourceValues
0075
0076 valueSources: Charts.HistoryProxySource {
0077 source: Charts.SingleValueSource {
0078 value: root.effect.paintDuration
0079 }
0080 maximumHistory: 100
0081 fillMode: Charts.HistoryProxySource.FillFromStart
0082 }
0083
0084 colorSource: Charts.HistoryProxySource {
0085 source: Charts.SingleValueSource {
0086 value: root.effect.paintColor
0087 }
0088 maximumHistory: 100
0089 fillMode: Charts.HistoryProxySource.FillFromStart
0090 }
0091
0092 ChartControls.GridLines {
0093 anchors.fill: parent
0094 z: -1
0095
0096 chart: parent
0097
0098 direction: ChartControls.GridLines.Vertical;
0099
0100 major.visible: false
0101
0102 minor.frequency: 10
0103 minor.lineWidth: 1
0104 minor.color: root.gridColor
0105 }
0106
0107 Label {
0108 anchors.top: parent.top
0109 anchors.horizontalCenter: parent.horizontalCenter
0110 text: i18nc("@label", "Paint Duration")
0111 font: Kirigami.Theme.smallFont
0112 }
0113 }
0114
0115 Charts.BarChart {
0116 Layout.fillWidth: true
0117 Layout.fillHeight: true
0118
0119 yRange.minimum: Qt.application.screens[0].width * Qt.application.screens[0].height
0120 yRange.increment: 500000
0121
0122 xRange.from: 0
0123 xRange.to: 50
0124 xRange.automatic: false
0125
0126 indexingMode: Charts.Chart.IndexSourceValues
0127
0128 valueSources: Charts.HistoryProxySource {
0129 source: Charts.SingleValueSource {
0130 value: root.effect.paintAmount
0131 }
0132 maximumHistory: 100
0133 fillMode: Charts.HistoryProxySource.FillFromStart
0134 }
0135
0136 colorSource: Charts.HistoryProxySource {
0137 source: Charts.SingleValueSource {
0138 value: root.effect.paintColor
0139 }
0140 maximumHistory: 100
0141 fillMode: Charts.HistoryProxySource.FillFromStart
0142 }
0143
0144 ChartControls.GridLines {
0145 anchors.fill: parent
0146 z: -1
0147
0148 chart: parent
0149
0150 direction: ChartControls.GridLines.Vertical;
0151
0152 major.visible: false
0153
0154 minor.frequency: 100000
0155 minor.lineWidth: 1
0156 minor.color: root.gridColor
0157 }
0158
0159 Label {
0160 anchors.top: parent.top
0161 anchors.horizontalCenter: parent.horizontalCenter
0162 text: i18nc("@label", "Paint Amount")
0163 font: Kirigami.Theme.smallFont
0164 }
0165 }
0166 }
0167
0168 RowLayout {
0169 Layout.fillWidth: true
0170
0171 ChartControls.LegendDelegate {
0172 Layout.fillWidth: true
0173 Layout.preferredWidth: 0
0174
0175 name: i18nc("@label", "Current FPS")
0176 value: root.effect.fps
0177 color: Kirigami.Theme.highlightColor
0178 }
0179
0180 ChartControls.LegendDelegate {
0181 Layout.fillWidth: true
0182 Layout.preferredWidth: 0
0183
0184 name: i18nc("@label", "Maximum FPS")
0185 value: root.effect.maximumFps
0186 color: Kirigami.Theme.neutralTextColor
0187 }
0188 }
0189
0190 Label {
0191 Layout.fillWidth: true
0192 text: i18nc("@label", "This effect is not a benchmark")
0193 }
0194 }
0195 }