Warning, /pim/itinerary/src/app/TransportIcon.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2023 Volker Krause <vkrause@kde.org> 0003 SPDX-License-Identifier: LGPL-2.0-or-later 0004 */ 0005 0006 import QtQuick 0007 import QtQuick.Layouts 0008 import org.kde.kirigami as Kirigami 0009 0010 /** Displays a transport line or mode logo/icon. 0011 * Mainly to hide ugly implementation details of Icon not 0012 * handling non-square SVG assets in the way we need it here. 0013 */ 0014 Item { 0015 id: root 0016 // properties match those of Icon 0017 property string source 0018 property alias isMask: __icon.isMask 0019 property alias color: __icon.color 0020 0021 // icon size (height for non-square ones) 0022 property int size: Kirigami.Units.iconSizes.small 0023 0024 property bool __isIcon: !source.startsWith("file:") 0025 0026 0027 implicitWidth: __isIcon ? root.size : Math.round(root.size * __image.implicitWidth / __image.implicitHeight) 0028 implicitHeight: root.size 0029 0030 Layout.preferredWidth: root.implicitWidth 0031 Layout.preferredHeight: root.implicitHeight 0032 0033 Kirigami.Icon { 0034 id: __icon 0035 source: root.__isIcon ? root.source : "" 0036 visible: source !== "" 0037 anchors.fill: parent 0038 } 0039 Image { 0040 id: __image 0041 source: root.__isIcon ? "" : root.source 0042 visible: source !== "" 0043 anchors.fill: parent 0044 fillMode: Image.PreserveAspectFit 0045 } 0046 }