7 changed files with 92 additions and 66 deletions
@ -0,0 +1,79 @@
@@ -0,0 +1,79 @@
|
||||
/**************************************************************************** |
||||
* |
||||
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org> |
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
|
||||
import QtQuick 2.3 |
||||
import QtQuick.Controls 1.2 |
||||
|
||||
import QGroundControl 1.0 |
||||
import QGroundControl.Controls 1.0 |
||||
import QGroundControl.MultiVehicleManager 1.0 |
||||
import QGroundControl.ScreenTools 1.0 |
||||
import QGroundControl.Palette 1.0 |
||||
|
||||
//------------------------------------------------------------------------- |
||||
//-- Mode Indicator |
||||
Item { |
||||
anchors.top: parent.top |
||||
anchors.bottom: parent.bottom |
||||
visible: _multiVehicles |
||||
width: _multiVehicles ? multiVehicleSelector.width : 0 |
||||
|
||||
property bool _multiVehicles: activeVehicle ? QGroundControl.multiVehicleManager.vehicles.count > 1 : false |
||||
|
||||
Connections { |
||||
target: QGroundControl.multiVehicleManager.vehicles |
||||
onCountChanged: multiVehicleSelector.updatemultiVehiclesMenu() |
||||
} |
||||
|
||||
QGCLabel { |
||||
id: multiVehicleSelector |
||||
text: "Vehicle " + (activeVehicle ? activeVehicle.id : "None") |
||||
font.pointSize: ScreenTools.mediumFontPointSize |
||||
color: qgcPal.buttonText |
||||
anchors.verticalCenter: parent.verticalCenter |
||||
Menu { |
||||
id: multiVehiclesMenu |
||||
} |
||||
Component { |
||||
id: multiVehicleMenuItemComponent |
||||
MenuItem { |
||||
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) |
||||
console.log("Vehicle " + vehicle.id) |
||||
} |
||||
} |
||||
} |
||||
Component.onCompleted: { |
||||
multiVehicleSelector.updatemultiVehiclesMenu() |
||||
} |
||||
} |
||||
MouseArea { |
||||
visible: _multiVehicles |
||||
anchors.fill: parent |
||||
onClicked: multiVehiclesMenu.popup() |
||||
} |
||||
} |
Loading…
Reference in new issue