Commit 6bdd7e5b authored by Don Gagne's avatar Don Gagne Committed by GitHub

Merge pull request #4681 from mavlink/modeIndicator

Fix mode indicator vertical alignment.
parents 6ca27fec bae9432b
...@@ -19,45 +19,50 @@ import QGroundControl.Palette 1.0 ...@@ -19,45 +19,50 @@ import QGroundControl.Palette 1.0
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
//-- Mode Indicator //-- Mode Indicator
QGCLabel { Item {
id: flightModeSelector anchors.top: parent.top
text: activeVehicle ? activeVehicle.flightMode : qsTr("N/A", "No data to display") anchors.bottom: parent.bottom
font.pointSize: ScreenTools.mediumFontPointSize width: flightModeSelector.width
color: qgcPal.buttonText QGCLabel {
anchors.verticalCenter: parent.verticalCenter id: flightModeSelector
Menu { text: activeVehicle ? activeVehicle.flightMode : qsTr("N/A", "No data to display")
id: flightModesMenu font.pointSize: ScreenTools.mediumFontPointSize
} color: qgcPal.buttonText
Component { anchors.verticalCenter: parent.verticalCenter
id: flightModeMenuItemComponent Menu {
MenuItem { id: flightModesMenu
onTriggered: activeVehicle.flightMode = text
} }
} Component {
property var flightModesMenuItems: [] id: flightModeMenuItemComponent
function updateFlightModesMenu() { MenuItem {
if (activeVehicle && activeVehicle.flightModeSetAvailable) { onTriggered: activeVehicle.flightMode = text
// Remove old menu items
for (var i = 0; i < flightModesMenuItems.length; i++) {
flightModesMenu.removeItem(flightModesMenuItems[i])
} }
flightModesMenuItems.length = 0 }
// Add new items property var flightModesMenuItems: []
for (var i = 0; i < activeVehicle.flightModes.length; i++) { function updateFlightModesMenu() {
var menuItem = flightModeMenuItemComponent.createObject(null, { "text": activeVehicle.flightModes[i] }) if (activeVehicle && activeVehicle.flightModeSetAvailable) {
flightModesMenuItems.push(menuItem) // Remove old menu items
flightModesMenu.insertItem(i, menuItem) for (var i = 0; i < flightModesMenuItems.length; i++) {
flightModesMenu.removeItem(flightModesMenuItems[i])
}
flightModesMenuItems.length = 0
// Add new items
for (var i = 0; i < activeVehicle.flightModes.length; i++) {
var menuItem = flightModeMenuItemComponent.createObject(null, { "text": activeVehicle.flightModes[i] })
flightModesMenuItems.push(menuItem)
flightModesMenu.insertItem(i, menuItem)
}
} }
} }
} Component.onCompleted: flightModeSelector.updateFlightModesMenu()
Component.onCompleted: flightModeSelector.updateFlightModesMenu() Connections {
Connections { target: QGroundControl.multiVehicleManager
target: QGroundControl.multiVehicleManager onActiveVehicleChanged: flightModeSelector.updateFlightModesMenu()
onActiveVehicleChanged: flightModeSelector.updateFlightModesMenu() }
} MouseArea {
MouseArea { visible: activeVehicle && activeVehicle.flightModeSetAvailable
visible: activeVehicle && activeVehicle.flightModeSetAvailable anchors.fill: parent
anchors.fill: parent onClicked: flightModesMenu.popup()
onClicked: flightModesMenu.popup() }
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment