QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
PlanViewRightPanel.qml
Go to the documentation of this file.
1import QtQuick
2import QtQuick.Controls
3import QtQuick.Layouts
4
5import QGroundControl
6import QGroundControl.Controls
7
8Item {
9 required property var editorMap
10 required property var planMasterController
11
12 signal editingLayerChangeRequested(int layer)
13
14 id: root
15
16 property var _missionController: planMasterController.missionController
17 property real _toolsMargin: ScreenTools.defaultFontPixelWidth * 0.75
18
19 function selectNextNotReady() {
20 for (var i = 0; i < _missionController.visualItems.count; i++) {
21 var vmi = _missionController.visualItems.get(i)
22 if (vmi.readyForSaveState === VisualMissionItem.NotReadyForSaveData) {
23 _missionController.setCurrentPlanViewSeqNum(vmi.sequenceNumber, true)
24 break
25 }
26 }
27 }
28
29 QGCPalette { id: qgcPal }
30
31 Rectangle {
32 id: rightPanelBackground
33 anchors.fill: parent
34 color: qgcPal.window
35 opacity: 0.85
36 }
37
38
39 // Open/Close panel
40 Item {
41 id: panelOpenCloseButton
42 anchors.right: parent.left
43 anchors.verticalCenter: parent.verticalCenter
44 width: toggleButtonRect.width - toggleButtonRect.radius
45 height: toggleButtonRect.height
46 clip: true
47
48 property bool _expanded: root.anchors.right == root.parent.right
49
50 Rectangle {
51 id: toggleButtonRect
52 width: ScreenTools.defaultFontPixelWidth * 2.25
53 height: width * 3
54 radius: ScreenTools.defaultBorderRadius
55 color: rightPanelBackground.color
56 opacity: rightPanelBackground.opacity
57
58 QGCLabel {
59 id: toggleButtonLabel
60 anchors.centerIn: parent
61 text: panelOpenCloseButton._expanded ? ">" : "<"
62 color: qgcPal.buttonText
63 }
64
65 }
66
67 QGCMouseArea {
68 anchors.fill: parent
69
70 onClicked: {
71 if (panelOpenCloseButton._expanded) {
72 // Close panel
73 root.anchors.right = undefined
74 root.anchors.left = root.parent.right
75 } else {
76 // Open panel
77 root.anchors.left = undefined
78 root.anchors.right = root.parent.right
79 }
80 }
81 }
82 }
83
84 //-------------------------------------------------------
85 // Right Panel Controls
86 Item {
87 anchors.fill: rightPanelBackground
88
89 DeadMouseArea {
90 anchors.fill: parent
91 }
92
93 MissionItemTreeView {
94 id: missionItemTreeView
95 anchors.fill: parent
96 editorMap: root.editorMap
97 planMasterController: root.planMasterController
98 onEditingLayerChangeRequested: (layer) => root.editingLayerChangeRequested(layer)
99 }
100 }
101
102 function selectLayer(nodeType) {
103 // Ensure panel is open
104 if (!panelOpenCloseButton._expanded) {
105 root.anchors.left = undefined
106 root.anchors.right = root.parent.right
107 }
108 missionItemTreeView.selectLayer(nodeType)
109 }
110}