7 changed files with 92 additions and 66 deletions
@ -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