From 3c0c01d6ef3e961ab6afed1f5d926f6986ca9832 Mon Sep 17 00:00:00 2001
From: Lorenz Meier <lm@inf.ethz.ch>
Date: Sat, 6 Jun 2015 12:32:47 +0200
Subject: [PATCH] Mainwindow: Fix HIL config deletion

---
 src/ui/MainWindow.cc | 9 +++++++++
 src/ui/MainWindow.h  | 3 +++
 2 files changed, 12 insertions(+)

diff --git a/src/ui/MainWindow.cc b/src/ui/MainWindow.cc
index 57b97d5..f0bb967 100644
--- a/src/ui/MainWindow.cc
+++ b/src/ui/MainWindow.cc
@@ -796,6 +796,7 @@ void MainWindow::connectCommonActions()
 
     // Connect internal actions
     connect(UASManager::instance(), SIGNAL(UASCreated(UASInterface*)), this, SLOT(UASCreated(UASInterface*)));
+    connect(UASManager::instance(), SIGNAL(UASDeleted(int)), this, SLOT(UASDeleted(int)));
 
     // Unmanned System controls
     connect(_ui.actionLiftoff, SIGNAL(triggered()), UASManager::instance(), SLOT(launchActiveUAS()));
@@ -909,6 +910,14 @@ void MainWindow::UASCreated(UASInterface* uas)
     }
 }
 
+void MainWindow::UASDeleted(int uasId)
+{
+    if (_mapUasId2HilDockWidget.contains(uasId)) {
+        _mapUasId2HilDockWidget[uasId]->deleteLater();
+        _mapUasId2HilDockWidget.remove(uasId);
+    }
+}
+
 /// Stores the state of the toolbar, status bar and widgets associated with the current view
 void MainWindow::_storeCurrentViewState(void)
 {
diff --git a/src/ui/MainWindow.h b/src/ui/MainWindow.h
index 4ba3309..a337268 100644
--- a/src/ui/MainWindow.h
+++ b/src/ui/MainWindow.h
@@ -146,6 +146,9 @@ public slots:
     /** @brief Add a new UAS */
     void UASCreated(UASInterface* uas);
 
+    /** @brief Remove an old UAS */
+    void UASDeleted(int uasID);
+
     void handleMisconfiguration(UASInterface* uas);
     /** @brief Load configuration views */
     void loadSetupView();