diff --git a/src/FlightMap/MapItems/MissionItemIndicatorDrag.qml b/src/FlightMap/MapItems/MissionItemIndicatorDrag.qml index 3d49c21..720e5fd 100644 --- a/src/FlightMap/MapItems/MissionItemIndicatorDrag.qml +++ b/src/FlightMap/MapItems/MissionItemIndicatorDrag.qml @@ -29,7 +29,6 @@ Rectangle { property var itemCoordinate ///< Coordinate we are updating during drag signal clicked - signal doubleClicked signal dragStart signal dragStop @@ -77,11 +76,6 @@ Rectangle { itemDragger.clicked() } - onDoubleClicked: { - focus = true - itemDragger.doubleClicked() - } - property bool dragActive: drag.active onDragActiveChanged: { if (dragActive) { diff --git a/src/MissionManager/QGCMapPolygonVisuals.qml b/src/MissionManager/QGCMapPolygonVisuals.qml index 01e57ba..d651239 100644 --- a/src/MissionManager/QGCMapPolygonVisuals.qml +++ b/src/MissionManager/QGCMapPolygonVisuals.qml @@ -186,6 +186,59 @@ Item { } } + Menu { + id: menu + + property int _removeVertexIndex + + function popUpWithIndex(curIndex) { + _removeVertexIndex = curIndex + removeVertexItem.visible = (mapPolygon.count > 3 && _removeVertexIndex >= 0) + menu.popup() + } + + MenuItem { + id: removeVertexItem + text: qsTr("Remove vertex") + onTriggered: { + if(menu._removeVertexIndex >= 0) { + mapPolygon.removeVertex(menu._removeVertexIndex) + } + } + } + + MenuSeparator { + visible: removeVertexItem.visible + } + + MenuItem { + text: qsTr("Circle" ) + onTriggered: resetCircle() + } + + MenuItem { + text: qsTr("Polygon") + onTriggered: resetPolygon() + } + + MenuItem { + text: qsTr("Set radius..." ) + visible: _circle + onTriggered: radiusDialog.visible = true + } + + MenuItem { + text: qsTr("Edit position..." ) + enabled: _circle + onTriggered: qgcView.showDialog(editPositionDialog, qsTr("Edit Position"), qgcView.showDialogDefaultWidth, StandardButton.Cancel) + } + + MenuItem { + text: qsTr("Load KML...") + onTriggered: kmlLoadDialog.openForLoad() + } + } + Component { id: polygonComponent @@ -291,32 +344,36 @@ Item { } } - onDoubleClicked: mapPolygon.removeVertex(polygonVertex) + onClicked: { + menu.popUpWithIndex(polygonVertex) + } } } Component { id: centerDragHandle - MapQuickItem { id: mapQuickItem - anchorPoint.x: dragHandle.width / 2 - anchorPoint.y: dragHandle.height / 2 + anchorPoint.x: dragHandle.width * 0.5 + anchorPoint.y: dragHandle.height * 0.5 z: _zorderDragHandle - sourceItem: Rectangle { - id: dragHandle - width: ScreenTools.defaultFontPixelHeight * 1.5 - height: width - radius: width / 2 - color: "white" - opacity: .90 - - QGCLabel { - anchors.horizontalCenter: parent.horizontalCenter - anchors.verticalCenter: parent.verticalCenter - text: "..." - color: "black" + id: dragHandle + width: ScreenTools.defaultFontPixelHeight * 1.5 + height: width + radius: width * 0.5 + color: Qt.rgba(1,1,1,0.8) + border.color: Qt.rgba(0,0,0,0.25) + border.width: 1 + QGCColoredImage { + width: parent.width + height: width + color: Qt.rgba(0,0,0,1) + mipmap: true + fillMode: Image.PreserveAspectFit + source: "/qmlimages/MapCenter.svg" + sourceSize.height: height + anchors.centerIn: parent } } } @@ -327,7 +384,7 @@ Item { MapQuickItem { id: mapQuickItem - anchorPoint.x: dragHandle.width / 2 + anchorPoint.x: dragHandle.width / 2 anchorPoint.y: dragHandle.height / 2 z: _zorderDragHandle visible: !_circle @@ -335,12 +392,13 @@ Item { property int polygonVertex sourceItem: Rectangle { - id: dragHandle - width: ScreenTools.defaultFontPixelHeight * 1.5 - height: width - radius: width / 2 - color: "white" - opacity: .90 + id: dragHandle + width: ScreenTools.defaultFontPixelHeight * 1.5 + height: width + radius: width * 0.5 + color: Qt.rgba(1,1,1,0.8) + border.color: Qt.rgba(0,0,0,0.25) + border.width: 1 } } } @@ -393,44 +451,16 @@ Item { onItemCoordinateChanged: mapPolygon.center = itemCoordinate onDragStart: mapPolygon.centerDrag = true onDragStop: mapPolygon.centerDrag = false - onClicked: menu.popup() + + onClicked: { + menu.popUpWithIndex(-1) //-- Don't offer a choice to delete vertex (cur index == -1) + } function setRadiusFromDialog() { setCircleRadius(mapPolygon.center, radiusField.text) radiusDialog.visible = false } - Menu { - id: menu - - MenuItem { - text: qsTr("Circle" ) - onTriggered: resetCircle() - } - - MenuItem { - text: qsTr("Polygon") - onTriggered: resetPolygon() - } - - MenuItem { - text: qsTr("Set radius..." ) - visible: _circle - onTriggered: radiusDialog.visible = true - } - - MenuItem { - text: qsTr("Edit position..." ) - enabled: _circle - onTriggered: qgcView.showDialog(editPositionDialog, qsTr("Edit Position"), qgcView.showDialogDefaultWidth, StandardButton.Cancel) - } - - MenuItem { - text: qsTr("Load KML...") - onTriggered: kmlLoadDialog.openForLoad() - } - } - Rectangle { id: radiusDialog anchors.margins: _margin diff --git a/src/MissionManager/QGCMapPolylineVisuals.qml b/src/MissionManager/QGCMapPolylineVisuals.qml index 848f1ec..1d86a24 100644 --- a/src/MissionManager/QGCMapPolylineVisuals.qml +++ b/src/MissionManager/QGCMapPolylineVisuals.qml @@ -128,22 +128,28 @@ Item { Menu { id: menu - property int removeVertex + property int _removeVertexIndex + + function popUpWithIndex(curIndex) { + _removeVertexIndex = curIndex + removeVertexItem.visible = mapPolyline.count > 2 + menu.popup() + } MenuItem { id: removeVertexItem text: qsTr("Remove vertex" ) - onTriggered: mapPolyline.removeVertex(parent.removeVertex) + onTriggered: mapPolyline.removeVertex(menu._removeVertexIndex) + } + + MenuSeparator { + visible: removeVertexItem.visible } MenuItem { text: qsTr("Load KML...") onTriggered: kmlLoadDialog.openForLoad() } - - function resetMenu() { - removeVertexItem.visible = mapPolyline.count > 2 - } } Component { @@ -247,15 +253,7 @@ Item { } onClicked: { - menu.resetMenu() - menu.removeVertex = polylineVertex - menu.popup() - } - - onDoubleClicked: { - if (polylineVertex != 0) { - mapPolyline.removeVertex(polylineVertex) - } + menu.popUpWithIndex(polylineVertex) } } @@ -273,12 +271,13 @@ Item { property int polylineVertex sourceItem: Rectangle { - id: dragHandle - width: ScreenTools.defaultFontPixelHeight * 1.5 - height: width - radius: width / 2 - color: "white" - opacity: 0.9 + id: dragHandle + width: ScreenTools.defaultFontPixelHeight * 1.5 + height: width + radius: width * 0.5 + color: Qt.rgba(1,1,1,0.8) + border.color: Qt.rgba(0,0,0,0.25) + border.width: 1 } } }