From 0a23e4901ab1dabd8b39d8e68de8c85972f7f5de Mon Sep 17 00:00:00 2001 From: DonLakeFlyer Date: Fri, 24 Mar 2017 11:38:18 -0700 Subject: [PATCH] Fly: Fix click to set new mission item --- qgroundcontrol.qrc | 2 -- src/FlightDisplay/FlightDisplayViewMap.qml | 7 ++++++- src/FlightDisplay/FlightDisplayViewWidgets.qml | 2 +- src/MissionEditor/FWLandingPatternMapVisual.qml | 8 ++++++-- src/MissionEditor/MissionEditor.qml | 9 +++++++-- src/MissionEditor/MissionItemMapVisual.qml | 5 ++++- src/MissionEditor/MissionSettingsMapVisual.qml | 8 ++++++-- src/MissionEditor/SimpleItemMapVisual.qml | 7 +++++-- src/MissionEditor/SurveyMapVisual.qml | 16 ++++++++-------- src/MissionManager/MissionController.cc | 1 + 10 files changed, 44 insertions(+), 21 deletions(-) diff --git a/qgroundcontrol.qrc b/qgroundcontrol.qrc index fbf9bcf2e..aa3635460 100644 --- a/qgroundcontrol.qrc +++ b/qgroundcontrol.qrc @@ -40,7 +40,6 @@ src/AutoPilotPlugins/Common/MixersComponent.qml src/ui/preferences/MockLink.qml src/ui/preferences/MockLinkSettings.qml - src/MultiVehicle/MultiVehicleView.qml src/AutoPilotPlugins/Common/MotorComponent.qml src/QtLocationPlugin/QMLControl/OfflineMap.qml src/AutoPilotPlugins/PX4/PowerComponent.qml @@ -58,7 +57,6 @@ src/MissionEditor/FWLandingPatternMapVisual.qml src/MissionEditor/GeoFenceEditor.qml src/MissionEditor/GeoFenceMapVisuals.qml - src/QmlControls/GuidedBar.qml src/QmlControls/IndicatorButton.qml src/QmlControls/JoystickThumbPad.qml src/ui/toolbar/MainToolBar.qml diff --git a/src/FlightDisplay/FlightDisplayViewMap.qml b/src/FlightDisplay/FlightDisplayViewMap.qml index 602b9057e..f6958b02b 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 520a1bcb1..a9167c1f3 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 1434a9150..97178e597 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 89168723c..069895f2b 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 b86111a56..c5c6d4c8d 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 21fea1d8f..48ab49d0e 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 e875006e0..9e15e1eef 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 5abbef78d..edff6af42 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 518527976..6e459a867 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. -- 2.22.0