Commit a5a2e831 authored by DonLakeFlyer's avatar DonLakeFlyer

Change to combobox

parent 0df420e3
...@@ -18,61 +18,49 @@ import QGroundControl.ScreenTools 1.0 ...@@ -18,61 +18,49 @@ import QGroundControl.ScreenTools 1.0
import QGroundControl.Palette 1.0 import QGroundControl.Palette 1.0
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
//-- Mode Indicator //-- Multiple Vehicle Selector
Item { QGCComboBox {
anchors.top: parent.top anchors.top: parent.top
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
visible: _multiVehicles font.pointSize: ScreenTools.mediumFontPointSize
width: _multiVehicles ? multiVehicleSelector.width : 0 currentIndex: -1
sizeToContents: true
model: _vehicleModel
visible: _multipleVehicles
property bool _multiVehicles: activeVehicle ? QGroundControl.multiVehicleManager.vehicles.count > 1 : false property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle
property bool _multipleVehicles: _activeVehicle ? QGroundControl.multiVehicleManager.vehicles.count > 1 : false
property var _vehicleModel: [ ]
Connections { Connections {
target: QGroundControl.multiVehicleManager.vehicles target: QGroundControl.multiVehicleManager.vehicles
onCountChanged: multiVehicleSelector.updatemultiVehiclesMenu() onCountChanged: _updateVehicleModel()
} }
QGCLabel { Component.onCompleted: _updateVehicleModel()
id: multiVehicleSelector
text: "Vehicle " + (activeVehicle ? activeVehicle.id : "None") function _updateVehicleModel() {
font.pointSize: ScreenTools.mediumFontPointSize var newCurrentIndex = -1
color: qgcPal.buttonText var newModel = [ ]
anchors.verticalCenter: parent.verticalCenter if (_multipleVehicles) {
QGCMenu { for (var i = 0; i < QGroundControl.multiVehicleManager.vehicles.count; i++) {
id: multiVehiclesMenu var vehicle = QGroundControl.multiVehicleManager.vehicles.get(i)
} newModel.push(qsTr("Vehicle") + " " + vehicle.id)
Component {
id: multiVehicleMenuItemComponent if (vehicle.id === _activeVehicle.id) {
QGCMenuItem { newCurrentIndex = i
onTriggered: QGroundControl.multiVehicleManager.activeVehicle = vehicle
property int vehicleId: Number(text.split(" ")[1])
property var vehicle: QGroundControl.multiVehicleManager.getVehicleById(vehicleId)
}
}
property var multiVehiclesMenuItems: []
function updatemultiVehiclesMenu() {
if (_multiVehicles) {
// Remove old menu items
for (var i = 0; i < multiVehiclesMenuItems.length; i++) {
multiVehiclesMenu.removeItem(multiVehiclesMenuItems[i])
}
multiVehiclesMenuItems.length = 0
// Add new items
for (i = 0; i < QGroundControl.multiVehicleManager.vehicles.count; i++) {
var vehicle = QGroundControl.multiVehicleManager.vehicles.get(i)
var menuItem = multiVehicleMenuItemComponent.createObject(null, { "text": "Vehicle " + vehicle.id })
multiVehiclesMenuItems.push(menuItem)
multiVehiclesMenu.insertItem(i, menuItem)
} }
} }
} }
Component.onCompleted: { currentIndex = -1
multiVehicleSelector.updatemultiVehiclesMenu() _vehicleModel = newModel
} currentIndex = newCurrentIndex
} }
MouseArea {
visible: _multiVehicles onActivated: {
anchors.fill: parent var vehicleId = textAt(index).split(" ")[1]
onClicked: multiVehiclesMenu.popup() var vehicle = QGroundControl.multiVehicleManager.getVehicleById(vehicleId)
QGroundControl.multiVehicleManager.activeVehicle = vehicle
} }
} }
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