Warning, /plasma/libksysguard/faces/import/SensorFace.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 import org.kde.quickcharts as Charts
0015 import org.kde.ksysguard.sensors as Sensors
0016 import org.kde.ksysguard.faces as Faces
0017 
0018 Faces.AbstractSensorFace {
0019     id: root
0020 
0021     property list<Kirigami.Action> actions
0022 
0023     implicitWidth: contentItem.implicitWidth
0024     implicitHeight: contentItem.implicitHeight
0025     Layout.minimumWidth: contentItem.Layout.minimumWidth
0026     Layout.minimumHeight: contentItem.Layout.minimumHeight
0027     Layout.preferredWidth: contentItem.Layout.preferredWidth
0028     Layout.preferredHeight: contentItem.Layout.preferredHeight
0029     Layout.maximumWidth: contentItem.Layout.maximumWidth
0030     Layout.maximumHeight: contentItem.Layout.maximumHeight
0031 
0032     property alias colorSource: colorSource
0033 
0034     Charts.MapProxySource {
0035         id: colorSource
0036         source: Charts.ArraySource {
0037             array: root.controller.highPrioritySensorIds
0038         }
0039         map: root.controller.sensorColors
0040     }
0041     Charts.ColorGradientSource {
0042         baseColor: Kirigami.Theme.highlightColor
0043         itemCount: root.controller.highPrioritySensorIds.length
0044 
0045         onItemCountChanged: generate()
0046         Component.onCompleted: generate()
0047 
0048         function generate() {
0049             //var colors = colorSource.colors;
0050             var savedColors = root.controller.sensorColors;
0051             for (var i = 0; i < root.controller.highPrioritySensorIds.length; ++i) {
0052                 if (!savedColors.hasOwnProperty(root.controller.highPrioritySensorIds[i])) {
0053                     savedColors[root.controller.highPrioritySensorIds[i]] = colors[i];
0054                 } else {
0055                     // Use the darker trick to make Qt validate the scring as a valid color;
0056                     var currentColor = Qt.darker(savedColors[root.controller.highPrioritySensorIds[i]], 1);
0057                     if (!currentColor) {
0058                         savedColors[root.controller.highPrioritySensorIds[i]] = colors[i];
0059                     } else {
0060                         savedColors[root.controller.highPrioritySensorIds[i]] = currentColor;
0061                     }
0062                 }
0063             }
0064             root.controller.sensorColors = savedColors;
0065         }
0066     }
0067 }