Warning, /plasma/libksysguard/faces/facepackages/piechart/contents/ui/UsedTotalDisplay.qml is written in an unsupported language. File is not indexed.

0001 /*
0002     SPDX-FileCopyrightText: 2020 Arjen Hiemstra <ahiemstra@heimr.nl>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 import QtQuick
0008 import QtQuick.Controls
0009 import QtQuick.Layouts
0010 
0011 import org.kde.kirigami as Kirigami
0012 
0013 import org.kde.ksysguard.formatter as Formatter
0014 import org.kde.ksysguard.sensors as Sensors
0015 
0016 Item {
0017     id: root
0018 
0019     property alias usedSensor: usedSensorObject.sensorId
0020     property alias totalSensor: totalSensorObject.sensorId
0021 
0022     property int updateRateLimit
0023 
0024     property real contentMargin: 10
0025 
0026     ColumnLayout {
0027         id: layout
0028 
0029         anchors.centerIn: parent
0030         width: Math.min(parent.width, parent.height) * 0.75
0031 
0032         spacing: 0
0033 
0034         Label {
0035             id: usedLabel
0036 
0037             Layout.fillWidth: true
0038 
0039             text: chart.sensorsModel.sensorLabels[usedSensor] ||  (usedSensorObject.name + (usedSensorObject.shortName.length > 0 ? "\x9C" + usedSensorObject.shortName : ""))
0040             horizontalAlignment: Text.AlignHCenter
0041             font: Kirigami.Theme.smallFont
0042             color: Kirigami.Theme.disabledTextColor
0043             visible: totalValue.visible
0044             elide: Text.ElideRight
0045 
0046             opacity: layout.y > root.contentMargin ? 1 : 0
0047         }
0048 
0049         Label {
0050             id: usedValue
0051             Layout.fillWidth: true
0052             text: usedSensorObject.formattedValue
0053             horizontalAlignment: Text.AlignHCenter
0054 
0055             fontSizeMode: Text.HorizontalFit
0056             minimumPointSize: 7
0057         }
0058 
0059         Kirigami.Separator {
0060             Layout.alignment: Qt.AlignHCenter;
0061             Layout.preferredWidth: Math.max(usedValue.contentWidth, totalValue.contentWidth)
0062             visible: totalValue.visible
0063         }
0064 
0065         Label {
0066             id: totalValue
0067 
0068             Layout.fillWidth: true
0069 
0070             text: totalSensorObject.formattedValue
0071             horizontalAlignment: Text.AlignHCenter
0072             visible: root.totalSensor.length > 0 && contentWidth < layout.width
0073         }
0074 
0075         Label {
0076             id: totalLabel
0077 
0078             Layout.fillWidth: true
0079 
0080             text: chart.sensorsModel.sensorLabels[totalSensor] || (totalSensorObject.name + (totalSensorObject.shortName.length > 0 ? "\x9C" + totalSensorObject.shortName : ""))
0081             horizontalAlignment: Text.AlignHCenter
0082             font: Kirigami.Theme.smallFont
0083             color: Kirigami.Theme.disabledTextColor
0084             visible: totalValue.visible
0085             elide: Text.ElideRight
0086 
0087             opacity: layout.y + layout.height < root.height - root.contentMargin ? 1 : 0
0088         }
0089 
0090         Sensors.Sensor {
0091             id: usedSensorObject
0092             updateRateLimit: root.updateRateLimit
0093         }
0094 
0095         Sensors.Sensor {
0096             id: totalSensorObject
0097             updateRateLimit: root.updateRateLimit
0098         }
0099     }
0100 }