diff --git a/src/FlightDisplay/FlyView.qml b/src/FlightDisplay/FlyView.qml index 0e404ead5ec38ea10b07f864cc34ea78e0c4f74b..7323c8cc90cb4a7f011a56b96df78cec97d41f1d 100644 --- a/src/FlightDisplay/FlyView.qml +++ b/src/FlightDisplay/FlyView.qml @@ -32,13 +32,14 @@ import QGroundControl.Vehicle 1.0 Item { id: _root + // These should only be used by MainRootWindow + property var planController: _planController + property var guidedController: _guidedController + PlanMasterController { - id: _planController - flyView: true - Component.onCompleted: { - start() - mainWindow.planMasterControllerFlyView = _planController - } + id: _planController + flyView: true + Component.onCompleted: start() } property bool _mainWindowIsMap: mapControl.pipState.state === mapControl.pipState.fullState @@ -138,12 +139,11 @@ Item { } FlyViewMap { - id: mapControl - guidedActionsController: _guidedController - planMasterController: _planController - rightPanelWidth: ScreenTools.defaultFontPixelHeight * 9 - pipMode: !_mainWindowIsMap - toolInsets: customOverlay.totalToolInsets + id: mapControl + planMasterController: _planController + rightPanelWidth: ScreenTools.defaultFontPixelHeight * 9 + pipMode: !_mainWindowIsMap + toolInsets: customOverlay.totalToolInsets mapName: "FlightDisplayView" } diff --git a/src/FlightDisplay/FlyViewInstrumentPanel.qml b/src/FlightDisplay/FlyViewInstrumentPanel.qml index e49477a0c2a84714773984519375bbcabae03cae..735330d06ebefdf92591ea537ad26eb9f1c66432 100644 --- a/src/FlightDisplay/FlyViewInstrumentPanel.qml +++ b/src/FlightDisplay/FlyViewInstrumentPanel.qml @@ -22,13 +22,11 @@ Column { z: QGroundControl.zOrderWidgets property real availableHeight - property var guidedActionsController MultiVehiclePanel { - id: multiVehiclePanel - width: parent.width - availableHeight: parent.height - y - guidedActionsController: _root.guidedActionsController + id: multiVehiclePanel + width: parent.width + availableHeight: parent.height - y } AirspaceControl { diff --git a/src/FlightDisplay/FlyViewMap.qml b/src/FlightDisplay/FlyViewMap.qml index c351d1270da29bd09ad9097858d07cc3a8a6aa78..f38f8bf0dac2842d6609a417cd881501feafece4 100644 --- a/src/FlightDisplay/FlyViewMap.qml +++ b/src/FlightDisplay/FlyViewMap.qml @@ -38,7 +38,6 @@ FlightMap { isDark: _isFullWindowItemDark } - property var guidedActionsController property var rightPanelWidth property var planMasterController property bool pipMode: false // true: map is shown in a small pip mode @@ -433,7 +432,7 @@ FlightMap { return _mapCircle.radius.rawValue } - Component.onCompleted: guidedActionsController.orbitMapCircle = orbitMapCircle + Component.onCompleted: mainWindow.guidedControllerFlyView.orbitMapCircle = orbitMapCircle QGCMapCircle { id: _mapCircle @@ -503,35 +502,35 @@ FlightMap { property var coord QGCMenuItem { text: qsTr("Go to location") - visible: guidedActionsController.showGotoLocation + visible: mainWindow.guidedControllerFlyView.showGotoLocation onTriggered: { gotoLocationItem.show(clickMenu.coord) - guidedActionsController.confirmAction(guidedActionsController.actionGoto, clickMenu.coord, gotoLocationItem) + mainWindow.guidedControllerFlyView.confirmAction(mainWindow.guidedControllerFlyView.actionGoto, clickMenu.coord, gotoLocationItem) } } QGCMenuItem { text: qsTr("Orbit at location") - visible: guidedActionsController.showOrbit + visible: mainWindow.guidedControllerFlyView.showOrbit onTriggered: { orbitMapCircle.show(clickMenu.coord) - guidedActionsController.confirmAction(guidedActionsController.actionOrbit, clickMenu.coord, orbitMapCircle) + mainWindow.guidedControllerFlyView.confirmAction(mainWindow.guidedControllerFlyView.actionOrbit, clickMenu.coord, orbitMapCircle) } } QGCMenuItem { text: qsTr("ROI at location") - visible: guidedActionsController.showROI + visible: mainWindow.guidedControllerFlyView.showROI onTriggered: { roiLocationItem.show(clickMenu.coord) - guidedActionsController.confirmAction(guidedActionsController.actionROI, clickMenu.coord, roiLocationItem) + mainWindow.guidedControllerFlyView.confirmAction(mainWindow.guidedControllerFlyView.actionROI, clickMenu.coord, roiLocationItem) } } } onClicked: { - if (!guidedActionsController.guidedUIVisible && (guidedActionsController.showGotoLocation || guidedActionsController.showOrbit || guidedActionsController.showROI)) { + if (!mainWindow.guidedControllerFlyView.guidedUIVisible && (mainWindow.guidedControllerFlyView.showGotoLocation || mainWindow.guidedControllerFlyView.showOrbit || mainWindow.guidedControllerFlyView.showROI)) { orbitMapCircle.hide() gotoLocationItem.hide() var clickCoord = _root.toCoordinate(Qt.point(mouse.x, mouse.y), false /* clipToViewPort */) diff --git a/src/FlightDisplay/FlyViewMissionCompleteDialog.qml b/src/FlightDisplay/FlyViewMissionCompleteDialog.qml index 3cffe428061e04de4d5d91147536b6a8ef74da48..1fad8755d716a55f1be285969f395b3e358626d0 100644 --- a/src/FlightDisplay/FlyViewMissionCompleteDialog.qml +++ b/src/FlightDisplay/FlyViewMissionCompleteDialog.qml @@ -24,7 +24,6 @@ Item { property var missionController property var geoFenceController property var rallyPointController - property var guidedController // The following code is used to track vehicle states for showing the mission complete dialog property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle @@ -109,15 +108,15 @@ Item { ColumnLayout { Layout.fillWidth: true spacing: ScreenTools.defaultFontPixelHeight - visible: !_activeVehicle.connectionLost && guidedController.showResumeMission + visible: !_activeVehicle.connectionLost && mainWindow.guidedControllerFlyView.showResumeMission QGCButton { Layout.fillWidth: true Layout.alignment: Qt.AlignHCenter - text: qsTr("Resume Mission From Waypoint %1").arg(guidedController._resumeMissionIndex) + text: qsTr("Resume Mission From Waypoint %1").arg(mainWindow.guidedControllerFlyView._resumeMissionIndex) onClicked: { - guidedController.executeAction(guidedController.actionResumeMission, null, null) + mainWindow.guidedControllerFlyView.executeAction(mainWindow.guidedControllerFlyView.actionResumeMission, null, null) hideDialog() } } @@ -134,7 +133,7 @@ Item { wrapMode: Text.WordWrap color: qgcPal.warningText text: qsTr("If you are changing batteries for Resume Mission do not disconnect from the vehicle.") - visible: guidedController.showResumeMission + visible: mainWindow.guidedControllerFlyView.showResumeMission } } } diff --git a/src/FlightDisplay/FlyViewToolStrip.qml b/src/FlightDisplay/FlyViewToolStrip.qml index c2b151f60ae44811a2dcd02a62a987155365a0f0..8f543bdad8d5195ff94372f2ed09e4414d8f051c 100644 --- a/src/FlightDisplay/FlyViewToolStrip.qml +++ b/src/FlightDisplay/FlyViewToolStrip.qml @@ -17,9 +17,6 @@ ToolStrip { id: _root title: qsTr("Fly") - property var guidedActionsController - property var guidedActionList - signal displayPreFlightChecklist FlyViewToolStripActionList { diff --git a/src/FlightDisplay/FlyViewToolStripActionList.qml b/src/FlightDisplay/FlyViewToolStripActionList.qml index e08227e3f70182553fef77d7f3e5ba4a09e57843..4f969d23a23a3e400a022b244fd119cffa2e5eab 100644 --- a/src/FlightDisplay/FlyViewToolStripActionList.qml +++ b/src/FlightDisplay/FlyViewToolStripActionList.qml @@ -13,26 +13,16 @@ import QGroundControl 1.0 import QGroundControl.Controls 1.0 ToolStripActionList { + id: _root + signal displayPreFlightChecklist model: [ - PreFlightCheckListShowAction { - onTriggered: displayPreFlightChecklist() - }, - GuidedActionTakeoff { - guidedController: guidedActionsController - }, - GuidedActionLand { - guidedController: guidedActionsController - }, - GuidedActionRTL { - guidedController: guidedActionsController - }, - GuidedActionPause { - guidedController: guidedActionsController - }, - GuidedActionActionList { - guidedController: guidedActionsController - } + PreFlightCheckListShowAction { onTriggered: displayPreFlightChecklist() }, + GuidedActionTakeoff { }, + GuidedActionLand { }, + GuidedActionRTL { }, + GuidedActionPause { }, + GuidedActionActionList { } ] } diff --git a/src/FlightDisplay/FlyViewWidgetLayer.qml b/src/FlightDisplay/FlyViewWidgetLayer.qml index f022560a4ec78cd0c0796541d33a9013c6b4202c..6ebdd017b4409a5550dac732599118719d8dfda9 100644 --- a/src/FlightDisplay/FlyViewWidgetLayer.qml +++ b/src/FlightDisplay/FlyViewWidgetLayer.qml @@ -42,6 +42,7 @@ Item { property var _missionController: _planMasterController.missionController property var _geoFenceController: _planMasterController.geoFenceController property var _rallyPointController: _planMasterController.rallyPointController + property var _guidedController: mainWindow.guidedControllerFlyView property real _margins: ScreenTools.defaultFontPixelWidth / 2 property real _toolsMargin: ScreenTools.defaultFontPixelWidth * 0.75 property rect _centerViewport: Qt.rect(0, 0, width, height) @@ -67,7 +68,6 @@ Item { missionController: _missionController geoFenceController: _geoFenceController rallyPointController: _rallyPointController - guidedController: _root.guidedActionsController } FlyViewInstrumentPanel { @@ -79,7 +79,6 @@ Item { width: _rightPanelWidth spacing: _toolsMargin visible: QGroundControl.corePlugin.options.flyView.showInstrumentPanel - guidedActionsController: _guidedController availableHeight: parent.height - y - _toolsMargin property real rightInset: visible ? parent.width - x : 0 @@ -104,16 +103,14 @@ Item { } FlyViewToolStrip { - id: toolStrip - anchors.leftMargin: _toolsMargin + parentToolInsets.leftEdgeCenterInset - anchors.topMargin: _toolsMargin + parentToolInsets.leftEdgeTopInset - anchors.left: parent.left - anchors.top: parent.top - z: QGroundControl.zOrderWidgets - maxHeight: parent.height - y - parentToolInsets.leftEdgeBottomInset - _toolsMargin - guidedActionsController: _guidedController - guidedActionList: _guidedActionList - visible: !QGroundControl.videoManager.fullScreen + id: toolStrip + anchors.leftMargin: _toolsMargin + parentToolInsets.leftEdgeCenterInset + anchors.topMargin: _toolsMargin + parentToolInsets.leftEdgeTopInset + anchors.left: parent.left + anchors.top: parent.top + z: QGroundControl.zOrderWidgets + maxHeight: parent.height - y - parentToolInsets.leftEdgeBottomInset - _toolsMargin + visible: !QGroundControl.videoManager.fullScreen onDisplayPreFlightChecklist: preFlightChecklistPopup.open() diff --git a/src/FlightDisplay/GuidedActionActionList.qml b/src/FlightDisplay/GuidedActionActionList.qml index 383e8a920e7c0ffd385dde5b09c46662e5b919d7..c88a9f1b4915abb24bb2fca83d0379e3dd75eed1 100644 --- a/src/FlightDisplay/GuidedActionActionList.qml +++ b/src/FlightDisplay/GuidedActionActionList.qml @@ -10,9 +10,9 @@ import QGroundControl.FlightDisplay 1.0 GuidedToolStripAction { - text: guidedController.actionListTitle + text: _guidedController.actionListTitle iconSource: "/res/action.svg" - visible: guidedController.showActionList + visible: _guidedController.showActionList enabled: true - actionID: guidedController.actionActionList + actionID: _guidedController.actionActionList } diff --git a/src/FlightDisplay/GuidedActionLand.qml b/src/FlightDisplay/GuidedActionLand.qml index 164598bc7dae3c16417a0b38213eb620474e7f69..d4a539a4f1b21a07f1a8c6fb504a6ed2e55be9a4 100644 --- a/src/FlightDisplay/GuidedActionLand.qml +++ b/src/FlightDisplay/GuidedActionLand.qml @@ -10,10 +10,10 @@ import QGroundControl.FlightDisplay 1.0 GuidedToolStripAction { - text: guidedController.landTitle - message: guidedController.landMessage - iconSource: "/res/land.svg" - visible: guidedController.showLand && !guidedController.showTakeoff - enabled: guidedController.showLand - actionID: guidedController.actionLand + text: _guidedController.landTitle + message: _guidedController.landMessage + iconSource: "/res/land.svg" + visible: _guidedController.showLand && !_guidedController.showTakeoff + enabled: _guidedController.showLand + actionID: _guidedController.actionLand } diff --git a/src/FlightDisplay/GuidedActionPause.qml b/src/FlightDisplay/GuidedActionPause.qml index ce908040aa0ff535a5dcf7ad34fd1c051b95393b..7fa33654c6f7d80a11c38ba459a68eb884bcf194 100644 --- a/src/FlightDisplay/GuidedActionPause.qml +++ b/src/FlightDisplay/GuidedActionPause.qml @@ -10,9 +10,9 @@ import QGroundControl.FlightDisplay 1.0 GuidedToolStripAction { - text: guidedController.pauseTitle - iconSource: "/res/pause-mission.svg" - visible: guidedController.showPause - enabled: guidedController.showPause - actionID: guidedController.actionPause + text: _guidedController.pauseTitle + iconSource: "/res/pause-mission.svg" + visible: _guidedController.showPause + enabled: _guidedController.showPause + actionID: _guidedController.actionPause } diff --git a/src/FlightDisplay/GuidedActionRTL.qml b/src/FlightDisplay/GuidedActionRTL.qml index 7280edd6eb339506175131a42308229c117276a4..288b917cf60e39865ce5c61a8d5e768a60e4ea3f 100644 --- a/src/FlightDisplay/GuidedActionRTL.qml +++ b/src/FlightDisplay/GuidedActionRTL.qml @@ -10,9 +10,9 @@ import QGroundControl.FlightDisplay 1.0 GuidedToolStripAction { - text: guidedController.rtlTitle - iconSource: "/res/rtl.svg" - visible: true - enabled: guidedController.showRTL - actionID: guidedController.actionRTL + text: _guidedController.rtlTitle + iconSource: "/res/rtl.svg" + visible: true + enabled: _guidedController.showRTL + actionID: _guidedController.actionRTL } diff --git a/src/FlightDisplay/GuidedActionTakeoff.qml b/src/FlightDisplay/GuidedActionTakeoff.qml index 04805b21c4f55a99766b8e059f8b6e5cc9a50089..32670b64e0f3a7dec5133063c527419c985b8be0 100644 --- a/src/FlightDisplay/GuidedActionTakeoff.qml +++ b/src/FlightDisplay/GuidedActionTakeoff.qml @@ -10,9 +10,9 @@ import QGroundControl.FlightDisplay 1.0 GuidedToolStripAction { - text: guidedController.takeoffTitle - iconSource: "/res/takeoff.svg" - visible: guidedController.showTakeoff || !guidedController.showLand - enabled: guidedController.showTakeoff - actionID: guidedController.actionTakeoff + text: _guidedController.takeoffTitle + iconSource: "/res/takeoff.svg" + visible: _guidedController.showTakeoff || !_guidedController.showLand + enabled: _guidedController.showTakeoff + actionID: _guidedController.actionTakeoff } diff --git a/src/FlightDisplay/GuidedToolStripAction.qml b/src/FlightDisplay/GuidedToolStripAction.qml index 7c83bdd240d9231830ed1866bb7f3a956885e099..2de4b300d0733feede23556a7e324fa89065d39c 100644 --- a/src/FlightDisplay/GuidedToolStripAction.qml +++ b/src/FlightDisplay/GuidedToolStripAction.qml @@ -10,12 +10,13 @@ import QGroundControl.Controls 1.0 ToolStripAction { - property var guidedController property int actionID property string message + property var _guidedController: mainWindow.guidedControllerFlyView + onTriggered: { - guidedActionsController.closeAll() - guidedController.confirmAction(actionID) + _guidedController.closeAll() + _guidedController.confirmAction(actionID) } } diff --git a/src/FlightDisplay/MultiVehicleList.qml b/src/FlightDisplay/MultiVehicleList.qml index ae5ad0de3bb730c1a6ef72719c9e46d331a6fc46..e1fa05fbafb91379416d3e819dd3b10cfda947d7 100644 --- a/src/FlightDisplay/MultiVehicleList.qml +++ b/src/FlightDisplay/MultiVehicleList.qml @@ -19,12 +19,11 @@ import QGroundControl.Vehicle 1.0 import QGroundControl.FlightMap 1.0 Item { - property var guidedActionsController - - property real _margin: ScreenTools.defaultFontPixelWidth / 2 - property real _widgetHeight: ScreenTools.defaultFontPixelHeight * 3 - property color _textColor: "black" - property real _rectOpacity: 0.8 + property real _margin: ScreenTools.defaultFontPixelWidth / 2 + property real _widgetHeight: ScreenTools.defaultFontPixelHeight * 3 + property color _textColor: "black" + property real _rectOpacity: 0.8 + property var _guidedController: mainWindow.guidedControllerFlyView QGCPalette { id: qgcPal } @@ -63,12 +62,12 @@ Item { QGCButton { text: "Pause" - onClicked: guidedActionsController.confirmAction(guidedActionsController.actionMVPause) + onClicked: _guidedController.confirmAction(_guidedController.actionMVPause) } QGCButton { text: "Start Mission" - onClicked: guidedActionsController.confirmAction(guidedActionsController.actionMVStartMission) + onClicked: _guidedController.confirmAction(_guidedController.actionMVStartMission) } } } diff --git a/src/FlightDisplay/MultiVehiclePanel.qml b/src/FlightDisplay/MultiVehiclePanel.qml index 7075ae2df2b54ae8bae41e2dede9096f0fc13dbd..7e657cab99cf1ab908682dff8a2fc02d7f7e0b1c 100644 --- a/src/FlightDisplay/MultiVehiclePanel.qml +++ b/src/FlightDisplay/MultiVehiclePanel.qml @@ -25,7 +25,6 @@ Item { property alias singleVehiclePanel: singleVehicleView.checked property real availableHeight - property var guidedActionsController QGCMapPalette { id: mapPal; lightColors: true } @@ -47,11 +46,10 @@ Item { } MultiVehicleList { - anchors.topMargin: ScreenTools.defaultFontPixelHeight / 2 - anchors.top: selectorRow.bottom - anchors.bottom: parent.bottom - width: parent.width - visible: !singleVehiclePanel && !QGroundControl.videoManager.fullScreen && QGroundControl.corePlugin.options.showMultiVehicleList - guidedActionsController: _root.guidedActionsController + anchors.topMargin: ScreenTools.defaultFontPixelHeight / 2 + anchors.top: selectorRow.bottom + anchors.bottom: parent.bottom + width: parent.width + visible: !singleVehiclePanel && !QGroundControl.videoManager.fullScreen && QGroundControl.corePlugin.options.showMultiVehicleList } } diff --git a/src/FlightMap/MapItems/PlanMapItems.qml b/src/FlightMap/MapItems/PlanMapItems.qml index 58993356866192fbcc2848b79b7c0acc34885966..b652fba2b4d3aec194afad9d247c1dafd0c15c96 100644 --- a/src/FlightMap/MapItems/PlanMapItems.qml +++ b/src/FlightMap/MapItems/PlanMapItems.qml @@ -30,6 +30,7 @@ Item { property var _missionController: masterController.missionController property var _geoFenceController: masterController.geoFenceController property var _rallyPointController: masterController.rallyPointController + property var _guidedController: mainWindow.guidedControllerFlyView property var _missionLineViewComponent property bool _isActiveVehicle: vehicle.active @@ -42,7 +43,7 @@ Item { delegate: MissionItemMapVisual { map: _map vehicle: _vehicle - onClicked: guidedActionsController.confirmAction(guidedActionsController.actionSetWaypoint, Math.max(object.sequenceNumber, 1)) + onClicked: _guidedController.confirmAction(_guidedController.actionSetWaypoint, Math.max(object.sequenceNumber, 1)) } } diff --git a/src/ui/MainRootWindow.qml b/src/ui/MainRootWindow.qml index bf305fe64d2278b4fff913d394e9e662d5916e43..bc615496d48e039b21284733b95d68c485abacb5 100644 --- a/src/ui/MainRootWindow.qml +++ b/src/ui/MainRootWindow.qml @@ -75,15 +75,15 @@ ApplicationWindow { //------------------------------------------------------------------------- //-- Global Scope Variables - /// Current active Vehicle property var activeVehicle: QGroundControl.multiVehicleManager.activeVehicle property string formatedMessage: activeVehicle ? activeVehicle.formatedMessage : "" /// Indicates usable height between toolbar and footer property real availableHeight: mainWindow.height - mainWindow.header.height - mainWindow.footer.height - property var currentPlanMissionItem: planMasterControllerPlanView ? planMasterControllerPlanView.missionController.currentPlanViewItem : null property var planMasterControllerPlanView: null - property var planMasterControllerFlyView: null + property var currentPlanMissionItem: planMasterControllerPlanView ? planMasterControllerPlanView.missionController.currentPlanViewItem : null + property var planMasterControllerFlyView: flightView.planController + property var guidedControllerFlyView: flightView.guidedController readonly property string navButtonWidth: ScreenTools.defaultFontPixelWidth * 24 readonly property real defaultTextHeight: ScreenTools.defaultFontPixelHeight