Warning, /education/marble/src/apps/marble-maps/PlacemarkDialog.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2015 Dennis Nienhüser <nienhueser@kde.org> 0004 // 0005 0006 import QtQuick 2.3 0007 import QtQuick.Window 2.2 0008 import QtQuick.Controls 2.0 0009 import QtQuick.Layouts 1.3 0010 import QtQuick.Dialogs 1.2 0011 0012 import org.kde.kirigami 2.0 as Kirigami 0013 0014 import org.kde.marble 0.20 0015 0016 Item { 0017 id: root 0018 0019 property var placemark: null 0020 property variant map 0021 property alias showOsmTags: tagsView.visible 0022 property bool showAccessibility: false 0023 0024 height: placemark === null ? 0 : Screen.pixelDensity * 4 +infoLayout.height 0025 0026 0027 SystemPalette { 0028 id: palette 0029 colorGroup: SystemPalette.Active 0030 } 0031 0032 Rectangle { 0033 anchors.fill: parent 0034 color: palette.base 0035 } 0036 0037 Bookmarks { 0038 id: bookmarks 0039 } 0040 0041 onMapChanged: bookmarks.map = root.map 0042 0043 0044 Column { 0045 id: infoLayout 0046 anchors { 0047 top: parent.top 0048 left: parent.left 0049 right: parent.right 0050 margins: Screen.pixelDensity * 2 0051 } 0052 0053 IconText { 0054 id: name 0055 width: parent.width 0056 visible: text.length > 0 0057 text: placemark === null ? "" : placemark.name 0058 maximumLineCount: 2 0059 font.pointSize: 20 0060 } 0061 0062 IconText { 0063 width: parent.width 0064 visible: text.length > 0 0065 text: placemark === null ? "" : placemark.description 0066 } 0067 0068 IconText { 0069 width: parent.width 0070 visible: text.length > 0 0071 text: placemark === null ? "" : placemark.address 0072 maximumLineCount: 4 0073 } 0074 0075 IconText { 0076 width: parent.width 0077 visible: routesItem.count > 0 0078 text: "<a href=\"#\">Part of " + routesItem.count + " routes</a>" 0079 maximumLineCount: 4 0080 linkColor: palette.text 0081 onLinkActivated: routesDialog.open() 0082 } 0083 0084 IconText { 0085 width: parent.width 0086 visible: url.length > 0 0087 property string url: placemark === null ? "" : placemark.website 0088 text: "<a href=\"" + url + "\">" + url + "</a>" 0089 icon: "qrc:/material/browser.svg" 0090 maximumLineCount: 4 0091 onLinkActivated: Qt.openUrlExternally(link) 0092 } 0093 0094 IconText { 0095 width: parent.width 0096 visible: phone.length > 0 0097 property string phone: placemark === null ? "" : placemark.phone 0098 text: "<a href=\"tel:" + phone + "\">" + phone + "</a>" 0099 icon: "qrc:/material/phone.svg" 0100 maximumLineCount: 1 0101 onLinkActivated: Qt.openUrlExternally(link) 0102 } 0103 0104 IconText { 0105 width: parent.width 0106 visible: url.length > 0 0107 property string url: placemark === null ? "" : placemark.wikipedia 0108 text: "<a href=\"" + url + "\">Wikipedia</a>" 0109 icon: "qrc:/material/browser.svg" 0110 maximumLineCount: 4 0111 onLinkActivated: Qt.openUrlExternally(link) 0112 } 0113 0114 IconText { 0115 width: parent.width 0116 visible: text.length > 0 0117 text: placemark === null ? "" : placemark.openingHours 0118 icon: "qrc:/material/access_time.svg" 0119 } 0120 0121 IconText { 0122 width: parent.width 0123 visible: root.showAccessibility && text.length > 0 0124 text: placemark === null ? "" : placemark.wheelchairInfo 0125 icon: "qrc:/material/wheelchair.svg" 0126 } 0127 0128 IconText { 0129 width: parent.width 0130 visible: text.length > 0 0131 text: placemark === null ? "" : placemark.wifiAvailable 0132 icon: "qrc:/material/wlan-available.svg" 0133 } 0134 0135 IconText { 0136 width: parent.width 0137 visible: text.length > 0 0138 text: placemark === null ? "" : "<a href=\"#\"#>" + placemark.coordinates + "</a>" 0139 icon: "qrc:/material/place.svg" 0140 linkColor: palette.text 0141 onLinkActivated: marbleMaps.centerOnCoordinates(placemark.longitude, placemark.latitude) 0142 } 0143 0144 ListView { 0145 id: tagsView 0146 visible: false 0147 width: parent.width 0148 height: Math.min(contentHeight, Screen.pixelDensity * 24) 0149 clip: true 0150 model: placemark ? placemark.tags : undefined 0151 delegate: IconText { 0152 width: tagsView.width; 0153 icon: "qrc:/material/label.svg" 0154 text: modelData 0155 } 0156 0157 ScrollBar.vertical: ScrollBar {} 0158 } 0159 } 0160 0161 Kirigami.OverlaySheet { 0162 id: routesDialog 0163 ColumnLayout { 0164 property int implicitWidth: root.width 0165 id: columnLayout 0166 Label{ 0167 Layout.fillWidth: true 0168 text: qsTr("<h2>Routes</h2>") 0169 0170 } 0171 RoutesItem { 0172 id: routesItem 0173 Layout.fillWidth: true 0174 model: placemark === null ? undefined : placemark.routeRelationModel 0175 onHighlightChanged: map.highlightRouteRelation(oid, enabled) 0176 } 0177 0178 } 0179 } 0180 }