Warning, /libraries/kpublictransport/tests/onboard.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2022 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 QtQuick.Controls as QQC2 0009 import QtLocation as QtLocation 0010 import QtPositioning 0011 import org.kde.kirigami as Kirigami 0012 import org.kde.kpublictransport 0013 import org.kde.kpublictransport.onboard 0014 0015 Kirigami.ApplicationWindow { 0016 title: "Onboard API Demo" 0017 0018 width: 540 0019 height: 720 0020 0021 pageStack.initialPage: onboardPage 0022 0023 OnboardStatus { 0024 id: onboardStatus 0025 positionUpdateInterval: 10 0026 journeyUpdateInterval: 60 0027 } 0028 0029 Component { 0030 id: onboardPage 0031 0032 Kirigami.Page { 0033 QQC2.SwipeView { 0034 id: swipeView 0035 anchors.fill: parent 0036 0037 Kirigami.Page { 0038 header: Kirigami.FormLayout { 0039 QQC2.Label { 0040 text: onboardStatus.status 0041 Kirigami.FormData.label: "Status" 0042 } 0043 QQC2.Label { 0044 text: onboardStatus.latitude + " x " + onboardStatus.longitude 0045 Kirigami.FormData.label: "Position" 0046 } 0047 QQC2.Label { 0048 text: onboardStatus.speed 0049 Kirigami.FormData.label: "Speed" 0050 } 0051 QQC2.Label { 0052 text: onboardStatus.heading 0053 Kirigami.FormData.label: "Heading" 0054 } 0055 } 0056 0057 Kirigami.ColumnView.preventStealing: true 0058 0059 QtLocation.Plugin { 0060 id: mapPlugin 0061 name: "osm" 0062 QtLocation.PluginParameter { name: "osm.useragent"; value: "KPublicTransport Onboard API demo" } 0063 QtLocation.PluginParameter { name: "osm.mapping.providersrepository.address"; value: "https://autoconfig.kde.org/qtlocation/" } 0064 } 0065 0066 QtLocation.Map { 0067 id: map 0068 anchors.fill: parent 0069 center: QtPositioning.coordinate(onboardStatus.latitude, onboardStatus.longitude) 0070 plugin: mapPlugin 0071 zoomLevel: 14 0072 0073 PinchHandler { 0074 id: pinch 0075 target: null 0076 onActiveChanged: if (active) { 0077 map.startCentroid = map.toCoordinate(pinch.centroid.position, false) 0078 } 0079 onScaleChanged: (delta) => { 0080 map.zoomLevel += Math.log2(delta) 0081 map.alignCoordinateToPoint(map.startCentroid, pinch.centroid.position) 0082 } 0083 onRotationChanged: (delta) => { 0084 map.bearing -= delta 0085 map.alignCoordinateToPoint(map.startCentroid, pinch.centroid.position) 0086 } 0087 grabPermissions: PointerHandler.TakeOverForbidden 0088 } 0089 WheelHandler { 0090 id: wheel 0091 rotationScale: 1/120 0092 property: "zoomLevel" 0093 } 0094 DragHandler { 0095 id: drag 0096 target: null 0097 onTranslationChanged: (delta) => map.pan(-delta.x, -delta.y) 0098 } 0099 Shortcut { 0100 enabled: map.zoomLevel < map.maximumZoomLevel 0101 sequence: StandardKey.ZoomIn 0102 onActivated: map.zoomLevel = Math.round(map.zoomLevel + 1) 0103 } 0104 Shortcut { 0105 enabled: map.zoomLevel > map.minimumZoomLevel 0106 sequence: StandardKey.ZoomOut 0107 onActivated: map.zoomLevel = Math.round(map.zoomLevel - 1) 0108 } 0109 0110 QtLocation.MapQuickItem { 0111 coordinate: QtPositioning.coordinate(onboardStatus.latitude, onboardStatus.longitude) 0112 anchorPoint { x: icon.width / 2; y: icon.height / 2 } 0113 visible: onboardStatus.hasPosition 0114 sourceItem: Kirigami.Icon { 0115 id: icon 0116 source: "go-up-symbolic" 0117 width: height 0118 height: Kirigami.Units.iconSizes.large 0119 color: Kirigami.Theme.negativeTextColor 0120 rotation: onboardStatus.hasHeading ? onboardStatus.heading : 0 0121 transformOrigin: Item.Center 0122 onTransformOriginChanged: icon.transformOrigin = Item.Center 0123 } 0124 } 0125 } 0126 } 0127 0128 JourneySectionPage { 0129 journeySection: onboardStatus.journey.sections[0] 0130 } 0131 } 0132 0133 footer: Kirigami.NavigationTabBar { 0134 actions: [ 0135 Kirigami.Action { 0136 text: "Position" 0137 icon.name: 'map-symbolic' 0138 onTriggered: swipeView.currentIndex = 0 0139 checked: swipeView.currentIndex === 0 0140 }, 0141 Kirigami.Action { 0142 text: "Journey" 0143 icon.name: 'path-mode-polyline' 0144 onTriggered: swipeView.currentIndex = 1; 0145 checked: swipeView.currentIndex === 1 0146 } 0147 ] 0148 } 0149 } 0150 } 0151 }