From 3eac920f8d15e6dbad7b8aaa2e2bbfcd83c25505 Mon Sep 17 00:00:00 2001 From: Eberhard Graether Date: Sun, 24 May 2015 15:23:50 +0200 Subject: [PATCH] logic: Fixed classes not collapsing correctly --- src/lib/component/controller/GraphController.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/lib/component/controller/GraphController.cpp b/src/lib/component/controller/GraphController.cpp index 4e47a08b..ef162e13 100644 --- a/src/lib/component/controller/GraphController.cpp +++ b/src/lib/component/controller/GraphController.cpp @@ -318,18 +318,12 @@ void GraphController::setActiveAndVisibility(const std::vector& activeTokenI void GraphController::setNodeActiveRecursive(DummyNode& node, const std::vector& activeTokenIds) const { - node.visible = false; - node.childVisible = false; node.active = false; if (node.isGraphNode()) { node.active = find(activeTokenIds.begin(), activeTokenIds.end(), node.data->getId()) != activeTokenIds.end(); } - else if (node.isExpandToggleNode()) - { - node.visible = true; - } for (DummyNode& subNode : node.subNodes) { @@ -339,6 +333,15 @@ void GraphController::setNodeActiveRecursive(DummyNode& node, const std::vector< bool GraphController::setNodeVisibilityRecursiveBottomUp(DummyNode& node, bool aggregated) const { + node.visible = false; + node.childVisible = false; + + if (node.isExpandToggleNode()) + { + node.visible = true; + return false; + } + for (DummyNode& subNode : node.subNodes) { if (setNodeVisibilityRecursiveBottomUp(subNode, aggregated | node.aggregated))