diff --git a/src/QmlControls/EditPositionDialog.qml b/src/QmlControls/EditPositionDialog.qml index bd20d0b51578d86755150a15dac92ed2449f106b..c64669ef49bca126ec0913c37b254d657c6c070a 100644 --- a/src/QmlControls/EditPositionDialog.qml +++ b/src/QmlControls/EditPositionDialog.qml @@ -112,6 +112,17 @@ QGCViewDialog { reject() } } + + QGCButton { + anchors.right: parent.right + text: qsTr("Set From Vehicle Position") + visible: QGroundControl.multiVehicleManager.activeVehicle && QGroundControl.multiVehicleManager.activeVehicle.coordinate.isValid + + onClicked: { + controller.setFromVehicle() + reject() + } + } } // Column } // QGCFlickable } // QGCViewDialog diff --git a/src/QmlControls/EditPositionDialogController.cc b/src/QmlControls/EditPositionDialogController.cc index 1ad11b5c9f05ab431684173c45011b69e7278943..9a1f604f2d197e6216ede49b6b77b07874b9b6a4 100644 --- a/src/QmlControls/EditPositionDialogController.cc +++ b/src/QmlControls/EditPositionDialogController.cc @@ -9,6 +9,7 @@ #include "EditPositionDialogController.h" #include "QGCGeo.h" +#include "QGCApplication.h" const char* EditPositionDialogController::_latitudeFactName = "Latitude"; const char* EditPositionDialogController::_longitudeFactName = "Longitude"; @@ -74,3 +75,10 @@ void EditPositionDialogController::setFromUTM(void) qDebug() << _eastingFact.rawValue().toDouble() << _northingFact.rawValue().toDouble() << _zoneFact.rawValue().toInt() << (_hemisphereFact.rawValue().toInt() == 1) << _coordinate; emit coordinateChanged(_coordinate); } + +void EditPositionDialogController::setFromVehicle(void) +{ + _coordinate = qgcApp()->toolbox()->multiVehicleManager()->activeVehicle()->coordinate(); + emit coordinateChanged(_coordinate); +} + diff --git a/src/QmlControls/EditPositionDialogController.h b/src/QmlControls/EditPositionDialogController.h index 99ecd44ddcb4ec12c3544d88fa0bcae6eb40080e..ed8d90be9f03abdb9fde6ceee25e4e9242d05bd8 100644 --- a/src/QmlControls/EditPositionDialogController.h +++ b/src/QmlControls/EditPositionDialogController.h @@ -42,6 +42,7 @@ public: Q_INVOKABLE void initValues(void); Q_INVOKABLE void setFromGeo(void); Q_INVOKABLE void setFromUTM(void); + Q_INVOKABLE void setFromVehicle(void); signals: void coordinateChanged(QGeoCoordinate coordinate);