summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2022-09-16 17:28:47 +0200
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2022-09-21 16:11:53 +0200
commit8e896ffd72d16846349949c552c8e11dda0a12df (patch)
tree0bfae4ea4dd9d2de852c70a6c616e931ade045e4
parentd1e052350e2d90eab5b0e51e3039cef816126891 (diff)
Fix mapviewer example issues and modernize code
Move the example away from imperative coding style, and fix code that didn't following Qt 6 practices or caused warnings to be emitted to the console: Populate all menus consistently through items that bind their enabled state to relevant properties. This avoids that we have to clear and recreate the menus when switching provider. Don't print debug output when updating the position of the minimap. Capture parameters of signals correctly in the handlers. Fix some UI issues: We cannot replace the background of a styled button, so use AbstractButton instead, otherwise the example will generate runtime warnings with some styles, e.g. qrc:/qt-project.org/imports/QtQuick/Controls/macOS/Button.qml:44: TypeError: Property 'styleFont' of object QQuickRectangle(0x7fdfaa4e7bd0) is not a function Also don't squeeze the sliders by setting the spacing to -10, styled sliders will overlap, and don't use anchors on items managed by layouts. Change-Id: I118a52ae3d2ece77c662fd42bb868c9bbcf30e7a Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit ab4b06741ee2dbb70e43ae1660d6ccca4913a32c) Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
-rw-r--r--examples/location/mapviewer/forms/RouteAddressForm.ui.qml6
-rw-r--r--examples/location/mapviewer/forms/RouteCoordinateForm.ui.qml8
-rw-r--r--examples/location/mapviewer/map/MapComponent.qml18
-rw-r--r--examples/location/mapviewer/map/MapSliders.qml8
-rw-r--r--examples/location/mapviewer/map/Marker.qml6
-rw-r--r--examples/location/mapviewer/map/MiniMap.qml4
-rw-r--r--examples/location/mapviewer/mapviewer.qml28
-rw-r--r--examples/location/mapviewer/menus/ItemPopupMenu.qml13
-rw-r--r--examples/location/mapviewer/menus/MainMenu.qml90
-rw-r--r--examples/location/mapviewer/menus/MapPopupMenu.qml36
-rw-r--r--examples/location/mapviewer/menus/MarkerPopupMenu.qml73
11 files changed, 159 insertions, 131 deletions
diff --git a/examples/location/mapviewer/forms/RouteAddressForm.ui.qml b/examples/location/mapviewer/forms/RouteAddressForm.ui.qml
index b6d65436..6316550b 100644
--- a/examples/location/mapviewer/forms/RouteAddressForm.ui.qml
+++ b/examples/location/mapviewer/forms/RouteAddressForm.ui.qml
@@ -105,8 +105,8 @@ Item {
id: label1
text: qsTr("From")
font.bold: true
- anchors.horizontalCenter: parent.horizontalCenter
- Layout.columnSpan : 2
+ Layout.columnSpan: 2
+ Layout.alignment: Qt.AlignHCenter
}
Label {
@@ -143,8 +143,8 @@ Item {
id: label6
text: qsTr("To")
font.bold: true
- anchors.horizontalCenter: parent.horizontalCenter
Layout.columnSpan: 2
+ Layout.alignment: Qt.AlignHCenter
}
Label {
diff --git a/examples/location/mapviewer/forms/RouteCoordinateForm.ui.qml b/examples/location/mapviewer/forms/RouteCoordinateForm.ui.qml
index 78e5eb09..d33aaaae 100644
--- a/examples/location/mapviewer/forms/RouteCoordinateForm.ui.qml
+++ b/examples/location/mapviewer/forms/RouteCoordinateForm.ui.qml
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2017 The Qt Company Ltd.
+** Copyright (C) 2022 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the examples of the Qt Toolkit.
@@ -102,9 +102,9 @@ Item {
Label {
id: label1
text: qsTr("From")
- anchors.horizontalCenter: parent.horizontalCenter
font.bold: true
- Layout.columnSpan : 2
+ Layout.columnSpan: 2
+ Layout.alignment: Qt.AlignHCenter
}
Label {
@@ -130,9 +130,9 @@ Item {
Label {
id: label6
text: qsTr("To")
- anchors.horizontalCenter: parent.horizontalCenter
font.bold: true
Layout.columnSpan: 2
+ Layout.alignment: Qt.AlignHCenter
}
Label {
diff --git a/examples/location/mapviewer/map/MapComponent.qml b/examples/location/mapviewer/map/MapComponent.qml
index a9ace12f..8553cb8d 100644
--- a/examples/location/mapviewer/map/MapComponent.qml
+++ b/examples/location/mapviewer/map/MapComponent.qml
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2017 The Qt Company Ltd.
+** Copyright (C) 2022 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the examples of the Qt Toolkit.
@@ -311,7 +311,7 @@ Map {
mapItems = new Array();
}
- Keys.onPressed: {
+ Keys.onPressed: (event) => {
if (event.key === Qt.Key_Plus) {
map.zoomLevel++;
} else if (event.key === Qt.Key_Minus) {
@@ -464,7 +464,7 @@ Map {
hoverEnabled: false
property variant lastCoordinate
- onPressed : {
+ onPressed : (mouse) => {
map.lastX = mouse.x + parent.x
map.lastY = mouse.y + parent.y
map.pressX = mouse.x + parent.x
@@ -472,7 +472,7 @@ Map {
lastCoordinate = map.toCoordinate(Qt.point(mouse.x, mouse.y))
}
- onPositionChanged: {
+ onPositionChanged: (mouse) => {
if (mouse.button == Qt.LeftButton) {
map.lastX = mouse.x + parent.x
map.lastY = mouse.y + parent.y
@@ -530,7 +530,7 @@ Map {
hoverEnabled: false
property variant lastCoordinate
- onPressed : {
+ onPressed : (mouse) => {
map.lastX = mouse.x + parent.x
map.lastY = mouse.y + parent.y
map.pressX = mouse.x + parent.x
@@ -538,7 +538,7 @@ Map {
lastCoordinate = map.toCoordinate(Qt.point(mouse.x, mouse.y))
}
- onPositionChanged: {
+ onPositionChanged: (mouse) => {
if (Math.abs(map.pressX - parent.x- mouse.x ) > map.jitterThreshold ||
Math.abs(map.pressY - parent.y -mouse.y ) > map.jitterThreshold) {
if (pressed) parent.radius = parent.center.distanceTo(
@@ -550,7 +550,7 @@ Map {
}
}
- onPressAndHold:{
+ onPressAndHold: (mouse) => {
if (Math.abs(map.pressX - parent.x- mouse.x ) < map.jitterThreshold
&& Math.abs(map.pressY - parent.y - mouse.y ) < map.jitterThreshold) {
showPointMenu(lastCoordinate);
@@ -610,7 +610,7 @@ Map {
}
}
- onDoubleClicked: {
+ onDoubleClicked: (mouse) => {
var mouseGeoPos = map.toCoordinate(Qt.point(mouse.x, mouse.y));
var preZoomPoint = map.fromCoordinate(mouseGeoPos, false);
if (mouse.button === Qt.LeftButton) {
@@ -629,7 +629,7 @@ Map {
lastY = -1;
}
- onPressAndHold:{
+ onPressAndHold: (mouse) => {
if (Math.abs(map.pressX - mouse.x ) < map.jitterThreshold
&& Math.abs(map.pressY - mouse.y ) < map.jitterThreshold) {
showMainMenu(lastCoordinate);
diff --git a/examples/location/mapviewer/map/MapSliders.qml b/examples/location/mapviewer/map/MapSliders.qml
index 49fb5659..1a8c8013 100644
--- a/examples/location/mapviewer/map/MapSliders.qml
+++ b/examples/location/mapviewer/map/MapSliders.qml
@@ -70,7 +70,7 @@ Row {
anchors.right: rightEdge() ? parent.right : undefined
anchors.left: rightEdge() ? undefined : parent.left
- Button {
+ AbstractButton {
id: sliderToggler
width: 32
height: 96
@@ -83,11 +83,6 @@ Row {
xScale: rightEdge() ? 1 : -1
}
-// style: ButtonStyle {
-// background: Rectangle {
-// color: "transparent"
-// }
-// }
background: Rectangle {
color: "transparent"
}
@@ -218,7 +213,6 @@ Row {
// The sliders row
Row {
- spacing: -10
id: sliderRow
height: sliderContainer.slidersHeight
diff --git a/examples/location/mapviewer/map/Marker.qml b/examples/location/mapviewer/map/Marker.qml
index 8c5d9284..3566397c 100644
--- a/examples/location/mapviewer/map/Marker.qml
+++ b/examples/location/mapviewer/map/Marker.qml
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2017 The Qt Company Ltd.
+** Copyright (C) 2022 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the examples of the Qt Toolkit.
@@ -79,7 +79,7 @@ MapQuickItem {
drag.target: marker
preventStealing: true
- onPressed : {
+ onPressed : (mouse) => {
map.pressX = mouse.x
map.pressY = mouse.y
map.currentMarker = -1
@@ -91,7 +91,7 @@ MapQuickItem {
}
}
- onPressAndHold:{
+ onPressAndHold: (mouse) => {
if (Math.abs(map.pressX - mouse.x ) < map.jitterThreshold
&& Math.abs(map.pressY - mouse.y ) < map.jitterThreshold) {
var p = map.fromCoordinate(marker.coordinate)
diff --git a/examples/location/mapviewer/map/MiniMap.qml b/examples/location/mapviewer/map/MiniMap.qml
index 43298d85..2fe3093a 100644
--- a/examples/location/mapviewer/map/MiniMap.qml
+++ b/examples/location/mapviewer/map/MiniMap.qml
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2017 The Qt Company Ltd.
+** Copyright (C) 2022 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the examples of the Qt Toolkit.
@@ -119,8 +119,6 @@ Rectangle{
topLeft.longitude= getMapVisibleRegion().topLeft.longitude
bottomRight.latitude = getMapVisibleRegion().bottomRight.latitude
bottomRight.longitude= getMapVisibleRegion().bottomRight.longitude
- console.log("TopLeft: " + topLeft)
- console.log("BotRigh: " + bottomRight)
}
}
}
diff --git a/examples/location/mapviewer/mapviewer.qml b/examples/location/mapviewer/mapviewer.qml
index bad561a6..424e3314 100644
--- a/examples/location/mapviewer/mapviewer.qml
+++ b/examples/location/mapviewer/mapviewer.qml
@@ -60,6 +60,7 @@ ApplicationWindow {
id: appWindow
property variant map
property variant minimap
+ property variant plugin
property variant parameters
//defaults
@@ -70,8 +71,6 @@ ApplicationWindow {
function createMap(provider)
{
- var plugin
-
if (parameters && parameters.length>0)
plugin = Qt.createQmlObject ('import QtLocation; Plugin{ name:"' + provider + '"; parameters: appWindow.parameters}', appWindow)
else
@@ -174,9 +173,11 @@ ApplicationWindow {
MainMenu {
id: mainMenu
+ plugin: appWindow.plugin
function toggleMiniMapState()
{
+ console.log("MiniMap with " + plugin)
if (minimap) {
minimap.destroy()
minimap = null
@@ -200,10 +201,8 @@ ApplicationWindow {
createMap(providerName)
if (map.error === Map.NoError) {
selectMapType(map.activeMapType)
- toolsMenu.createMenu(map);
} else {
- mapTypeMenu.clear();
- toolsMenu.clear();
+ mainMenu.clearMenu(mapTypeMenu)
}
}
@@ -293,11 +292,10 @@ ApplicationWindow {
mapPopupMenu.coordinate = coordinate
mapPopupMenu.markersCount = map.markers.length
mapPopupMenu.mapItemsCount = map.mapItems.length
- mapPopupMenu.update()
mapPopupMenu.popup()
}
- onItemClicked: {
+ onItemClicked: (item) => {
stackView.pop(page)
switch (item) {
case "addMarker":
@@ -328,13 +326,12 @@ ApplicationWindow {
{
stackView.pop(page)
markerPopupMenu.markersCount = map.markers.length
- markerPopupMenu.update()
+ markerPopupMenu.currentMarker = map.currentMarker
markerPopupMenu.popup()
}
function askForCoordinate()
{
- console.log("askForCoordinate")
stackView.push("forms/ReverseGeocode.qml",
{ "title": qsTr("New Coordinate"),
"coordinate": map.markers[map.currentMarker].coordinate})
@@ -349,7 +346,7 @@ ApplicationWindow {
stackView.pop(page)
}
- onItemClicked: {
+ onItemClicked: (item) => {
stackView.pop(page)
switch (item) {
case "deleteMarker":
@@ -399,7 +396,6 @@ ApplicationWindow {
{
stackView.pop(page)
itemPopupMenu.type = type
- itemPopupMenu.update()
itemPopupMenu.popup()
}
@@ -484,7 +480,7 @@ support"
height: page.height
onFollowmeChanged: mainMenu.isFollowMe = map.followme
onSupportedMapTypesChanged: mainMenu.mapTypeMenu.createMenu(map)
- onCoordinatesCaptured: {
+ onCoordinatesCaptured: (latitude, longitude) => {
var text = "<b>" + qsTr("Latitude:") + "</b> " + Helper.roundNumber(latitude,4) + "<br/><b>" + qsTr("Longitude:") + "</b> " + Helper.roundNumber(longitude,4)
stackView.showMessage(qsTr("Coordinates"),text);
}
@@ -516,10 +512,10 @@ support"
stackView.showMessage(title,message);
}
}
- onShowMainMenu: mapPopupMenu.show(coordinate)
- onShowMarkerMenu: markerPopupMenu.show(coordinate)
- onShowRouteMenu: itemPopupMenu.show("Route",coordinate)
- onShowPointMenu: itemPopupMenu.show("Point",coordinate)
+ onShowMainMenu: (coordinate) => mapPopupMenu.show(coordinate)
+ onShowMarkerMenu: (coordinate) => markerPopupMenu.show(coordinate)
+ onShowRouteMenu: (coordinate) => itemPopupMenu.show("Route",coordinate)
+ onShowPointMenu: (coordinate) => itemPopupMenu.show("Point",coordinate)
onShowRouteList: stackView.showRouteListPage()
}
}
diff --git a/examples/location/mapviewer/menus/ItemPopupMenu.qml b/examples/location/mapviewer/menus/ItemPopupMenu.qml
index ea6fd3b9..ff4cc6aa 100644
--- a/examples/location/mapviewer/menus/ItemPopupMenu.qml
+++ b/examples/location/mapviewer/menus/ItemPopupMenu.qml
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2017 The Qt Company Ltd.
+** Copyright (C) 2022 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the examples of the Qt Toolkit.
@@ -55,9 +55,12 @@ Menu {
property variant type
signal itemClicked(string item)
- function update() {
- clear()
- addItem(qsTr("Info")).triggered.connect(function(){itemClicked("show" + type + "Info")})
- addItem(qsTr("Delete")).triggered.connect(function(){itemClicked("delete" + type )})
+ MenuItem {
+ text: qsTr("Info")
+ onTriggered: itemClicked("show" + type + "Info")
+ }
+ MenuItem {
+ text: qsTr("Delete")
+ onTriggered: itemClicked("delete" + type)
}
}
diff --git a/examples/location/mapviewer/menus/MainMenu.qml b/examples/location/mapviewer/menus/MainMenu.qml
index d2cf4731..4616850e 100644
--- a/examples/location/mapviewer/menus/MainMenu.qml
+++ b/examples/location/mapviewer/menus/MainMenu.qml
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2017 The Qt Company Ltd.
+** Copyright (C) 2022 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the examples of the Qt Toolkit.
@@ -53,9 +53,11 @@ import QtQuick.Controls
import QtLocation
MenuBar {
- property variant providerMenu: providerMenu
- property variant mapTypeMenu: mapTypeMenu
- property variant toolsMenu: toolsMenu
+ id: menuBar
+ property variant providerMenu: providerMenu
+ property variant mapTypeMenu: mapTypeMenu
+ property variant toolsMenu: toolsMenu
+ property variant plugin
property alias isFollowMe: toolsMenu.isFollowMe
property alias isMiniMap: toolsMenu.isMiniMap
@@ -119,49 +121,49 @@ MenuBar {
id: toolsMenu
property bool isFollowMe: false;
property bool isMiniMap: false;
- title: qsTr("Tools")
+ property variant plugin: menuBar.plugin
- Component {
- id: menuItem
- MenuItem {
+ title: qsTr("Tools")
- }
+ Action {
+ text: qsTr("Reverse geocode")
+ enabled: plugin ? plugin.supportsGeocoding(Plugin.ReverseGeocodingFeature) : false
+ onTriggered: selectTool("RevGeocode")
}
-
- function createMenu(map)
- {
- clearMenu(toolsMenu)
- if (map.plugin.supportsGeocoding(Plugin.ReverseGeocodingFeature)) {
- addItem(menuItem.createObject(toolsMenu, { text: qsTr("Reverse geocode") }))
- itemAt(count-1).triggered.connect(function(){selectTool("RevGeocode")})
- }
- if (map.plugin.supportsGeocoding()) {
- addItem(menuItem.createObject(toolsMenu, { text: qsTr("Geocode") }))
- itemAt(count-1).triggered.connect(function(){selectTool("Geocode")})
- }
- if (map.plugin.supportsRouting()) {
- addItem(menuItem.createObject(toolsMenu, { text: qsTr("Route with coordinates") }))
- itemAt(count-1).triggered.connect(function(){selectTool("CoordinateRoute")})
- addItem(menuItem.createObject(toolsMenu, { text: qsTr("Route with address") }))
- itemAt(count-1).triggered.connect(function(){selectTool("AddressRoute")})
- }
-
- addItem(menuItem.createObject(toolsMenu, { text: "" }))
- var item = itemAt(count-1)
- item.text = Qt.binding(function() { return isMiniMap ? qsTr("Hide minimap") : qsTr("Minimap") })
- item.triggered.connect(function() {toggleMapState("MiniMap")})
-
- addItem(menuItem.createObject(toolsMenu, { text: "" }))
- item = itemAt(count-1)
- item.text = Qt.binding(function() { return isFollowMe ? qsTr("Stop following") : qsTr("Follow me")})
- item.triggered.connect(function() {toggleMapState("FollowMe")})
-
- addItem(menuItem.createObject(toolsMenu, { text: qsTr("Language") }))
- itemAt(count-1).triggered.connect(function(){selectTool("Language")})
- addItem(menuItem.createObject(toolsMenu, { text: qsTr("Prefetch Map Data") }))
- itemAt(count-1).triggered.connect(function(){selectTool("Prefetch")})
- addItem(menuItem.createObject(toolsMenu, { text: qsTr("Clear Map Data") }))
- itemAt(count-1).triggered.connect(function(){selectTool("Clear")})
+ MenuItem {
+ text: qsTr("Geocode")
+ enabled: plugin ? plugin.supportsGeocoding() : false
+ onTriggered: selectTool("Geocode")
+ }
+ MenuItem {
+ text: qsTr("Route with coordinates")
+ enabled: plugin ? plugin.supportsRouting() : false
+ onTriggered: selectTool("CoordinateRoute")
+ }
+ MenuItem {
+ text: qsTr("Route with address")
+ enabled: plugin ? plugin.supportsRouting() : false
+ onTriggered: selectTool("AddressRoute")
+ }
+ MenuItem {
+ text: isMiniMap ? qsTr("Hide minimap") : qsTr("Minimap")
+ onTriggered: toggleMapState("MiniMap")
+ }
+ MenuItem {
+ text: isFollowMe ? qsTr("Stop following") : qsTr("Follow me")
+ onTriggered: toggleMapState("FollowMe")
+ }
+ MenuItem {
+ text: qsTr("Language")
+ onTriggered: selectTool("Language")
+ }
+ MenuItem {
+ text: qsTr("Prefetch Map Data")
+ onTriggered: selectTool("Prefetch")
+ }
+ MenuItem {
+ text: qsTr("Clear Map Data")
+ onTriggered: selectTool("Clear")
}
}
}
diff --git a/examples/location/mapviewer/menus/MapPopupMenu.qml b/examples/location/mapviewer/menus/MapPopupMenu.qml
index 42867710..1cad6b68 100644
--- a/examples/location/mapviewer/menus/MapPopupMenu.qml
+++ b/examples/location/mapviewer/menus/MapPopupMenu.qml
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2017 The Qt Company Ltd.
+** Copyright (C) 2022 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the examples of the Qt Toolkit.
@@ -57,18 +57,26 @@ Menu {
property int mapItemsCount
signal itemClicked(string item)
- function update() {
- clear()
- addItem(qsTr("Add Marker")).triggered.connect(function(){itemClicked("addMarker")})
- addItem(qsTr("Get coordinate")).triggered.connect(function(){itemClicked("getCoordinate")})
- addItem(qsTr("Fit Viewport To Map Items")).triggered.connect(function(){itemClicked("fitViewport")})
-
- if (markersCount > 0) {
- addItem(qsTr("Delete all markers")).triggered.connect(function(){itemClicked("deleteMarkers")})
- }
-
- if (mapItemsCount > 0) {
- addItem(qsTr("Delete all items")).triggered.connect(function(){itemClicked("deleteItems")})
- }
+ MenuItem {
+ text: qsTr("Add Marker")
+ onTriggered: itemClicked("addMarker")
+ }
+ MenuItem {
+ text: qsTr("Get coordinate")
+ onTriggered: itemClicked("getCoordinate")
+ }
+ MenuItem {
+ text: qsTr("Fit Viewport To Map Items")
+ onTriggered: itemClicked("fitViewport")
+ }
+ MenuItem {
+ text: qsTr("Delete all markers")
+ enabled: markersCount > 0
+ onTriggered: itemClicked("deleteMarkers")
+ }
+ MenuItem {
+ text: qsTr("Delete all items")
+ enabled: mapItemsCount > 0
+ onTriggered: itemClicked("deleteItems")
}
}
diff --git a/examples/location/mapviewer/menus/MarkerPopupMenu.qml b/examples/location/mapviewer/menus/MarkerPopupMenu.qml
index e49b90f8..748dcbdc 100644
--- a/examples/location/mapviewer/menus/MarkerPopupMenu.qml
+++ b/examples/location/mapviewer/menus/MarkerPopupMenu.qml
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2017 The Qt Company Ltd.
+** Copyright (C) 2022 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the examples of the Qt Toolkit.
@@ -56,31 +56,58 @@ Menu {
property int markersCount
signal itemClicked(string item)
- function update() {
- clear()
- addItem(qsTr("Delete")).triggered.connect(function(){itemClicked("deleteMarker")})
- addItem(qsTr("Coordinates")).triggered.connect(function(){itemClicked("getMarkerCoordinate")})
- addItem(qsTr("Move to")).triggered.connect(function(){itemClicked("moveMarkerTo")})
- if (currentMarker == markersCount-2){
- addItem(qsTr("Route to next point")).triggered.connect(function(){itemClicked("routeToNextPoint")});
- addItem(qsTr("Distance to next point")).triggered.connect(function(){itemClicked("distanceToNextPoint")});
+ MenuItem {
+ text: qsTr("Delete")
+ onTriggered: itemClicked("deleteMarker")
+ }
+ MenuItem {
+ text: qsTr("Coordinates")
+ onTriggered: itemClicked("getMarkerCoordinate")
+ }
+ MenuItem {
+ text: qsTr("Move to")
+ onTriggered: itemClicked("moveMarkerTo")
+ }
+ MenuItem {
+ text: currentMarker < markersCount-2 ? qsTr("Route to next points")
+ : qsTr("Route to next point")
+ enabled: currentMarker <= markersCount - 2
+ onTriggered: currentMarker < markersCount-2 ? itemClicked("routeToNextPoints")
+ : itemClicked("routeToNextPoint")
+ }
+ MenuItem {
+ text: currentMarker < markersCount-2 ? qsTr("Distance to next points")
+ : qsTr("Distance to next point")
+ enabled: currentMarker <= markersCount - 2
+ onTriggered: currentMarker < markersCount-2 ? itemClicked("distanceToNextPoints")
+ : itemClicked("distanceToNextPoint")
+ }
+ Menu {
+ title: qsTr("Draw...")
+
+ MenuItem {
+ text: qsTr("Image")
+ onTriggered: itemClicked("drawImage")
}
- if (currentMarker < markersCount-2){
- addItem(qsTr("Route to next points")).triggered.connect(function(){itemClicked("routeToNextPoints")});
- addItem(qsTr("Distance to next point")).triggered.connect(function(){itemClicked("distanceToNextPoint")});
+ MenuItem {
+ text: qsTr("Rectangle")
+ enabled: currentMarker <= markersCount - 2
+ onTriggered: itemClicked("drawRectangle")
}
-
- var menu = addMenu(qsTr("Draw..."))
- menu.addItem(qsTr("Image")).triggered.connect(function(){itemClicked("drawImage")})
-
- if (currentMarker <= markersCount-2){
- menu.addItem(qsTr("Rectangle")).triggered.connect(function(){itemClicked("drawRectangle")})
- menu.addItem(qsTr("Circle")).triggered.connect(function(){itemClicked("drawCircle")})
- menu.addItem(qsTr("Polyline")).triggered.connect(function(){itemClicked("drawPolyline")})
+ MenuItem {
+ text: qsTr("Circle")
+ enabled: currentMarker <= markersCount - 2
+ onTriggered: itemClicked("drawCircle")
}
-
- if (currentMarker < markersCount-2){
- menu.addItem(qsTr("Polygon")).triggered.connect(function(){itemClicked("drawPolygonMenu")})
+ MenuItem {
+ text: qsTr("Polyline")
+ enabled: currentMarker <= markersCount - 2
+ onTriggered: itemClicked("drawPolyline")
+ }
+ MenuItem {
+ text: qsTr("Polygon")
+ enabled: currentMarker < markersCount-2
+ onTriggered: itemClicked("drawPolygonMenu")
}
}
}