Warning, /pim/itinerary/src/app/TransferDelegate.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2019 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 0012 import org.kde.itinerary 0013 import org.kde.kirigamiaddons.formcard as FormCard 0014 0015 FormCard.FormCard { 0016 id: root 0017 width: ListView.view.width 0018 0019 required property var transfer 0020 property bool journeyDetailsExpanded: false 0021 property QtObject controller: TransferDelegateController { 0022 transfer: root.transfer 0023 } 0024 FormCard.AbstractFormDelegate { 0025 background: Rectangle { 0026 id: headerBackground 0027 color: Kirigami.Theme.backgroundColor 0028 Kirigami.Theme.colorSet: controller.isCurrent ? Kirigami.Theme.Selection : Kirigami.Theme.Header 0029 Kirigami.Theme.inherit: false 0030 Rectangle { 0031 id: progressBar 0032 visible: controller.isCurrent 0033 anchors.bottom: headerBackground.bottom 0034 anchors.left: headerBackground.left 0035 height: Kirigami.Units.smallSpacing 0036 width: controller.progress * headerBackground.width 0037 color: Kirigami.Theme.visitedLinkColor 0038 } 0039 } 0040 onClicked: { 0041 if (transfer.state == Transfer.Selected) { 0042 journeyDetailsExpanded = !journeyDetailsExpanded; 0043 } else { 0044 applicationWindow().pageStack.push(detailsComponent); 0045 } 0046 } 0047 contentItem: RowLayout { 0048 id: headerLayout 0049 anchors.fill: parent 0050 anchors.margins: Kirigami.Units.largeSpacing 0051 0052 Kirigami.Icon { 0053 source: "qrc:///images/transfer.svg" 0054 Layout.preferredWidth: Kirigami.Units.iconSizes.smallMedium 0055 Layout.preferredHeight: Layout.preferredWidth 0056 color: Kirigami.Theme.textColor 0057 isMask: true 0058 } 0059 QQC2.Label { 0060 id: headerLabel 0061 text: i18n("%1 to %2", transfer.fromName, transfer.toName) 0062 color: Kirigami.Theme.textColor 0063 Layout.fillWidth: true 0064 elide: Text.ElideRight 0065 wrapMode: Text.WordWrap 0066 maximumLineCount: 2 0067 Accessible.ignored: true 0068 } 0069 QQC2.Label { 0070 text: Localizer.formatTime(transfer.journey, "scheduledDepartureTime") 0071 visible: transfer.state == Transfer.Selected 0072 color: Kirigami.Theme.textColor 0073 Accessible.ignored: !visible 0074 } 0075 QQC2.Label { 0076 text: (transfer.journey.departureDelay >= 0 ? "+" : "") + transfer.journey.departureDelay 0077 color: (transfer.journey.departureDelay > 1) ? Kirigami.Theme.negativeTextColor : Kirigami.Theme.positiveTextColor 0078 visible: transfer.state == Transfer.Selected && transfer.journey.hasExpectedDepartureTime 0079 Accessible.ignored: !visible 0080 } 0081 0082 QQC2.BusyIndicator { 0083 running: visible 0084 visible: transfer.state == Transfer.Searching 0085 Accessible.ignored: !visible 0086 } 0087 } 0088 } 0089 0090 Repeater { 0091 id: journeyRepeater 0092 delegate: JourneySectionDelegate{ 0093 Layout.fillWidth: true 0094 modelLength: journeyRepeater.count - 1 0095 0096 } 0097 model: (transfer.state == Transfer.Selected && journeyDetailsExpanded) ? transfer.journey.sections : 0 0098 } 0099 0100 JourneySummaryDelegate { 0101 journey: transfer.journey 0102 visible: transfer.state == Transfer.Selected && !journeyDetailsExpanded 0103 Layout.fillWidth: true 0104 onClicked: journeyDetailsExpanded = true 0105 } 0106 0107 FormCard.FormButtonDelegate { 0108 icon.name: "checkmark" 0109 text: i18n("Select transfer") 0110 onClicked: applicationWindow().pageStack.push(detailsComponent) 0111 visible: transfer.state === Transfer.Pending 0112 || transfer.state === Transfer.Searching 0113 || transfer.state === Transfer.Selected && journeyDetailsExpanded 0114 Accessible.ignored: !visible 0115 } 0116 0117 FormCard.FormButtonDelegate { 0118 icon.name: "edit-delete" 0119 text: i18n("Delete transfer") 0120 onClicked: TransferManager.discardTransfer(transfer) 0121 visible: transfer.state == Transfer.Pending || transfer.state == Transfer.Searching 0122 Accessible.ignored: !visible 0123 } 0124 Item{ 0125 Component { 0126 id: detailsComponent 0127 TransferPage { 0128 transfer: root.transfer 0129 } 0130 } 0131 } 0132 0133 Accessible.name: headerLabel.text 0134 }