From ecf23230019643d430b3fe6cbd14e62055b384d9 Mon Sep 17 00:00:00 2001
From: Christoph Pohl <christoph.pohl@kit.edu>
Date: Fri, 23 Jun 2023 13:43:54 +0200
Subject: [PATCH] Add debugging traces

---
 .../RemoteGuiPlugin/RemoteGuiWidgetController.cpp         | 5 +++++
 source/ArmarXGui/libraries/RemoteGui/Storage.h            | 8 ++++++++
 source/ArmarXGui/libraries/RemoteGui/TypedWidget.h        | 3 +++
 .../libraries/RemoteGui/WidgetHandlers/BoolWidgets.h      | 2 ++
 .../libraries/RemoteGui/WidgetHandlers/FloatWidgets.h     | 2 ++
 .../libraries/RemoteGui/WidgetHandlers/IntegerWidgets.h   | 3 +++
 .../libraries/RemoteGui/WidgetHandlers/LayoutWidgets.h    | 6 ++++++
 .../libraries/RemoteGui/WidgetHandlers/Matrix4fWidgets.h  | 1 +
 .../libraries/RemoteGui/WidgetHandlers/StaticWidgets.h    | 6 ++++++
 .../libraries/RemoteGui/WidgetHandlers/StringWidgets.h    | 6 +++++-
 .../libraries/RemoteGui/WidgetHandlers/Vector3fWidgets.h  | 1 +
 source/ArmarXGui/libraries/RemoteGui/WidgetRegister.cpp   | 1 +
 12 files changed, 43 insertions(+), 1 deletion(-)

diff --git a/source/ArmarXGui/gui-plugins/RemoteGuiPlugin/RemoteGuiWidgetController.cpp b/source/ArmarXGui/gui-plugins/RemoteGuiPlugin/RemoteGuiWidgetController.cpp
index a0d96940..be06ffa0 100644
--- a/source/ArmarXGui/gui-plugins/RemoteGuiPlugin/RemoteGuiWidgetController.cpp
+++ b/source/ArmarXGui/gui-plugins/RemoteGuiPlugin/RemoteGuiWidgetController.cpp
@@ -524,6 +524,7 @@ namespace armarx
 
     QWidget* RemoteGuiWidgetController::createWidgetFromDescription(const std::string& tabId, const RemoteGui::WidgetPtr& desc)
     {
+        ARMARX_TRACE;
         QWidget* widget = nullptr;
 
         RemoteGui::ValueMap& values = tabValueMap[tabId];
@@ -532,10 +533,12 @@ namespace armarx
 
         RemoteGui::CreateWidgetCallback createChild = [this, tabId](RemoteGui::WidgetPtr const & desc) -> QWidget *
         {
+            ARMARX_TRACE;
             return this->createWidgetFromDescription(tabId, desc);
         };
 
         {
+            ARMARX_TRACE;
             // Do not trigger external updates when initial values are set
             InternalUpdateGuard guard(&internalUpdate);
 
@@ -551,6 +554,7 @@ namespace armarx
         // Widgets without a name cannot be referred to later
         if (!desc->name.empty())
         {
+            ARMARX_TRACE;
             auto result = guiWidgets[tabId].emplace(desc->name, widget);
             bool inserted = result.second;
             if (inserted)
@@ -560,6 +564,7 @@ namespace armarx
             }
             else
             {
+                ARMARX_TRACE;
                 ARMARX_WARNING << "Tried to add a widget with duplicate name '" << desc->name
                                << "' to remote tab ID '" << tabId << "'";
             }
diff --git a/source/ArmarXGui/libraries/RemoteGui/Storage.h b/source/ArmarXGui/libraries/RemoteGui/Storage.h
index 027bdac4..ec2df335 100644
--- a/source/ArmarXGui/libraries/RemoteGui/Storage.h
+++ b/source/ArmarXGui/libraries/RemoteGui/Storage.h
@@ -81,12 +81,14 @@ namespace armarx::RemoteGui
     template <>
     inline std::nullptr_t getSingleValue<std::nullptr_t>(RemoteGui::ValueVariant const& value, const std::string& name)
     {
+        ARMARX_TRACE;
         return nullptr;
     }
 
     template <>
     inline bool getSingleValue<bool>(ValueVariant const& value, const std::string& name)
     {
+        ARMARX_TRACE;
         if (value.type != VALUE_VARIANT_BOOL)
         {
             throw LocalException()
@@ -99,6 +101,7 @@ namespace armarx::RemoteGui
     template <>
     inline int getSingleValue<int>(ValueVariant const& value, const std::string& name)
     {
+        ARMARX_TRACE;
         if (value.type != VALUE_VARIANT_INT)
         {
             throw LocalException()
@@ -111,6 +114,7 @@ namespace armarx::RemoteGui
     template <>
     inline float getSingleValue<float>(ValueVariant const& value, const std::string& name)
     {
+        ARMARX_TRACE;
         if (value.type != VALUE_VARIANT_FLOAT)
         {
             throw LocalException()
@@ -123,6 +127,7 @@ namespace armarx::RemoteGui
     template <>
     inline std::string getSingleValue<std::string>(ValueVariant const& value, const std::string& name)
     {
+        ARMARX_TRACE;
         if (value.type != VALUE_VARIANT_STRING)
         {
             throw LocalException()
@@ -135,6 +140,7 @@ namespace armarx::RemoteGui
     template <>
     inline Eigen::Vector3f getSingleValue<Eigen::Vector3f>(ValueVariant const& value, const std::string& name)
     {
+        ARMARX_TRACE;
         if (value.type != VALUE_VARIANT_VECTOR3)
         {
             throw LocalException()
@@ -153,6 +159,7 @@ namespace armarx::RemoteGui
     template <>
     inline Eigen::Matrix4f getSingleValue<Eigen::Matrix4f>(ValueVariant const& value, const std::string& name)
     {
+        ARMARX_TRACE;
         if (value.type != VALUE_VARIANT_MATRIX4)
         {
             throw LocalException()
@@ -176,6 +183,7 @@ namespace armarx::RemoteGui
     template <typename T>
     T getAndReturnValue(ValueMap const& values, std::string const& name)
     {
+        ARMARX_TRACE;
         try
         {
             ValueVariant const& variantValue = values.at(name);
diff --git a/source/ArmarXGui/libraries/RemoteGui/TypedWidget.h b/source/ArmarXGui/libraries/RemoteGui/TypedWidget.h
index 449d6cd0..55a4b8f2 100644
--- a/source/ArmarXGui/libraries/RemoteGui/TypedWidget.h
+++ b/source/ArmarXGui/libraries/RemoteGui/TypedWidget.h
@@ -46,6 +46,7 @@ namespace armarx::RemoteGui
                               const QObject* stateChangeReceiver,
                               const char* stateChangeSlot) const override
         {
+            ARMARX_TRACE;
             auto concreteDesc = dynamic_cast<RemoteWidgetT const*>(&desc);
             ARMARX_CHECK_EXPRESSION(concreteDesc != nullptr);
 
@@ -65,6 +66,7 @@ namespace armarx::RemoteGui
                                QWidget* widget,
                                ValueVariant const& value) const override
         {
+            ARMARX_TRACE;
             auto concreteDesc = dynamic_cast<RemoteWidgetT const*>(&desc);
             ARMARX_CHECK_EXPRESSION(concreteDesc != nullptr);
 
@@ -81,6 +83,7 @@ namespace armarx::RemoteGui
         virtual ValueVariant handleGuiChange(Widget const& desc,
                                              QWidget* widget) const override
         {
+            ARMARX_TRACE;
             ARMARX_CHECK_EXPRESSION(widget != nullptr);
             const auto dumpParamInfo = ARMARX_STREAM_PRINTER
             {
diff --git a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/BoolWidgets.h b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/BoolWidgets.h
index 35126f04..c5646eba 100644
--- a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/BoolWidgets.h
+++ b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/BoolWidgets.h
@@ -12,6 +12,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidgetT();
             widget->setToolTip(QString::fromStdString(desc.toolTip));
             widget->setText(toQString(desc.label));
@@ -37,6 +38,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidgetT();
             widget->setToolTip(QString::fromStdString(desc.toolTip));
             widget->setText(toQString(desc.label));
diff --git a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/FloatWidgets.h b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/FloatWidgets.h
index 4e350b84..b2357322 100644
--- a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/FloatWidgets.h
+++ b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/FloatWidgets.h
@@ -31,6 +31,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidgetT();
 
             widget->setToolTip(QString::fromStdString(desc.toolTip));
@@ -74,6 +75,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidgetT(nullptr);
 
             widget->setToolTip(QString::fromStdString(desc.toolTip));
diff --git a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/IntegerWidgets.h b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/IntegerWidgets.h
index 5b887785..9b6d5fe8 100644
--- a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/IntegerWidgets.h
+++ b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/IntegerWidgets.h
@@ -13,6 +13,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidgetT();
 
             widget->setToolTip(QString::fromStdString(desc.toolTip));
@@ -40,6 +41,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidgetT();
 
             widget->setToolTip(QString::fromStdString(desc.toolTip));
@@ -69,6 +71,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidgetT();
             widget->setToolTip(QString::fromStdString(desc.toolTip));
             widget->setText(toQString(desc.label));
diff --git a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/LayoutWidgets.h b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/LayoutWidgets.h
index 94bb57cc..80e68ebb 100644
--- a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/LayoutWidgets.h
+++ b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/LayoutWidgets.h
@@ -14,6 +14,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QGroupBox* widget = new QGroupBox;
             widget->setTitle(toQString(desc.label));
             widget->setCheckable(true);
@@ -64,6 +65,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidget();
 
             QVBoxLayout* layout = new QVBoxLayout(widget);
@@ -84,6 +86,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidget();
 
             QHBoxLayout* layout = new QHBoxLayout(widget);
@@ -103,6 +106,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             ARMARX_CHECK_GREATER(desc.columns, 0);
             switch (desc.children.size())
             {
@@ -133,6 +137,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidget();
 
             QGridLayout* layout = new QGridLayout(widget);
@@ -172,6 +177,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidget();
 
             QGridLayout* layout = new QGridLayout(widget);
diff --git a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/Matrix4fWidgets.h b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/Matrix4fWidgets.h
index d7948ddc..cb701e87 100644
--- a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/Matrix4fWidgets.h
+++ b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/Matrix4fWidgets.h
@@ -46,6 +46,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidget* widget = new QWidget;
             QHBoxLayout* l = new QHBoxLayout;
             l->setContentsMargins(0, 0, 0, 0);
diff --git a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/StaticWidgets.h b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/StaticWidgets.h
index f2b41c2b..9b8d4e86 100644
--- a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/StaticWidgets.h
+++ b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/StaticWidgets.h
@@ -11,6 +11,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidgetT();
             widget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
             widget->setToolTip(QString::fromStdString(desc.toolTip));
@@ -33,6 +34,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidget();
 
             widget->setLayout(new QVBoxLayout);
@@ -48,6 +50,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidget();
 
             widget->setLayout(new QVBoxLayout);
@@ -63,6 +66,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QFrame();
 
             widget->setFrameShape(QFrame::HLine);
@@ -76,6 +80,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QFrame();
 
             widget->setFrameShape(QFrame::VLine);
@@ -90,6 +95,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             auto widget = new QWidget();
             widget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
             return widget;
diff --git a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/StringWidgets.h b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/StringWidgets.h
index b0579e1e..db9cacbb 100644
--- a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/StringWidgets.h
+++ b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/StringWidgets.h
@@ -12,6 +12,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidgetT();
             widget->setToolTip(QString::fromStdString(desc.toolTip));
 
@@ -36,14 +37,16 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidgetT* widget = new QWidgetT();
             widget->setToolTip(QString::fromStdString(desc.toolTip));
 
             for (std::string const& option : desc.options)
             {
+                ARMARX_TRACE;
                 widget->addItem(toQString(option));
             }
-
+            ARMARX_TRACE;
             QObject::connect(widget, SIGNAL(currentIndexChanged(int)), stateChangeReceiver, stateChangeSlot);
 
             return widget;
@@ -51,6 +54,7 @@ namespace armarx::RemoteGui
 
         static void updateGui(RemoteWidgetT const& desc, QWidgetT* widget, ValueT const& value)
         {
+            ARMARX_TRACE;
             int index = widget->findText(toQString(value));
             if (index >= 0)
             {
diff --git a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/Vector3fWidgets.h b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/Vector3fWidgets.h
index b89dc050..ff00a060 100644
--- a/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/Vector3fWidgets.h
+++ b/source/ArmarXGui/libraries/RemoteGui/WidgetHandlers/Vector3fWidgets.h
@@ -35,6 +35,7 @@ namespace armarx::RemoteGui
         static QWidgetT* createWidget(RemoteWidgetT const& desc, CreateWidgetCallback const& createChild,
                                       const QObject* stateChangeReceiver, const char* stateChangeSlot)
         {
+            ARMARX_TRACE;
             QWidget* widget = new QWidget;
             widget->setToolTip(QString::fromStdString(desc.toolTip));
             QHBoxLayout* l = new QHBoxLayout;
diff --git a/source/ArmarXGui/libraries/RemoteGui/WidgetRegister.cpp b/source/ArmarXGui/libraries/RemoteGui/WidgetRegister.cpp
index eec0a9fc..57fd368c 100644
--- a/source/ArmarXGui/libraries/RemoteGui/WidgetRegister.cpp
+++ b/source/ArmarXGui/libraries/RemoteGui/WidgetRegister.cpp
@@ -59,6 +59,7 @@ namespace armarx::RemoteGui
 
     const WidgetHandler& getWidgetHandler(WidgetPtr const& desc)
     {
+        ARMARX_TRACE;
         static const WidgetRegister widgetRegister = createWidgetRegister();
 
         auto descPtr = desc.get();
-- 
GitLab