Warning, /libraries/kpublictransport/tests/pureqmltest.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 
0013 Kirigami.ApplicationWindow {
0014     title: "Pure QML Journey Query Example"
0015     width: 640
0016     height: 800
0017 
0018     pageStack.initialPage: journyQueryPage
0019 
0020     Manager {
0021         id: ptMgr;
0022     }
0023 
0024     JourneyQueryModel {
0025         id: journeyModel
0026         manager: ptMgr
0027     }
0028 
0029     globalDrawer: Kirigami.GlobalDrawer {
0030         actions: [
0031             Kirigami.Action {
0032                 icon.name: "help-about-symbolic"
0033                 text: "Current Data Sources"
0034                 enabled: journeyModel.attributions.length > 0
0035                 onTriggered: {
0036                     aboutSheet.attributions = Qt.binding(function() { return journeyModel.attributions; });
0037                     aboutSheet.open();
0038                 }
0039             },
0040             Kirigami.Action {
0041                 icon.name: "help-about-symbolic"
0042                 text: "All Data Sources"
0043                 onTriggered: {
0044                     aboutSheet.attributions = Qt.binding(function() { return ptMgr.attributions; });
0045                     aboutSheet.open();
0046                 }
0047             }
0048         ]
0049     }
0050 
0051     AttributionSheet { id: aboutSheet }
0052 
0053     Component {
0054         id: journyQueryPage
0055         Kirigami.Page {
0056             ColumnLayout {
0057                 anchors.fill: parent
0058                 QQC2.TextField {
0059                     id: fromName
0060                 }
0061                 QQC2.TextField {
0062                     id: toName
0063                 }
0064                 QQC2.Button {
0065                     text: "Query"
0066                     onClicked: {
0067                         var from = journeyModel.request.from;
0068                         from.name = fromName.text;
0069                         journeyModel.request.from = from;
0070                         var to = journeyModel.request.to;
0071                         to.name = toName.text;
0072                         journeyModel.request.to = to;
0073                     }
0074                 }
0075 
0076                 ListView {
0077                     Layout.fillHeight: true
0078                     Layout.fillWidth: true
0079                     model: journeyModel
0080                     clip: true
0081                     delegate: QQC2.ItemDelegate {
0082                         width: ListView.view.width
0083                         contentItem: GridLayout {
0084                             rows: 2
0085                             columns: 2
0086                             QQC2.Label {
0087                                 text: journey.scheduledDepartureTime
0088                             }
0089                             QQC2.Label {
0090                                 Layout.fillWidth: true
0091                                 text: journey.sections[0].from.name;
0092                             }
0093                             QQC2.Label {
0094                                 text: journey.scheduledArrivalTime
0095                             }
0096                             QQC2.Label {
0097                                 Layout.fillWidth: true
0098                                 text: journey.sections[journey.sections.length - 1].to.name;
0099                             }
0100                         }
0101                     }
0102 
0103                     QQC2.BusyIndicator {
0104                         anchors.centerIn: parent
0105                         running: journeyModel.loading
0106                     }
0107 
0108                     QQC2.Label {
0109                         anchors.centerIn: parent
0110                         width: parent.width
0111                         text: journeyModel.errorMessage
0112                         color: Kirigami.Theme.negativeTextColor
0113                         wrapMode: Text.Wrap
0114                     }
0115                 }
0116             }
0117         }
0118     }
0119 }