Warning, /pim/itinerary/src/app/VehicleLoadIndicator.qml is written in an unsupported language. File is not indexed.

0001 /*
0002     SPDX-FileCopyrightText: 2020 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 import QtQuick
0008 import QtQuick.Controls as QQC2
0009 import org.kde.kirigami as Kirigami
0010 import org.kde.kpublictransport
0011 
0012 Item {
0013     property var loadInformation
0014     implicitWidth: loadIcon.visible ? loadIcon.width : fullMarker.visible ? fullMarker.implicitWidth : 0
0015     implicitHeight: childrenRect.height
0016 
0017     // TODO specify filter criteria like class
0018 
0019     readonly property var maxLoad: {
0020         var load = Load.Unknown;
0021         for (var i = 0; loadInformation != undefined && i < loadInformation.length; ++i) {
0022             load = Math.max(load, loadInformation[i].load);
0023         }
0024         return load;
0025     }
0026 
0027     QQC2.Label {
0028         id: fullMarker
0029         text: i18nc("vehicle load", "FULL")
0030         color: Kirigami.Theme.negativeTextColor
0031         visible: maxLoad == Load.Full
0032         Accessible.ignored: !visible
0033     }
0034 
0035     Kirigami.Icon {
0036         id: loadIcon
0037         visible: maxLoad != Load.Full && maxLoad != Load.Unknown
0038         source: "qrc:///images/seat.svg"
0039         isMask: true
0040         height: Kirigami.Units.iconSizes.small
0041         width: height
0042         color: {
0043             switch (maxLoad) {
0044                 case Load.Low: return Kirigami.Theme.positiveTextColor;
0045                 case Load.Medium: return Kirigami.Theme.neutralTextColor;
0046                 case Load.High: return Kirigami.Theme.negativeTextColor;
0047             }
0048             return Kirigami.Theme.textColor;
0049         }
0050         Accessible.name: {
0051             switch (maxLoad) {
0052                 case Load.Low: return i18nc("vehicle load", "Low");
0053                 case Load.Medium: return i18nc("vehicle load", "Medium")
0054                 case Load.High: return i18nc("vehicle load", "High")
0055             }
0056             return null;
0057         }
0058         Accessible.ignored: !visible
0059     }
0060 }