5import QGroundControl.Controls
7// Label control whichs pop up a flight mode change menu when clicked
10 text: currentVehicle ? currentVehicle.flightMode : qsTr("N/A", "No data to display")
12 property var currentVehicle: QGroundControl.multiVehicleManager.activeVehicle
13 property real mouseAreaLeftMargin: 0
20 id: flightModeMenuItemComponent
24 onTriggered: currentVehicle.flightMode = text
28 property var flightModesMenuItems: []
30 function updateFlightModesMenu() {
31 if (currentVehicle && currentVehicle.flightModeSetAvailable) {
33 // Remove old menu items
34 for (i = 0; i < flightModesMenuItems.length; i++) {
35 flightModesMenu.removeItem(flightModesMenuItems[i])
37 flightModesMenuItems.length = 0
39 for (i = 0; i < currentVehicle.flightModes.length; i++) {
40 var menuItem = flightModeMenuItemComponent.createObject(null, { "text": currentVehicle.flightModes[i] })
41 flightModesMenuItems.push(menuItem)
42 flightModesMenu.insertItem(i, menuItem)
47 Component.onCompleted: _root.updateFlightModesMenu()
50 target: QGroundControl.multiVehicleManager
51 function onActiveVehicleChanged(activeVehicle) { _root.updateFlightModesMenu() }
55 target: currentVehicle
56 function onFlightModesChanged() { _root.updateFlightModesMenu() }
61 visible: currentVehicle && currentVehicle.flightModeSetAvailable
62 anchors.leftMargin: mouseAreaLeftMargin
64 onClicked: flightModesMenu.popup((_root.width - flightModesMenu.width) / 2, _root.height)