diff --git a/src/AutoPilotPlugins/PX4/AirframeComponentController.cc b/src/AutoPilotPlugins/PX4/AirframeComponentController.cc index 3fc8a16fd9108e1f6f39c6318735ba84a82729c9..757c64d9817cb928e65eb4159077687c73950256 100644 --- a/src/AutoPilotPlugins/PX4/AirframeComponentController.cc +++ b/src/AutoPilotPlugins/PX4/AirframeComponentController.cc @@ -98,7 +98,7 @@ AirframeComponentController::~AirframeComponentController() void AirframeComponentController::changeAutostart(void) { - if (qgcApp()->toolbox()->multiVehicleManager()->vehicles().count() > 1) { + if (qgcApp()->toolbox()->multiVehicleManager()->vehicles()->count() > 1) { QGCMessageBox::warning("Airframe Config", "You cannot change airframe configuration while connected to multiple vehicles."); return; } diff --git a/src/Vehicle/MultiVehicleManager.cc b/src/Vehicle/MultiVehicleManager.cc index 6e1630228e5f3ea079409f34bf9c201ba29bd7e2..0416ea6bafdd463e029f5955de969785cd606464 100644 --- a/src/Vehicle/MultiVehicleManager.cc +++ b/src/Vehicle/MultiVehicleManager.cc @@ -246,16 +246,3 @@ Vehicle* MultiVehicleManager::getVehicleById(int vehicleId) return NULL; } - -QList MultiVehicleManager::vehicles(void) -{ - QList list; - - for (int i=0; i< _vehicles.count(); i++) { - list += qobject_cast(_vehicles[i]); - } - - return list; -} - - diff --git a/src/Vehicle/MultiVehicleManager.h b/src/Vehicle/MultiVehicleManager.h index bc3a42acb609543160efa9b0c0faf6e0d31efa2d..0b85ee3a4bf88c2e1dab0df9985525177e6c9c8e 100644 --- a/src/Vehicle/MultiVehicleManager.h +++ b/src/Vehicle/MultiVehicleManager.h @@ -54,7 +54,7 @@ public: Q_PROPERTY(bool activeVehicleAvailable READ activeVehicleAvailable NOTIFY activeVehicleAvailableChanged) Q_PROPERTY(bool parameterReadyVehicleAvailable READ parameterReadyVehicleAvailable NOTIFY parameterReadyVehicleAvailableChanged) Q_PROPERTY(Vehicle* activeVehicle READ activeVehicle WRITE setActiveVehicle NOTIFY activeVehicleChanged) - Q_PROPERTY(QmlObjectListModel* vehicles READ vehiclesModel CONSTANT) + Q_PROPERTY(QmlObjectListModel* vehicles READ vehicles CONSTANT) // Methods @@ -70,8 +70,6 @@ public: UAS* activeUas(void) { return _activeVehicle ? _activeVehicle->uas() : NULL; } - QList vehicles(void); - // Property accessors bool activeVehicleAvailable(void) { return _activeVehicleAvailable; } @@ -81,7 +79,7 @@ public: Vehicle* activeVehicle(void) { return _activeVehicle; } void setActiveVehicle(Vehicle* vehicle); - QmlObjectListModel* vehiclesModel(void) { return &_vehicles; } + QmlObjectListModel* vehicles(void) { return &_vehicles; } // Override from QGCTool virtual void setToolbox(QGCToolbox *toolbox); diff --git a/src/ui/MainWindow.cc b/src/ui/MainWindow.cc index 6d1d5b0c478924b281efcc9b2a166561ff40178a..31531fb1ac8416a804a5f7b7fb41647df0414120 100644 --- a/src/ui/MainWindow.cc +++ b/src/ui/MainWindow.cc @@ -443,7 +443,7 @@ void MainWindow::showStatusBarCallback(bool checked) void MainWindow::closeEvent(QCloseEvent *event) { // Disallow window close if there are active connections - if (qgcApp()->toolbox()->linkManager()->anyConnectedLinks()) { + if (qgcApp()->toolbox()->multiVehicleManager()->vehicles()->count()) { QGCMessageBox::StandardButton button = QGCMessageBox::warning( tr("QGroundControl close"), diff --git a/src/ui/MultiVehicleDockWidget.cc b/src/ui/MultiVehicleDockWidget.cc index e0a7e9be1c329007000bdc40e321c1ffce9bb084..1ff1da63ff9a22ec336f02d2bc0e120ba959ab71 100644 --- a/src/ui/MultiVehicleDockWidget.cc +++ b/src/ui/MultiVehicleDockWidget.cc @@ -41,8 +41,10 @@ MultiVehicleDockWidget::MultiVehicleDockWidget(const QString& title, QAction* ac void MultiVehicleDockWidget::init(void) { - foreach (Vehicle* vehicle, qgcApp()->toolbox()->multiVehicleManager()->vehicles()) { - _vehicleAdded(vehicle); + QmlObjectListModel* vehicles = qgcApp()->toolbox()->multiVehicleManager()->vehicles(); + + for (int i=0; icount(); i++) { + _vehicleAdded(qobject_cast(vehicles->get(i))); } if (qgcApp()->toolbox()->multiVehicleManager()->activeVehicle()) {