Warning, /libraries/kpublictransport/src/quick/VehicleSectionItem.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2020-2022 Volker Krause <vkrause@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 import QtQuick 2.5 0008 import org.kde.kpublictransport 1.0 0009 import org.kde.kpublictransport.ui 1.0 0010 0011 /** Displays a single vehicle section. */ 0012 StyledFrameSvgItem { 0013 /** The vehicle section to show. */ 0014 property var section 0015 0016 /** Color to use for the outline/text. */ 0017 property color textColor: "black" 0018 /** Background color to use in first class sections. */ 0019 property color firstClassBackground: "green" 0020 /** Background color to use in second class sections. */ 0021 property color secondClassBackground: "blue" 0022 /** Background color for inaccessible sections (engines, power cars, etc). */ 0023 property color inaccessibleBackground: "gray" 0024 /** Background color for restaurant cars. */ 0025 property color restaurantBackground: "orange" 0026 0027 source: { 0028 var svgName = "passengercar"; 0029 switch (section.type) { 0030 case VehicleSection.ControlCar: 0031 case VehicleSection.PowerCar: 0032 svgName = "controlcar"; 0033 break; 0034 case VehicleSection.Engine: 0035 svgName = "engine"; 0036 break; 0037 } 0038 0039 switch (section.type) { 0040 case VehicleSection.PowerCar: 0041 case VehicleSection.ControlCar: 0042 if (section.connectedSides == VehicleSection.Front) { 0043 svgName += "-back"; 0044 } else { 0045 svgName += "-front"; 0046 } 0047 break; 0048 } 0049 0050 if (section.deckCount > 1) { 0051 switch (section.type) { 0052 case VehicleSection.PassengerCar: 0053 case VehicleSection.RestaurantCar: 0054 case VehicleSection.ControlCar: 0055 case VehicleSection.SleepingCar: 0056 case VehicleSection.CouchetteCar: 0057 case VehicleSection.CarTransportCar: 0058 svgName += "-double-deck"; 0059 break; 0060 } 0061 } 0062 return ":/org.kde.kpublictransport/ui/assets/" + svgName + ".svg"; 0063 } 0064 0065 backgroundColor: { 0066 switch (section.type) { 0067 case VehicleSection.Engine: 0068 case VehicleSection.PowerCar: 0069 case VehicleSection.CarTransportCar: 0070 return inaccessibleBackground; 0071 case VehicleSection.RestaurantCar: 0072 return restaurantBackground; 0073 case VehicleSection.PassengerCar: 0074 case VehicleSection.ControlCar: 0075 case VehicleSection.SleepingCar: 0076 case VehicleSection.CouchetteCar: 0077 if (section.classes == VehicleSection.FirstClass) 0078 return firstClassBackground; 0079 else if (section.classes & VehicleSection.FirstClass) 0080 return Qt.tint(secondClassBackground, Qt.rgba(firstClassBackground.r, firstClassBackground.g, firstClassBackground.b, 0.5)); 0081 } 0082 return secondClassBackground; 0083 } 0084 lineColor: textColor 0085 0086 borderTop: { 0087 switch (section.type) { 0088 case VehicleSection.PowerCar: 0089 case VehicleSection.ControlCar: 0090 return section.connectedSides == VehicleSection.Front ? 12 : 36 0091 case VehicleSection.Engine: 0092 return 22; 0093 } 0094 return 36; 0095 } 0096 borderBottom: 48 - borderTop - 2 0097 }