Warning, /pim/itinerary/src/app/IndoorMapPlatformSheet.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.Layouts 0009 import QtQuick.Controls as QQC2 0010 import org.kde.kirigami as Kirigami 0011 import org.kde.kpublictransport as PublicTransport 0012 import org.kde.kosmindoormap 0013 import org.kde.itinerary 0014 0015 Kirigami.OverlaySheet { 0016 id: platformSheet 0017 property var model 0018 0019 header: Kirigami.Heading { 0020 text: i18n("Find Platform") 0021 } 0022 0023 ListView { 0024 model: platformSheet.model 0025 clip: true 0026 Layout.preferredWidth: Kirigami.Units.gridUnit * 25 0027 0028 Component { 0029 id: platformDelegate 0030 QQC2.ItemDelegate { 0031 property var platform: model 0032 width: ListView.view.width 0033 contentItem: Row { 0034 spacing: Kirigami.Units.smallSpacing 0035 QQC2.Label { 0036 id: label 0037 text: { 0038 if (platform.isDeparturePlatform && platform.isArrivalPlatform) 0039 return i18nc("train arrival/departure platform", "%1 (arrival/departure)", platform.display); 0040 if (platform.isDeparturePlatform) 0041 return i18nc("train departure platform", "%1 (departure)", platform.display); 0042 if (platform.isArrivalPlatform) 0043 return i18nc("train arrival platform", "%1 (arrival)", platform.display); 0044 return platform.display 0045 } 0046 } 0047 0048 Repeater { 0049 model: platform.lines 0050 delegate: Image { 0051 height: Kirigami.Units.iconSizes.small 0052 width: Math.round(Kirigami.Units.iconSizes.small * implicitWidth / implicitHeight) 0053 anchors.verticalCenter: label.verticalCenter 0054 visible: source != "" 0055 source: { 0056 switch (platform.mode) { 0057 case Platform.Rail: 0058 return PublicTransport.LineMetaData.lookup(modelData, platform.coordinate.y, platform.coordinate.x, PublicTransport.Line.Train, true).logo; 0059 case Platform.Tram: 0060 return PublicTransport.LineMetaData.lookup(modelData, platform.coordinate.y, platform.coordinate.x, PublicTransport.Line.Tramway, true).logo; 0061 case Platform.Subway: 0062 return PublicTransport.LineMetaData.lookup(modelData, platform.coordinate.y, platform.coordinate.x, PublicTransport.Line.Metro, true).logo; 0063 } 0064 return ""; 0065 } 0066 } 0067 } 0068 } 0069 highlighted: false 0070 onClicked: { 0071 map.view.floorLevel = model.level 0072 map.view.centerOnGeoCoordinate(model.coordinate); 0073 map.view.setZoomLevel(19, Qt.point(map.width / 2.0, map.height/ 2.0)); 0074 platformSheet.close(); 0075 } 0076 } 0077 } 0078 0079 section.property: "mode" 0080 section.delegate: Kirigami.ListSectionHeader { 0081 text: switch(parseInt(section)) { 0082 case Platform.Rail: return i18n("Railway"); 0083 case Platform.LightRail: return i18n("Light Rail"); 0084 case Platform.Subway: return i18n("Subway"); 0085 case Platform.Tram: return i18n("Tramway"); 0086 case Platform.Bus: return i18n("Bus"); 0087 default: return section; 0088 } 0089 width: ListView.view.width 0090 } 0091 section.criteria: ViewSection.FullString 0092 0093 delegate: platformDelegate 0094 } 0095 }