diff --git a/src/FlightDisplay/GuidedActionConfirm.qml b/src/FlightDisplay/GuidedActionConfirm.qml index 8d36d74dc1a6688ef0e13d1164add68302237ec9..177e1944ad82a013cb151b143173a44f30027e75 100644 --- a/src/FlightDisplay/GuidedActionConfirm.qml +++ b/src/FlightDisplay/GuidedActionConfirm.qml @@ -34,16 +34,14 @@ Rectangle { property int action property var actionData property bool hideTrigger: false + property var mapIndicator property real _margins: ScreenTools.defaultFontPixelWidth property bool _emergencyAction: action === guidedController.actionEmergencyStop onHideTriggerChanged: { if (hideTrigger) { - hideTrigger = false - altitudeSlider.visible = false - visibleTimer.stop() - visible = false + confirmCancelled() } } @@ -57,6 +55,17 @@ Rectangle { } } + function confirmCancelled() { + altitudeSlider.visible = false + visible = false + hideTrigger = false + visibleTimer.stop() + if (mapIndicator) { + mapIndicator.actionCancelled() + mapIndicator = undefined + } + } + Timer { id: visibleTimer interval: 1000 @@ -107,12 +116,10 @@ Rectangle { } hideTrigger = false guidedController.executeAction(_root.action, _root.actionData, altitudeChange) - } - - onReject: { - altitudeSlider.visible = false - _root.visible = false - hideTrigger = false + if (mapIndicator) { + mapIndicator.actionConfirmed() + mapIndicator = undefined + } } } } @@ -127,12 +134,10 @@ Rectangle { source: "/res/XDelete.svg" fillMode: Image.PreserveAspectFit color: qgcPal.text + QGCMouseArea { fillItem: parent - onClicked: { - altitudeSlider.visible = false - _root.visible = false - } + onClicked: confirmCancelled() } } } diff --git a/src/FlightDisplay/GuidedActionsController.qml b/src/FlightDisplay/GuidedActionsController.qml index 58b3b68cfc4940d94c595079ceefe2cd70445f00..c099ed669c21dbabb532d645bce9cd9e7bf2e303 100644 --- a/src/FlightDisplay/GuidedActionsController.qml +++ b/src/FlightDisplay/GuidedActionsController.qml @@ -209,12 +209,13 @@ Item { } // Called when an action is about to be executed in order to confirm - function confirmAction(actionCode, actionData) { + function confirmAction(actionCode, actionData, mapIndicator) { var showImmediate = true closeAll() confirmDialog.action = actionCode confirmDialog.actionData = actionData confirmDialog.hideTrigger = true + confirmDialog.mapIndicator = mapIndicator _actionData = actionData switch (actionCode) { case actionArm: @@ -385,7 +386,6 @@ Item { break case actionOrbit: _activeVehicle.guidedModeOrbit(orbitMapCircle.center, orbitMapCircle.radius() * (orbitMapCircle.clockwiseRotation ? 1 : -1), _activeVehicle.altitudeAMSL.rawValue + actionAltitudeChange) - orbitMapCircle.hide() break case actionLandAbort: _activeVehicle.abortLanding(50) // hardcoded value for climbOutAltitude that is currently ignored