From 6e4a9bba269e17c08c1e824a34779b3214df2d7a Mon Sep 17 00:00:00 2001
From: Rainer Kartmann <rainer.kartmann@student.kit.edu>
Date: Wed, 30 Jan 2019 11:27:36 +0100
Subject: [PATCH] Added en/disabling of button and removed log messages (sorry)

---
 .../DebugDrawerViewerWidgetController.cpp     | 24 +++++++++----------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/source/RobotAPI/gui-plugins/DebugDrawerViewer/DebugDrawerViewerWidgetController.cpp b/source/RobotAPI/gui-plugins/DebugDrawerViewer/DebugDrawerViewerWidgetController.cpp
index f78aa5d81..24bd24632 100644
--- a/source/RobotAPI/gui-plugins/DebugDrawerViewer/DebugDrawerViewerWidgetController.cpp
+++ b/source/RobotAPI/gui-plugins/DebugDrawerViewer/DebugDrawerViewerWidgetController.cpp
@@ -144,7 +144,7 @@ void DebugDrawerViewerWidgetController::updateComboClearLayer()
         combo->setFont(font);
     };
 
-    auto setHint = [combo, &setItalic](const std::string & hint)
+    auto disableButton = [combo, this, &setItalic](const std::string & hint)
     {
         QString itemText(hint.c_str());
         QString itemData("");
@@ -160,11 +160,13 @@ void DebugDrawerViewerWidgetController::updateComboClearLayer()
             combo->setItemText(0, itemText);
             combo->setItemData(0, itemData);
         }
+
+        this->widget.btnClearLayer->setEnabled(false);
     };
 
     if (!debugDrawer)
     {
-        setHint("not connected");
+        disableButton("not connected");
         return;
     }
 
@@ -173,19 +175,19 @@ void DebugDrawerViewerWidgetController::updateComboClearLayer()
 
     if (layers.empty())
     {
-        setHint("no layers");
+        disableButton("no layers");
         return;
     }
-    else if (combo->font().italic())
+    else
     {
         setItalic(false);
+        this->widget.btnClearLayer->setEnabled(true);
     }
 
-    const int numLayers = static_cast<int>(layers.size());
-
     // sort the layers by name
     std::sort(layers.begin(), layers.end(), [](const LayerInformation & lhs, const LayerInformation & rhs)
     {
+        // compare case insensitively
         for (std::size_t i = 0; i < lhs.layerName.size() && i < lhs.layerName.size(); ++i)
         {
             auto lhsLow = std::tolower(lhs.layerName[i]);
@@ -199,12 +201,14 @@ void DebugDrawerViewerWidgetController::updateComboClearLayer()
                 return false;
             }
         }
-        // if one is a prefix of the other, the shorter is the "smaller" one
+        // if one is a prefix of the other, the shorter one "smaller"
         return lhs.layerName.size() < rhs.layerName.size();
     });
 
 
-    for (int i = 0; i < static_cast<int>(layers.size()); ++i)
+    const int numLayers = static_cast<int>(layers.size());
+
+    for (int i = 0; i < numLayers; ++i)
     {
         const LayerInformation& layer = layers[static_cast<std::size_t>(i)];
 
@@ -219,7 +223,6 @@ void DebugDrawerViewerWidgetController::updateComboClearLayer()
             {
                 // item layer is smaller than next layer
                 // => item layer was deleted
-                ARMARX_INFO << "Removing " << itemData;
                 combo->removeItem(i);
                 itemData = i < combo->count() ? combo->itemData(i).toString() : "";
             }
@@ -227,20 +230,17 @@ void DebugDrawerViewerWidgetController::updateComboClearLayer()
             // update existing layer
             if (itemData == layerName)
             {
-                ARMARX_INFO << "Updating " << itemData;
                 combo->setItemText(i, makeLayerItemText(layer));
             }
             else // (itemData > layerName)
             {
                 // item layer is further down than current layer
                 // => insert current layer here
-                ARMARX_INFO << "Inserting " << layerName << " before " << itemData;
                 combo->insertItem(i, makeLayerItemText(layer), layerName);
             }
         }
         else  // out of range
         {
-            ARMARX_INFO << "Inserting " << layerName << " at end";
             combo->insertItem(i, makeLayerItemText(layer), layerName);
         }
 
-- 
GitLab