diff options
Diffstat (limited to 'examples/location/mapviewer/map/Marker.qml')
-rw-r--r-- | examples/location/mapviewer/map/Marker.qml | 65 |
1 files changed, 25 insertions, 40 deletions
diff --git a/examples/location/mapviewer/map/Marker.qml b/examples/location/mapviewer/map/Marker.qml index 8c548fd4..ee3e1a0d 100644 --- a/examples/location/mapviewer/map/Marker.qml +++ b/examples/location/mapviewer/map/Marker.qml @@ -8,52 +8,39 @@ import QtLocation MapQuickItem { id: marker //! [mqi-top] - property alias lastMouseX: markerMouseArea.lastX - property alias lastMouseY: markerMouseArea.lastY //! [mqi-anchor] anchorPoint.x: image.width/4 anchorPoint.y: image.height + HoverHandler { + id: hoverHandler + } + TapHandler { + id: tapHandler + acceptedButtons: Qt.RightButton + gesturePolicy: TapHandler.WithinBounds + onTapped: { + mapview.currentMarker = -1 + for (var i = 0; i< mapview.markers.length; i++){ + if (marker == mapview.markers[i]){ + mapview.currentMarker = i + break + } + } + mapview.showMarkerMenu(marker.coordinate) + } + } + DragHandler { + id: dragHandler + grabPermissions: PointerHandler.CanTakeOverFromItems | PointerHandler.CanTakeOverFromHandlersOfDifferentType + } + sourceItem: Image { id: image //! [mqi-anchor] source: "../resources/marker.png" - opacity: markerMouseArea.pressed ? 0.6 : 1.0 - MouseArea { - id: markerMouseArea - property int pressX : -1 - property int pressY : -1 - property int jitterThreshold : 10 - property int lastX: -1 - property int lastY: -1 - anchors.fill: parent - hoverEnabled : false - drag.target: marker - preventStealing: true - - onPressed : (mouse) => { - map.pressX = mouse.x - map.pressY = mouse.y - map.currentMarker = -1 - for (var i = 0; i< map.markers.length; i++){ - if (marker == map.markers[i]){ - map.currentMarker = i - break - } - } - } - - 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) - lastX = p.x - lastY = p.y - map.showMarkerMenu(marker.coordinate) - } - } - } + opacity: hoverHandler.hovered ? 0.6 : 1.0 Text{ id: number @@ -64,7 +51,7 @@ MapQuickItem { font.pixelSize: 14 horizontalAlignment: Text.AlignHCenter Component.onCompleted: { - text = map.markerCounter + text = mapview.markerCounter } } @@ -72,8 +59,6 @@ MapQuickItem { } //! [mqi-closeimage] - Component.onCompleted: coordinate = map.toCoordinate(Qt.point(markerMouseArea.mouseX, - markerMouseArea.mouseY)); //! [mqi-close] } //! [mqi-close] |