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