diff --git a/qgroundcontrol.qrc b/qgroundcontrol.qrc index fbf9bcf2ecb092eaaa5afc4c5a4680a4730a1d1b..aa36354606c5fa37d483b1e61dd0b826ddc16024 100644 --- a/qgroundcontrol.qrc +++ b/qgroundcontrol.qrc @@ -40,7 +40,6 @@ <file alias="MixersComponent.qml">src/AutoPilotPlugins/Common/MixersComponent.qml</file> <file alias="MockLink.qml">src/ui/preferences/MockLink.qml</file> <file alias="MockLinkSettings.qml">src/ui/preferences/MockLinkSettings.qml</file> - <file alias="MultiVehicleView.qml">src/MultiVehicle/MultiVehicleView.qml</file> <file alias="MotorComponent.qml">src/AutoPilotPlugins/Common/MotorComponent.qml</file> <file alias="OfflineMap.qml">src/QtLocationPlugin/QMLControl/OfflineMap.qml</file> <file alias="PowerComponent.qml">src/AutoPilotPlugins/PX4/PowerComponent.qml</file> @@ -58,7 +57,6 @@ <file alias="QGroundControl/Controls/FWLandingPatternMapVisual.qml">src/MissionEditor/FWLandingPatternMapVisual.qml</file> <file alias="QGroundControl/Controls/GeoFenceEditor.qml">src/MissionEditor/GeoFenceEditor.qml</file> <file alias="QGroundControl/Controls/GeoFenceMapVisuals.qml">src/MissionEditor/GeoFenceMapVisuals.qml</file> - <file alias="QGroundControl/Controls/GuidedBar.qml">src/QmlControls/GuidedBar.qml</file> <file alias="QGroundControl/Controls/IndicatorButton.qml">src/QmlControls/IndicatorButton.qml</file> <file alias="QGroundControl/Controls/JoystickThumbPad.qml">src/QmlControls/JoystickThumbPad.qml</file> <file alias="QGroundControl/Controls/MainToolBar.qml">src/ui/toolbar/MainToolBar.qml</file> diff --git a/src/FlightDisplay/FlightDisplayViewMap.qml b/src/FlightDisplay/FlightDisplayViewMap.qml index 602b9057eab3b0d881e569775ae52442d27c1ce1..f6958b02b5afcc8780503233dc906c1755bdea3f 100644 --- a/src/FlightDisplay/FlightDisplayViewMap.qml +++ b/src/FlightDisplay/FlightDisplayViewMap.qml @@ -257,7 +257,12 @@ FlightMap { model: _mainIsMap ? missionController.visualItems : 0 delegate: MissionItemMapVisual { - map: flightMap + map: flightMap + + onClicked: { + _retaskSequence = object.sequenceNumber + flightWidgets.guidedModeBar.confirmAction(parent.flightWidgets.guidedModeBar.confirmRetask) + } } } diff --git a/src/FlightDisplay/FlightDisplayViewWidgets.qml b/src/FlightDisplay/FlightDisplayViewWidgets.qml index 520a1bcb15ccb54f2e622e01da98bb9ada354c1b..a9167c1f3704ed0593620b2ec17e42e3a52caec1 100644 --- a/src/FlightDisplay/FlightDisplayViewWidgets.qml +++ b/src/FlightDisplay/FlightDisplayViewWidgets.qml @@ -318,7 +318,7 @@ Item { guidedModeConfirm.confirmText = qsTr("move vehicle") break; case confirmRetask: - guidedModeConfirm.confirmText = qsTr("active waypoint change") + guidedModeConfirm.confirmText = qsTr("activate waypoint change") break; case confirmOrbit: guidedModeConfirm.confirmText = qsTr("enter orbit mode") diff --git a/src/MissionEditor/FWLandingPatternMapVisual.qml b/src/MissionEditor/FWLandingPatternMapVisual.qml index 1434a9150466c53276527dfcca07be7d86e69f53..97178e5977c574894701daa5e970c4b0851e8a36 100644 --- a/src/MissionEditor/FWLandingPatternMapVisual.qml +++ b/src/MissionEditor/FWLandingPatternMapVisual.qml @@ -20,8 +20,12 @@ import QGroundControl.FlightMap 1.0 /// Fixed Wing Landing Pattern map visuals Item { + id: _root + property var map ///< Map control to place item in + signal clicked(int sequenceNumber) + property var _missionItem: object property var _itemVisuals: [ ] property var _mouseArea @@ -207,7 +211,7 @@ Item { label: "Loiter" checked: _missionItem.isCurrentItem - onClicked: setCurrentItem(_missionItem.sequenceNumber) + onClicked: _root.clicked(_missionItem.sequenceNumber) } } } @@ -241,7 +245,7 @@ Item { label: "Land" checked: _missionItem.isCurrentItem - onClicked: setCurrentItem(_missionItem.sequenceNumber) + onClicked: _root.clicked(_missionItem.sequenceNumber) } } } diff --git a/src/MissionEditor/MissionEditor.qml b/src/MissionEditor/MissionEditor.qml index 89168723c38fc673d6d2da00a1dbe7af31a35f84..069895f2b11d5fccfd8936654652c44939a7ee45 100644 --- a/src/MissionEditor/MissionEditor.qml +++ b/src/MissionEditor/MissionEditor.qml @@ -49,7 +49,7 @@ QGCView { property var activeVehiclePosition: _activeVehicle ? _activeVehicle.coordinate : QtPositioning.coordinate() property bool _lightWidgetBorders: editorMap.isSatelliteMap property bool _addWaypointOnClick: false - property bool _singleComplexItem: missionController.complexMissionItemNames.length == 1 + property bool _singleComplexItem: missionController.complexMissionItemNames.length === 1 /// The controller which should be called for load/save, send to/from vehicle calls property var _syncDropDownController: missionController @@ -459,7 +459,8 @@ QGCView { model: missionController.visualItems delegate: MissionItemMapVisual { - map: editorMap + map: editorMap + onClicked: setCurrentItem(sequenceNumber) } } @@ -702,6 +703,10 @@ QGCView { property bool _showZoom: !ScreenTools.isMobile + property bool mySingleComplexItem: _singleComplexItem + + onMySingleComplexItemChanged: console.log(model[1].dropPanelComponent) + model: [ { name: "Waypoint", diff --git a/src/MissionEditor/MissionItemMapVisual.qml b/src/MissionEditor/MissionItemMapVisual.qml index b86111a5657c5b988c241d70525b81d31e106a3e..c5c6d4c8dc0520303a5197e7082273e1d2dd916b 100644 --- a/src/MissionEditor/MissionItemMapVisual.qml +++ b/src/MissionEditor/MissionItemMapVisual.qml @@ -17,12 +17,14 @@ import QGroundControl.Palette 1.0 import QGroundControl.Controls 1.0 -/// Mission item edit control +/// Mission item map visual Item { id: _root property var map ///< Map control to place item in + signal clicked(int sequenceNumber) + property var _visualItem Component.onCompleted: { @@ -32,6 +34,7 @@ Item { console.log("Error loading Qml: ", object.mapVisualQML, component.errorString()) } _visualItem = component.createObject(map, { "map": _root.map }) + _visualItem.clicked.connect(_root.clicked) } } diff --git a/src/MissionEditor/MissionSettingsMapVisual.qml b/src/MissionEditor/MissionSettingsMapVisual.qml index 21fea1d8f973271227433c622faa3c3b71d2d6b3..48ab49d0e90e6bf6e6e771c16e55da6004792ad3 100644 --- a/src/MissionEditor/MissionSettingsMapVisual.qml +++ b/src/MissionEditor/MissionSettingsMapVisual.qml @@ -20,8 +20,12 @@ import QGroundControl.FlightMap 1.0 /// Mission Settings map visuals Item { + id: _root + property var map ///< Map control to place item in + signal clicked(int sequenceNumber) + property var _missionItem: object property var _itemVisual property var _dragArea @@ -103,7 +107,7 @@ Item { z: QGroundControl.zOrderMapItems missionItem: _missionItem - onClicked: setCurrentItem(_missionItem.sequenceNumber) + onClicked: _root.clicked(_missionItem.sequenceNumber) // These are the non-coordinate child mission items attached to this item Row { @@ -119,7 +123,7 @@ Item { z: 2 specifiesCoordinate: false - onClicked: setCurrentItem(object.sequenceNumber) + onClicked: _root.Clicked(object.sequenceNumber) } } } diff --git a/src/MissionEditor/SimpleItemMapVisual.qml b/src/MissionEditor/SimpleItemMapVisual.qml index e875006e0eb0e320d22c063233da93008481338e..9e15e1eef29f118ab89ba30c06c67478a50ac138 100644 --- a/src/MissionEditor/SimpleItemMapVisual.qml +++ b/src/MissionEditor/SimpleItemMapVisual.qml @@ -20,6 +20,7 @@ import QGroundControl.FlightMap 1.0 /// Simple Mission Item visuals Item { + id: _root property var map ///< Map control to place item in property var _missionItem: object @@ -28,6 +29,8 @@ Item { property bool _itemVisualShowing: false property bool _dragAreaShowing: false + signal clicked(int sequenceNumber) + function hideItemVisuals() { if (_itemVisualShowing) { _itemVisual.destroy() @@ -104,7 +107,7 @@ Item { missionItem: _missionItem sequenceNumber: _missionItem.sequenceNumber - onClicked: setCurrentItem(_missionItem.sequenceNumber) + onClicked: _root.clicked(_missionItem.sequenceNumber) // These are the non-coordinate child mission items attached to this item Row { @@ -120,7 +123,7 @@ Item { checked: object.isCurrentItem specifiesCoordinate: false - onClicked: setCurrentItem(object.sequenceNumber) + onClicked: _root.clicked(object.sequenceNumber) } } } diff --git a/src/MissionEditor/SurveyMapVisual.qml b/src/MissionEditor/SurveyMapVisual.qml index 5abbef78d855dfa3c635a0d24f4afcaa3209e848..edff6af42a740e7133ca95eb90c31e1047e1dc73 100644 --- a/src/MissionEditor/SurveyMapVisual.qml +++ b/src/MissionEditor/SurveyMapVisual.qml @@ -20,6 +20,8 @@ import QGroundControl.FlightMap 1.0 /// Survey Complex Mission Item visuals Item { + id: _root + property var map ///< Map control to place item in property var _missionItem: object @@ -30,6 +32,8 @@ Item { property var _dragHandles property var _splitHandles + signal clicked(int sequenceNumber) + function _addVisualElements() { _polygon = polygonComponent.createObject(map) _grid = gridComponent.createObject(map) @@ -148,12 +152,10 @@ Item { coordinate: _missionItem.coordinate visible: _missionItem.exitCoordinate.isValid - sourceItem: - MissionItemIndexLabel { + sourceItem: MissionItemIndexLabel { label: "Entry" checked: _missionItem.isCurrentItem - - onClicked: setCurrentItem(_missionItem.sequenceNumber) + onClicked: _root.clicked(_missionItem.sequenceNumber) } } } @@ -169,12 +171,10 @@ Item { coordinate: _missionItem.exitCoordinate visible: _missionItem.exitCoordinate.isValid - sourceItem: - MissionItemIndexLabel { + sourceItem: MissionItemIndexLabel { label: "Exit" checked: _missionItem.isCurrentItem - - onClicked: setCurrentItem(_missionItem.sequenceNumber) + onClicked: _root.clicked(_missionItem.sequenceNumber) } } } diff --git a/src/MissionManager/MissionController.cc b/src/MissionManager/MissionController.cc index 518527976438d02ae398f21c0f2b5fc69d2017b8..6e459a867b8d68216b421a1cfaa6e2a686c61d32 100644 --- a/src/MissionManager/MissionController.cc +++ b/src/MissionManager/MissionController.cc @@ -1279,6 +1279,7 @@ void MissionController::_activeVehicleSet(void) connect(_activeVehicle, &Vehicle::homePositionChanged, this, &MissionController::_activeVehicleHomePositionChanged); connect(_activeVehicle, &Vehicle::defaultCruiseSpeedChanged, this, &MissionController::_recalcMissionFlightStatus); connect(_activeVehicle, &Vehicle::defaultHoverSpeedChanged, this, &MissionController::_recalcMissionFlightStatus); + connect(_activeVehicle, &Vehicle::vehicleTypeChanged, this, &MissionController::complexMissionItemNamesChanged); if (_activeVehicle->parameterManager()->parametersReady() && !syncInProgress()) { // We are switching between two previously existing vehicles. We have to manually ask for the items from the Vehicle.