From 8e37d8d753fea50bdf1628a61de90e99412766c1 Mon Sep 17 00:00:00 2001 From: DonLakeFlyer Date: Fri, 24 Mar 2017 11:38:04 -0700 Subject: [PATCH 1/2] Remove unused code --- src/MultiVehicle/MultiVehicleView.qml | 268 ------------------------ src/QmlControls/GuidedBar.qml | 269 ------------------------- src/QmlControls/QGroundControl.Controls.qmldir | 1 - 3 files changed, 538 deletions(-) delete mode 100644 src/MultiVehicle/MultiVehicleView.qml delete mode 100644 src/QmlControls/GuidedBar.qml diff --git a/src/MultiVehicle/MultiVehicleView.qml b/src/MultiVehicle/MultiVehicleView.qml deleted file mode 100644 index 0637399..0000000 --- a/src/MultiVehicle/MultiVehicleView.qml +++ /dev/null @@ -1,268 +0,0 @@ -/**************************************************************************** - * - * (c) 2009-2016 QGROUNDCONTROL PROJECT - * - * QGroundControl is licensed according to the terms in the file - * COPYING.md in the root of the source code directory. - * - ****************************************************************************/ - -import QtQuick 2.3 -import QtQuick.Controls 1.2 -import QtQuick.Dialogs 1.2 -import QtQuick.Layouts 1.2 - -import QGroundControl 1.0 -import QGroundControl.ScreenTools 1.0 -import QGroundControl.Controls 1.0 -import QGroundControl.Palette 1.0 -import QGroundControl.Controllers 1.0 -import QGroundControl.FactSystem 1.0 - -/// Multi-Vehicle View -QGCView { - id: qgcView - viewPanel: panel - - property real _margins: ScreenTools.defaultFontPixelWidth - property var _fileDialogController - - readonly property string _loadingText: qsTr("Loading...") - - QGCPalette { id: qgcPal; colorGroupEnabled: enabled } - - QGCViewPanel { - id: panel - anchors.fill: parent - - Rectangle { - anchors.fill: parent - color: qgcPal.window - - QGCFlickable { - anchors.fill: parent - contentHeight: vehicleColumn.height - flickableDirection: Flickable.VerticalFlick - clip: true - - Column { - id: vehicleColumn - anchors.margins: _margins - anchors.left: parent.left - anchors.right: parent.right - anchors.top: parent.top - spacing: _margins - - QGCLabel { text: qsTr("All Vehicles") } - - Repeater { - model: QGroundControl.multiVehicleManager.vehicles - - Column { - anchors.left: parent.left - anchors.right: parent.right - spacing: ScreenTools.defaultFontPixelHeight / 2 - - MissionController { - id: missionController - - Component.onCompleted: startStaticActiveVehicle(object) - - property bool missionAvailable: visualItems && visualItems.count > 1 - - function loadFromSelectedFile() { - if (ScreenTools.isMobile) { - _fileDialogController = missionController - qgcView.showDialog(mobileFilePicker, qsTr("Select Mission File"), qgcView.showDialogDefaultWidth, StandardButton.Yes | StandardButton.Cancel) - } else { - missionController.loadFromFilePicker() - missionController.sendToVehicle() - } - } - } // MissionController - - GeoFenceController { - id: geoFenceController - - Component.onCompleted: startStaticActiveVehicle(object) - - property bool fenceAvailable: fenceSupported && (circleSupported || polygonSupported) - - function loadFromSelectedFile() { - if (ScreenTools.isMobile) { - _fileDialogController = geoFenceController - qgcView.showDialog(mobileFilePicker, qsTr("Select Fence File"), qgcView.showDialogDefaultWidth, StandardButton.Yes | StandardButton.Cancel) - } else { - geoFenceController.loadFromFilePicker() - geoFenceController.sendToVehicle() - } - } - } // GeoFenceController - - RallyPointController { - id: rallyPointController - - Component.onCompleted: startStaticActiveVehicle(object) - - property bool pointsAvailable: rallyPointsSupported && points.count - - function loadFromSelectedFile() { - if (ScreenTools.isMobile) { - _fileDialogController = rallyPointController - qgcView.showDialog(mobileFilePicker, qsTr("Select Rally Point File"), qgcView.showDialogDefaultWidth, StandardButton.Yes | StandardButton.Cancel) - } else { - rallyPointController.loadFromFilePicker() - rallyPointController.sendToVehicle() - } - } - } // RallyPointController - - QGCLabel { - text: "Vehicle #" + object.id - } - - Rectangle { - anchors.left: parent.left - anchors.right: parent.right - height: vehicleDisplayColumn.height + (_margins * 2) - color: qgcPal.windowShade - - Column { - id: vehicleDisplayColumn - anchors.margins: _margins - anchors.left: parent.left - anchors.right: parent.right - anchors.top: parent.top - - Row { - id: indicatorRow - spacing: _margins - visible: !object.connectionLost - - Rectangle { - width: missionLabel.contentWidth + _margins - height: ScreenTools.defaultFontPixelHeight + _margins - radius: height / 4 - color: missionController.missionAvailable ? "green" : qgcPal.window - border.width: 1 - border.color: qgcPal.text - - QGCLabel { - id: missionLabel - anchors.margins: _margins / 2 - anchors.left: parent.left - anchors.top: parent.top - text: missionController.syncInProgress ? _loadingText : qsTr("Mission") - } - - MouseArea { - anchors.fill: parent - enabled: !missionController.syncInProgress - onClicked: missionController.loadFromSelectedFile() - } - } - - Rectangle { - width: fenceLabel.contentWidth + _margins - height: ScreenTools.defaultFontPixelHeight + _margins - radius: height / 4 - color: geoFenceController.fenceAvailable ? "green" : qgcPal.window - border.width: 1 - border.color: qgcPal.text - - QGCLabel { - id: fenceLabel - anchors.margins: _margins / 2 - anchors.left: parent.left - anchors.top: parent.top - text: geoFenceController.syncInProgress ? _loadingText : qsTr("Fence") - } - - MouseArea { - anchors.fill: parent - enabled: !geoFenceController.syncInProgress - onClicked: geoFenceController.loadFromSelectedFile() - } - } - - Rectangle { - width: rallyLabel.contentWidth + _margins - height: ScreenTools.defaultFontPixelHeight + _margins - radius: height / 4 - color: rallyPointController.pointsAvailable ? "green" : qgcPal.window - border.width: 1 - border.color: qgcPal.text - - QGCLabel { - id: rallyLabel - anchors.margins: _margins / 2 - anchors.left: parent.left - anchors.top: parent.top - text: rallyPointController.syncInProgress ? _loadingText : qsTr("Rally") - } - - MouseArea { - anchors.fill: parent - enabled: !rallyPointController.syncInProgress - onClicked: rallyPointController.loadFromSelectedFile() - } - } - - FlightModeDropdown { activeVehicle: object } - - GuidedBar { activeVehicle: object } - } // Row - contents display - - Flow { - anchors.left: parent.left - anchors.right: parent.right - layoutDirection: Qt.LeftToRight - spacing: _margins - - Repeater { - model: [ "battery.voltage", "battery.percentRemaining", "altitudeRelative", "altitudeAMSL", "groundSpeed", "heading"] - - Column { - property Fact fact: object.getFact(modelData) - - QGCLabel { - anchors.horizontalCenter: parent.horizontalCenter - text: fact.shortDescription - } - Row { - anchors.horizontalCenter: parent.horizontalCenter - //spacing: ScreenTools.defaultFontPixelWidth - - QGCLabel { - text: fact.enumOrValueString - } - QGCLabel { - text: fact.units - } - } - } - } // Repeater - Small - } // Flow - } // Column - } // Rectangle - contents display - } // Column - layout for vehicle - } // Repeater - vehicle repeater - } // Column - } // QGCFlickable - } // Rectangle - View background - } // QGCViewPanel - - Component { - id: mobileFilePicker - - QGCMobileFileDialog { - openDialog: true - fileExtension: _fileDialogController.fileExtension - - onFilenameReturned: { - _fileDialogController.loadFromFile(filename) - _fileDialogController.sendToVehicle() - } - } - } -} // QGCView diff --git a/src/QmlControls/GuidedBar.qml b/src/QmlControls/GuidedBar.qml deleted file mode 100644 index c7f0322..0000000 --- a/src/QmlControls/GuidedBar.qml +++ /dev/null @@ -1,269 +0,0 @@ -/**************************************************************************** - * - * (c) 2009-2016 QGROUNDCONTROL PROJECT - * - * QGroundControl is licensed according to the terms in the file - * COPYING.md in the root of the source code directory. - * - ****************************************************************************/ - -import QtQuick 2.3 - -import QGroundControl 1.0 -import QGroundControl.Controls 1.0 -import QGroundControl.ScreenTools 1.0 -import QGroundControl.Palette 1.0 - -//-- Guided mode bar - -Rectangle { - id: guidedModeBar - width: guidedModeColumn.width + (_margins * 2) - height: guidedModeColumn.height + (_margins * 2) - radius: ScreenTools.defaultFontPixelHeight * 0.25 - color: backgroundColor - - property var activeVehicle ///< Vehicle to show guided bar for - property real fontPointSize: ScreenTools.defaultFontPointSize ///< point size for fonts in control - property color backgroundColor: qgcPal.windowShadeDark ///< Background color for bar - - // Values for _confirmActionCode - readonly property int confirmHome: 1 - readonly property int confirmLand: 2 - readonly property int confirmTakeoff: 3 - readonly property int confirmArm: 4 - readonly property int confirmDisarm: 5 - readonly property int confirmEmergencyStop: 6 - readonly property int confirmChangeAlt: 7 - readonly property int confirmGoTo: 8 - readonly property int confirmRetask: 9 - readonly property int confirmOrbit: 10 - - property int _confirmActionCode - property real _showMargin: _margins - property real _hideMargin: _margins - guidedModeBar.height - property real _barMargin: _showMargin - property bool _showConfirm: false - property string _confirmText - property bool _showAltitude: false - property real _confirmAltitude - - function actionConfirmed(altitude) { - _showConfirm = false - switch (_confirmActionCode) { - case confirmHome: - activeVehicle.guidedModeRTL() - break; - case confirmLand: - activeVehicle.guidedModeLand() - break; - case confirmTakeoff: - activeVehicle.guidedModeTakeoff(altitude) - break; - case confirmArm: - activeVehicle.armed = true - break; - case confirmDisarm: - activeVehicle.armed = false - break; - case confirmEmergencyStop: - activeVehicle.emergencyStop() - break; - case confirmChangeAlt: - activeVehicle.guidedModeChangeAltitude(altitude) - break; - case confirmGoTo: - activeVehicle.guidedModeGotoLocation(_flightMap._gotoHereCoordinate) - break; - case confirmRetask: - activeVehicle.setCurrentMissionSequence(_flightMap._retaskSequence) - break; - case confirmOrbit: - //-- All parameters controlled by RC - activeVehicle.guidedModeOrbit() - //-- Center on current flight map position and orbit with a 50m radius (velocity/direction controlled by the RC) - //activeVehicle.guidedModeOrbit(QGroundControl.flightMapPosition, 50.0) - break; - default: - console.warn(qsTr("Internal error: unknown _confirmActionCode"), _confirmActionCode) - } - } - - function actionRejected() { - _showConfirm = false - /* - altitudeSlider.visible = false - _flightMap._gotoHereCoordinate = QtPositioning.coordinate() - guidedModeHideTimer.restart() - */ - } - - function confirmAction(actionCode) { - //guidedModeHideTimer.stop() - _confirmActionCode = actionCode - _showAltitude = false - switch (_confirmActionCode) { - case confirmArm: - _confirmText = qsTr("Arm vehicle?") - break; - case confirmDisarm: - _confirmText = qsTr("Disarm vehicle?") - break; - case confirmEmergencyStop: - _confirmText = qsTr("STOP ALL MOTORS?") - break; - case confirmTakeoff: - _showAltitude = true - setInitialValueMeters(3) - _confirmText = qsTr("Takeoff vehicle?") - break; - case confirmLand: - _confirmText = qsTr("Land vehicle?") - break; - case confirmHome: - _confirmText = qsTr("Return to land?") - break; - case confirmChangeAlt: - _showAltitude = true - setInitialValueAppSettingsDistanceUnits(activeVehicle.altitudeRelative.value) - _confirmText = qsTr("Change altitude?") - break; - case confirmGoTo: - _confirmText = qsTr("Move vehicle?") - break; - case confirmRetask: - _confirmText = qsTr("Change active waypoint?") - break; - case confirmOrbit: - _confirmText = qsTr("Enter orbit mode?") - break; - } - _showConfirm = true - } - - function setInitialValueMeters(meters) { - _confirmAltitude = QGroundControl.metersToAppSettingsDistanceUnits(meters) - } - - function setInitialValueAppSettingsDistanceUnits(height) { - _confirmAltitude = height - } - - QGCPalette { id: qgcPal; colorGroupEnabled: enabled } - - Column { - id: guidedModeColumn - anchors.margins: _margins - anchors.top: parent.top - anchors.left: parent.left - spacing: _margins - - /* - QGCLabel { - anchors.horizontalCenter: parent.horizontalCenter - color: _lightWidgetBorders ? qgcPal.mapWidgetBorderDark : qgcPal.mapWidgetBorderLight - text: "Click in map to move vehicle" - visible: gotoEnabled - }*/ - - Row { - spacing: _margins * 2 - visible: !_showConfirm - - QGCButton { - pointSize: fontPointSize - text: (activeVehicle && activeVehicle.armed) ? (activeVehicle.flying ? qsTr("Emergency Stop") : qsTr("Disarm")) : qsTr("Arm") - visible: activeVehicle - onClicked: confirmAction(activeVehicle.armed ? (activeVehicle.flying ? confirmEmergencyStop : confirmDisarm) : confirmArm) - } - - QGCButton { - pointSize: fontPointSize - text: qsTr("RTL") - visible: (activeVehicle && activeVehicle.armed) && activeVehicle.guidedModeSupported && activeVehicle.flying - onClicked: confirmAction(confirmHome) - } - - QGCButton { - pointSize: fontPointSize - text: (activeVehicle && activeVehicle.flying) ? qsTr("Land"): qsTr("Takeoff") - visible: activeVehicle && activeVehicle.guidedModeSupported && activeVehicle.armed - onClicked: confirmAction(activeVehicle.flying ? confirmLand : confirmTakeoff) - } - - QGCButton { - pointSize: fontPointSize - text: qsTr("Pause") - visible: (activeVehicle && activeVehicle.armed) && activeVehicle.pauseVehicleSupported && activeVehicle.flying - onClicked: { - guidedModeHideTimer.restart() - activeVehicle.pauseVehicle() - } - } - - QGCButton { - pointSize: fontPointSize - text: qsTr("Change Altitude") - visible: (activeVehicle && activeVehicle.flying) && activeVehicle.guidedModeSupported && activeVehicle.armed - onClicked: confirmAction(confirmChangeAlt) - } - - QGCButton { - pointSize: fontPointSize - text: qsTr("Orbit") - visible: (activeVehicle && activeVehicle.flying) && activeVehicle.orbitModeSupported && activeVehicle.armed - onClicked: confirmAction(confirmOrbit) - } - - } // Row - - Column { - visible: _showConfirm - - QGCLabel { - anchors.horizontalCenter: parent.horizontalCenter - text: _confirmText - } - - Row { - anchors.horizontalCenter: parent.horizontalCenter - spacing: ScreenTools.defaultFontPixelWidth - - Row { - visible: _showAltitude - - QGCLabel { - text: qsTr("Alt (rel)") - } - - QGCLabel { - text: QGroundControl.appSettingsDistanceUnitsString - } - - QGCTextField { - id: altField - text: _confirmAltitude.toFixed(1) - } - } - - QGCButton { - text: qsTr("Yes") - - onClicked: { - var value = parseFloat(altField.text) - if (isNaN(value)) { - actionRejected() - } else { - actionConfirmed(QGroundControl.appSettingsDistanceUnitsToMeters(value)) - } - } - } - - QGCButton { - text: qsTr("No") - onClicked: actionRejected() - } - } - } // Column - } // Column -} // Rectangle - Guided mode buttons diff --git a/src/QmlControls/QGroundControl.Controls.qmldir b/src/QmlControls/QGroundControl.Controls.qmldir index eb722ee..3fbaad8 100644 --- a/src/QmlControls/QGroundControl.Controls.qmldir +++ b/src/QmlControls/QGroundControl.Controls.qmldir @@ -12,7 +12,6 @@ FlightModeDropdown 1.0 FlightModeDropdown.qml FlightModeMenu 1.0 FlightModeMenu.qml GeoFenceEditor 1.0 GeoFenceEditor.qml GeoFenceMapVisuals 1.0 GeoFenceMapVisuals.qml -GuidedBar 1.0 GuidedBar.qml IndicatorButton 1.0 IndicatorButton.qml JoystickThumbPad 1.0 JoystickThumbPad.qml MainToolBar 1.0 MainToolBar.qml From 0a23e4901ab1dabd8b39d8e68de8c85972f7f5de Mon Sep 17 00:00:00 2001 From: DonLakeFlyer Date: Fri, 24 Mar 2017 11:38:18 -0700 Subject: [PATCH 2/2] 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 fbf9bcf..aa36354 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 602b905..f6958b0 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 520a1bc..a9167c1 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 1434a91..97178e5 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 8916872..069895f 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 b86111a..c5c6d4c 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 21fea1d..48ab49d 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 e875006..9e15e1e 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 5abbef7..edff6af 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 5185279..6e459a8 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.