6import QGroundControl.Controls
7import QGroundControl.FlightMap
8import QGroundControl.FlyView
11 property real _margin: ScreenTools.defaultFontPixelWidth / 2
12 property real _widgetHeight: ScreenTools.defaultFontPixelHeight * 2.5
13 property var _guidedController: globals.guidedControllerFlyView
14 property var _activeVehicleColor: "green"
15 property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle
16 property var selectedVehicles: QGroundControl.multiVehicleManager.selectedVehicles
18 implicitHeight: vehicleList.contentHeight
20 function armAvailable() {
21 for (var i = 0; i < selectedVehicles.count; i++) {
22 var vehicle = selectedVehicles.get(i)
23 if (vehicle.armed === false) {
31 function disarmAvailable() {
32 for (var i = 0; i < selectedVehicles.count; i++) {
33 var vehicle = selectedVehicles.get(i)
34 if (vehicle.armed === true) {
41 function startAvailable() {
42 for (var i = 0; i < selectedVehicles.count; i++) {
43 var vehicle = selectedVehicles.get(i)
44 if (vehicle.armed === true && vehicle.flightMode !== vehicle.missionFlightMode){
51 function pauseAvailable() {
52 for (var i = 0; i < selectedVehicles.count; i++) {
53 var vehicle = selectedVehicles.get(i)
54 if (vehicle.armed === true && vehicle.supports.pauseVehicle) {
61 function selectVehicle(vehicleId) {
62 QGroundControl.multiVehicleManager.selectVehicle(vehicleId)
65 function deselectVehicle(vehicleId) {
66 QGroundControl.multiVehicleManager.deselectVehicle(vehicleId)
69 function toggleSelect(vehicleId) {
70 if (!vehicleSelected(vehicleId)) {
71 selectVehicle(vehicleId)
73 deselectVehicle(vehicleId)
77 function selectAll() {
78 var vehicles = QGroundControl.multiVehicleManager.vehicles
79 for (var i = 0; i < vehicles.count; i++) {
80 var vehicle = vehicles.get(i)
81 var vehicleId = vehicle.id
82 if (!vehicleSelected(vehicleId)) {
83 selectVehicle(vehicleId)
88 function deselectAll() {
89 QGroundControl.multiVehicleManager.deselectAllVehicles()
92 function vehicleSelected(vehicleId) {
93 for (var i = 0; i < selectedVehicles.count; i++ ) {
94 var currentId = selectedVehicles.get(i).id
95 if (vehicleId === currentId) {
104 anchors.left: parent.left
105 anchors.right: parent.right
106 anchors.top: parent.top
107 anchors.bottom: parent.bottom
108 spacing: ScreenTools.defaultFontPixelWidth * 0.75 // _layoutMargin
109 orientation: ListView.Vertical
110 model: QGroundControl.multiVehicleManager.vehicles
111 cacheBuffer: _cacheBuffer < 0 ? 0 : _cacheBuffer
114 property real _cacheBuffer: height * 2
116 delegate: Rectangle {
117 width: vehicleList.width
118 height: innerColumn.height + _margin * 2
119 color: QGroundControl.multiVehicleManager.activeVehicle == _vehicle ? _activeVehicleColor : qgcPal.button
121 border.width: _vehicle && vehicleSelected(_vehicle.id) ? 2 : 0
122 border.color: qgcPal.text
124 property var _vehicle: object
128 onClicked: toggleSelect(_vehicle.id)
133 anchors.centerIn: parent
137 anchors.horizontalCenter: parent.horizontalCenter
138 anchors.margins: _margin
141 IntegratedCompassAttitude {
143 compassRadius: _widgetHeight / 2 - attitudeSize / 2
145 attitudeSize: ScreenTools.defaultFontPixelWidth / 2
146 attitudeSpacing: attitudeSize / 2
147 usedByMultipleVehicleList: true
153 font.pointSize: ScreenTools.largeFontPointSize
155 Layout.alignment: Qt.AlignHCenter
159 text: _vehicle ? _vehicle.id : ""
160 font.pointSize: ScreenTools.largeFontPointSize
162 Layout.alignment: Qt.AlignHCenter
167 font.pointSize: ScreenTools.largeFontPointSize
169 Layout.alignment: Qt.AlignHCenter
174 Layout.rightMargin: compassWidget.width / 4
175 Layout.alignment: Qt.AlignCenter
178 Layout.alignment: Qt.AlignHCenter
179 font.pointSize: ScreenTools.largeFontPointSize
181 currentVehicle: _vehicle
185 Layout.alignment: Qt.AlignHCenter
186 text: _vehicle && _vehicle.armed ? qsTr("Armed") : qsTr("Disarmed")
193 anchors.horizontalCenter: parent.horizontalCenter
194 width: Math.min(contentWidth, vehicleList.width)
195 height: control.height
196 contentWidth: control.width
197 contentHeight: control.height
201 settingsGroup: factValueGrid.vehicleCardSettingsGroup
202 specificVehicleForCard: _vehicle