Warning, /plasma/libksysguard/faces/facepackages/piechart/contents/ui/FullRepresentation.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
0013 import org.kde.kirigami as Kirigami
0014
0015 import org.kde.ksysguard.sensors as Sensors
0016 import org.kde.ksysguard.faces as Faces
0017
0018 import org.kde.quickcharts as Charts
0019 import org.kde.quickcharts.controls as ChartsControls
0020
0021 Faces.SensorFace {
0022 id: root
0023 readonly property bool showLegend: controller.faceConfiguration.showLegend
0024
0025 Layout.minimumWidth: Kirigami.Units.gridUnit * 8
0026 Layout.preferredWidth: titleMetrics.width
0027
0028 contentItem: ColumnLayout {
0029 spacing: Kirigami.Units.largeSpacing
0030 Kirigami.Heading {
0031 id: heading
0032 Layout.fillWidth: true
0033 horizontalAlignment: Text.AlignHCenter
0034 elide: Text.ElideRight
0035 text: root.controller.title
0036 visible: root.controller.showTitle && text.length > 0
0037 level: 2
0038 TextMetrics {
0039 id: titleMetrics
0040 font: heading.font
0041 text: heading.text
0042 }
0043 }
0044
0045 PieChart {
0046 id: compactRepresentation
0047 Layout.fillWidth: true
0048 Layout.fillHeight: true
0049 Layout.minimumWidth: root.formFactor != Faces.SensorFace.Vertical ? Kirigami.Units.gridUnit * 4 : Kirigami.Units.gridUnit
0050 Layout.minimumHeight: root.formFactor === Faces.SensorFace.Constrained
0051 ? 3 * Kirigami.Units.gridUnit
0052 : 5 * Kirigami.Units.gridUnit
0053 Layout.preferredHeight: 8 * Kirigami.Units.gridUnit
0054 Layout.maximumHeight: Math.max(heading.width, Layout.minimumHeight)
0055 updateRateLimit: root.controller.updateRateLimit
0056 }
0057
0058 Faces.ExtendedLegend {
0059 Layout.fillWidth: true
0060 Layout.fillHeight: true
0061 Layout.minimumHeight: implicitHeight
0062 visible: root.showLegend
0063 chart: compactRepresentation.chart
0064 sourceModel: root.showLegend ? compactRepresentation.sensorsModel : null
0065 sensorIds: root.showLegend ? root.controller.lowPrioritySensorIds : []
0066 updateRateLimit: root.controller.updateRateLimit
0067 }
0068 }
0069 }