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