12import QGroundControl.Controls
13import QGroundControl.FlyView
14import QGroundControl.FlightMap
15import QGroundControl.Toolbar
16import QGroundControl.Viewer3D
21 readonly property bool _is3DMode: QGCViewer3DManager.displayMode === QGCViewer3DManager.View3D
22 readonly property bool _keepSceneAlive: QGroundControl.settingsManager.viewer3DSettings.keepSceneAlive.rawValue
24 // These should only be used by MainRootWindow
25 property var planController: _planController
26 property var guidedController: _guidedController
28 PlanMasterController {
31 Component.onCompleted: start()
34 property bool _mainWindowIsMap: mapControl.pipState.state === mapControl.pipState.fullState
35 property bool _isFullWindowItemDark: _mainWindowIsMap ? mapControl.isSatelliteMap : true
36 property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle
37 property var _missionController: _planController.missionController
38 property var _geoFenceController: _planController.geoFenceController
39 property var _rallyPointController: _planController.rallyPointController
40 property real _margins: ScreenTools.defaultFontPixelWidth / 2
41 property var _guidedController: guidedActionsController
42 property var _guidedValueSlider: guidedValueSlider
43 property var _widgetLayer: widgetLayer
44 property real _toolsMargin: ScreenTools.defaultFontPixelWidth * 0.75
45 property rect _centerViewport: Qt.rect(0, 0, width, height)
46 property real _rightPanelWidth: ScreenTools.defaultFontPixelWidth * 30
47 property var _mapControl: mapControl
48 property real _widgetMargin: ScreenTools.defaultFontPixelWidth * 0.75
50 property real _fullItemZorder: 0
51 property real _pipItemZorder: QGroundControl.zOrderWidgets
53 function _calcCenterViewPort() {
54 var newToolInset = Qt.rect(0, 0, width, height)
55 toolstrip.adjustToolInset(newToolInset)
58 function dropMainStatusIndicatorTool() {
59 toolbar.dropMainStatusIndicatorTool();
64 topEdgeLeftInset: toolbar.height
65 topEdgeCenterInset: topEdgeLeftInset
66 topEdgeRightInset: topEdgeLeftInset
67 leftEdgeBottomInset: _pipView.leftEdgeBottomInset
68 bottomEdgeLeftInset: _pipView.bottomEdgeLeftInset
77 planMasterController: _planController
78 rightPanelWidth: ScreenTools.defaultFontPixelHeight * 9
80 pipMode: !_mainWindowIsMap
81 toolInsets: customOverlay.totalToolInsets
82 mapName: "FlightDisplayView"
94 anchors.left: parent.left
95 anchors.bottom: parent.bottom
96 anchors.margins: _toolsMargin
97 item1IsFullSettingsKey: "MainFlyWindowIsMap"
99 item2: QGroundControl.videoManager.hasVideo ? videoControl : null
100 show: QGroundControl.videoManager.hasVideo && !QGroundControl.videoManager.fullScreen &&
101 (videoControl.pipState.state === videoControl.pipState.pipState || mapControl.pipState.state === mapControl.pipState.pipState)
102 z: QGroundControl.zOrderWidgets
104 property real leftEdgeBottomInset: visible ? width + anchors.margins : 0
105 property real bottomEdgeLeftInset: visible ? height + anchors.margins : 0
110 anchors.top: parent.top
111 anchors.bottom: parent.bottom
112 anchors.left: parent.left
113 anchors.right: guidedValueSlider.visible ? guidedValueSlider.left : parent.right
114 anchors.margins: _widgetMargin
115 anchors.topMargin: toolbar.height + _widgetMargin
116 z: _fullItemZorder + 2
117 parentToolInsets: _toolInsets
118 mapControl: _mapControl
119 viewer3DCameraController: viewer3DLoader.item ? viewer3DLoader.item.cameraController : null
120 visible: !QGroundControl.videoManager.fullScreen
125 anchors.fill: widgetLayer
126 z: _fullItemZorder + 2
127 parentToolInsets: widgetLayer.totalToolInsets
128 mapControl: _mapControl
129 visible: !QGroundControl.videoManager.fullScreen
132 // Development tool for visualizing the insets for a paticular layer, show if needed
134 id: widgetLayerInsetViewer
135 anchors.top: parent.top
136 anchors.bottom: parent.bottom
137 anchors.left: parent.left
138 anchors.right: guidedValueSlider.visible ? guidedValueSlider.left : parent.right
140 insetsToView: widgetLayer.totalToolInsets
144 GuidedActionsController {
145 id: guidedActionsController
146 missionController: _missionController
147 guidedValueSlider: _guidedValueSlider
150 //-- Guided value slider (e.g. altitude)
152 id: guidedValueSlider
153 anchors.right: parent.right
154 anchors.top: parent.top
155 anchors.bottom: parent.bottom
156 anchors.topMargin: toolbar.height
157 z: QGroundControl.zOrderTopMost
169 target: QGCViewer3DManager
170 function onDisplayModeChanged() {
171 if (QGCViewer3DManager.displayMode === QGCViewer3DManager.View3D) {
172 if (!viewer3DLoader.item) {
173 viewer3DLoader.setSource("qrc:/qml/QGroundControl/Viewer3D/Models3D/Viewer3DModel.qml")
175 } else if (!_keepSceneAlive) {
176 viewer3DLoader.source = ""
184 guidedValueSlider: _guidedValueSlider
185 visible: !QGroundControl.videoManager.fullScreen