From 5c39536de098e951b73087e8aafab06f3bfe8758 Mon Sep 17 00:00:00 2001
From: Cedric Seehausen <usdnr@student.kit.edu>
Date: Mon, 23 May 2016 12:52:23 +0200
Subject: [PATCH] Forced init method of ScenarioManagerWidgetController to
 happen in Qt main thread

---
 .../ScenarioManager/ScenarioManagerWidgetController.cpp     | 6 +++++-
 .../ScenarioManager/ScenarioManagerWidgetController.h       | 5 ++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/source/ArmarXGui/gui-plugins/ScenarioManager/ScenarioManagerWidgetController.cpp b/source/ArmarXGui/gui-plugins/ScenarioManager/ScenarioManagerWidgetController.cpp
index ce93f439..ddce5efe 100644
--- a/source/ArmarXGui/gui-plugins/ScenarioManager/ScenarioManagerWidgetController.cpp
+++ b/source/ArmarXGui/gui-plugins/ScenarioManager/ScenarioManagerWidgetController.cpp
@@ -74,6 +74,11 @@ void ScenarioManagerWidgetController::saveSettings(QSettings* settings)
 
 
 void ScenarioManagerWidgetController::onInitComponent()
+{
+    QMetaObject::invokeMethod(this, "init", Qt::QueuedConnection);
+}
+
+void ScenarioManagerWidgetController::init()
 {
     detailedApplicationController.setDetailedApplicationView(widget.detailedApplicationView);
 
@@ -187,7 +192,6 @@ void ScenarioManagerWidgetController::onInitComponent()
     reparsePackages();
 }
 
-
 void ScenarioManagerWidgetController::onConnectComponent()
 {
 
diff --git a/source/ArmarXGui/gui-plugins/ScenarioManager/ScenarioManagerWidgetController.h b/source/ArmarXGui/gui-plugins/ScenarioManager/ScenarioManagerWidgetController.h
index 86e790d2..6ff496c6 100644
--- a/source/ArmarXGui/gui-plugins/ScenarioManager/ScenarioManagerWidgetController.h
+++ b/source/ArmarXGui/gui-plugins/ScenarioManager/ScenarioManagerWidgetController.h
@@ -61,7 +61,7 @@ namespace armarx
      */
     class ARMARXCOMPONENT_IMPORT_EXPORT
         ScenarioManagerWidgetController:
-    public armarx::ArmarXComponentWidgetController
+        public armarx::ArmarXComponentWidgetController
     {
         Q_OBJECT
 
@@ -115,6 +115,9 @@ namespace armarx
     signals:
         /* QT signal declarations */
 
+    private slots:
+        //used to force Qt main thread to init this plugin
+        void init();
     private:
         /**
          * Widget Form
-- 
GitLab