|
|
|
@ -189,20 +189,25 @@ Item {
@@ -189,20 +189,25 @@ Item {
|
|
|
|
|
Menu { |
|
|
|
|
id: menu |
|
|
|
|
|
|
|
|
|
property int _removeVertexIndex |
|
|
|
|
property int _editingVertexIndex: -1 |
|
|
|
|
|
|
|
|
|
function popUpWithIndex(curIndex) { |
|
|
|
|
_removeVertexIndex = curIndex |
|
|
|
|
removeVertexItem.visible = (mapPolygon.count > 3 && _removeVertexIndex >= 0) |
|
|
|
|
function popupVertex(curIndex) { |
|
|
|
|
menu._editingVertexIndex = curIndex |
|
|
|
|
removeVertexItem.visible = (mapPolygon.count > 3 && menu._editingVertexIndex >= 0) |
|
|
|
|
menu.popup() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function popupCenter() { |
|
|
|
|
menu.popup() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
MenuItem { |
|
|
|
|
id: removeVertexItem |
|
|
|
|
visible: !_circle |
|
|
|
|
text: qsTr("Remove vertex") |
|
|
|
|
onTriggered: { |
|
|
|
|
if(menu._removeVertexIndex >= 0) { |
|
|
|
|
mapPolygon.removeVertex(menu._removeVertexIndex) |
|
|
|
|
if (menu._editingVertexIndex >= 0) { |
|
|
|
|
mapPolygon.removeVertex(menu._editingVertexIndex) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -229,8 +234,14 @@ Item {
@@ -229,8 +234,14 @@ Item {
|
|
|
|
|
|
|
|
|
|
MenuItem { |
|
|
|
|
text: qsTr("Edit position..." ) |
|
|
|
|
enabled: _circle |
|
|
|
|
onTriggered: qgcView.showDialog(editPositionDialog, qsTr("Edit Position"), qgcView.showDialogDefaultWidth, StandardButton.Close) |
|
|
|
|
visible: _circle |
|
|
|
|
onTriggered: qgcView.showDialog(editCenterPositionDialog, qsTr("Edit Center Position"), qgcView.showDialogDefaultWidth, StandardButton.Close) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
MenuItem { |
|
|
|
|
text: qsTr("Edit position..." ) |
|
|
|
|
visible: !_circle && menu._editingVertexIndex >= 0 |
|
|
|
|
onTriggered: qgcView.showDialog(editVertexPositionDialog, qsTr("Edit Vertex Position"), qgcView.showDialogDefaultWidth, StandardButton.Close) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
MenuItem { |
|
|
|
@ -345,9 +356,7 @@ Item {
@@ -345,9 +356,7 @@ Item {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
onClicked: { |
|
|
|
|
menu.popUpWithIndex(polygonVertex) |
|
|
|
|
} |
|
|
|
|
onClicked: menu.popupVertex(polygonVertex) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -436,11 +445,26 @@ Item {
@@ -436,11 +445,26 @@ Item {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Component { |
|
|
|
|
id: editPositionDialog |
|
|
|
|
id: editCenterPositionDialog |
|
|
|
|
|
|
|
|
|
EditPositionDialog { |
|
|
|
|
coordinate: mapPolygon.center |
|
|
|
|
onCoordinateChanged: mapPolygon.center = coordinate |
|
|
|
|
onCoordinateChanged: { |
|
|
|
|
// Prevent spamming signals on vertex changes by setting centerDrag = true when changing center position. |
|
|
|
|
// This also fixes a bug where Qt gets confused by all the signalling and draws a bad visual. |
|
|
|
|
mapPolygon.centerDrag = true |
|
|
|
|
mapPolygon.center = coordinate |
|
|
|
|
mapPolygon.centerDrag = false |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Component { |
|
|
|
|
id: editVertexPositionDialog |
|
|
|
|
|
|
|
|
|
EditPositionDialog { |
|
|
|
|
coordinate: mapPolygon.vertexCoordinate(menu._editingVertexIndex) |
|
|
|
|
onCoordinateChanged: mapPolygon.adjustVertex(menu._editingVertexIndex, coordinate) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -454,9 +478,7 @@ Item {
@@ -454,9 +478,7 @@ Item {
|
|
|
|
|
onDragStart: mapPolygon.centerDrag = true |
|
|
|
|
onDragStop: mapPolygon.centerDrag = false |
|
|
|
|
|
|
|
|
|
onClicked: { |
|
|
|
|
menu.popUpWithIndex(-1) //-- Don't offer a choice to delete vertex (cur index == -1) |
|
|
|
|
} |
|
|
|
|
onClicked: menu.popupCenter() |
|
|
|
|
|
|
|
|
|
function setRadiusFromDialog() { |
|
|
|
|
var radius = QGroundControl.appSettingsDistanceUnitsToMeters(radiusField.text) |
|
|
|
|