From 951a45f90eb24c34f97fda0d71f5fb5baa3d6108 Mon Sep 17 00:00:00 2001 From: wmayer Date: Thu, 8 Nov 2012 23:06:07 +0100 Subject: [PATCH] Optimazation of tree view when clearing selection --- src/Gui/Tree.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Gui/Tree.cpp b/src/Gui/Tree.cpp index bca4d8e2b..7e8d7b7eb 100644 --- a/src/Gui/Tree.cpp +++ b/src/Gui/Tree.cpp @@ -985,9 +985,12 @@ void DocumentItem::setObjectSelected(const char* name, bool select) void DocumentItem::clearSelection(void) { + // Block signals here otherwise we get a recursion and quadratic runtime + bool ok = treeWidget()->blockSignals(true); for (std::map::iterator pos = ObjectMap.begin();pos!=ObjectMap.end();++pos) { - treeWidget()->setItemSelected(pos->second, false); + pos->second->setSelected(false); } + treeWidget()->blockSignals(ok); } void DocumentItem::updateSelection(void)