Warning, /plasma/libksysguard/faces/facepackages/piechart/contents/ui/PieChart.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 SPDX-FileCopyrightText: 2019 Marco Martin <mart@kde.org>
0003 SPDX-FileCopyrightText: 2019 David Edmundson <davidedmundson@kde.org>
0004 SPDX-FileCopyrightText: 2019 Arjen Hiemstra <ahiemstra@heimr.nl>
0005 SPDX-FileCopyrightText: 2019 Kai Uwe Broulik <kde@broulik.de>
0006
0007 SPDX-License-Identifier: LGPL-2.0-or-later
0008 */
0009
0010 import QtQuick
0011 import QtQuick.Layouts
0012 import org.kde.kirigami as Kirigami
0013
0014 import org.kde.ksysguard.sensors as Sensors
0015 import org.kde.ksysguard.faces as Faces
0016
0017 import org.kde.quickcharts as Charts
0018 import org.kde.quickcharts.controls as ChartControls
0019
0020
0021 ChartControls.PieChartControl {
0022 id: chart
0023
0024 property alias headingSensor: sensor.sensorId
0025 property alias sensors: sensorsModel.sensors
0026 property alias sensorsModel: sensorsModel
0027
0028 property int updateRateLimit
0029
0030 Layout.minimumHeight: root.formFactor == Faces.SensorFace.Vertical ? width : Kirigami.Units.gridUnit
0031
0032 leftPadding: 0
0033 rightPadding: 0
0034 topPadding: 0
0035 bottomPadding: 0
0036
0037 readonly property real rangeFrom: root.controller.faceConfiguration.rangeFrom *
0038 root.controller.faceConfiguration.rangeFromMultiplier
0039
0040 readonly property real rangeTo: root.controller.faceConfiguration.rangeTo *
0041 root.controller.faceConfiguration.rangeToMultiplier
0042
0043 chart.smoothEnds: root.controller.faceConfiguration.smoothEnds
0044 chart.fromAngle: root.controller.faceConfiguration.fromAngle
0045 chart.toAngle: root.controller.faceConfiguration.toAngle
0046
0047 range {
0048 from: chart.rangeFrom
0049 to: chart.rangeTo
0050 automatic: root.controller.faceConfiguration.rangeAuto
0051 }
0052
0053 chart.backgroundColor: Qt.rgba(0.0, 0.0, 0.0, 0.2)
0054
0055 valueSources: Charts.ModelSource {
0056 model: Sensors.SensorDataModel {
0057 id: sensorsModel
0058 sensors: root.controller.highPrioritySensorIds
0059 updateRateLimit: chart.updateRateLimit
0060 sensorLabels: root.controller.sensorLabels
0061 }
0062 roleName: "Value"
0063 indexColumns: true
0064 }
0065 chart.nameSource: Charts.ModelSource {
0066 roleName: "Name";
0067 model: valueSources[0].model;
0068 indexColumns: true
0069 }
0070 chart.shortNameSource: Charts.ModelSource {
0071 roleName: "ShortName";
0072 model: valueSources[0].model;
0073 indexColumns: true
0074 }
0075 chart.colorSource: root.colorSource
0076
0077 Sensors.Sensor {
0078 id: sensor
0079 sensorId: root.controller.totalSensors.length > 0 ? root.controller.totalSensors[0] : ""
0080 updateRateLimit: chart.updateRateLimit
0081 }
0082
0083 UsedTotalDisplay {
0084 anchors.fill: parent
0085
0086 usedSensor: root.controller.totalSensors.length > 0 ? root.controller.totalSensors[0] : ""
0087 totalSensor: root.controller.totalSensors.length > 1 ? root.controller.totalSensors[1] : ""
0088
0089 contentMargin: chart.chart.thickness
0090 updateRateLimit: chart.updateRateLimit
0091 }
0092 }
0093