From 0e7dc3242d7500b67315437f7e34125904aa797e Mon Sep 17 00:00:00 2001 From: Eberhard Graether Date: Wed, 8 Nov 2017 21:43:09 +0100 Subject: [PATCH] ui: Show nodes with more than 20 children initially collapsed (issue #509) --- src/lib/component/controller/GraphController.cpp | 2 +- src/lib/data/storage/PersistentStorage.cpp | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/lib/component/controller/GraphController.cpp b/src/lib/component/controller/GraphController.cpp index b05edacc..9a37afa8 100644 --- a/src/lib/component/controller/GraphController.cpp +++ b/src/lib/component/controller/GraphController.cpp @@ -631,7 +631,7 @@ void GraphController::autoExpandActiveNode(const std::vector& activeTokenIds node = getDummyGraphNodeById(activeTokenIds[0]); } - if (node) + if (node && !node->hasMissingChildNodes()) { node->expanded = true; node->autoExpanded = true; diff --git a/src/lib/data/storage/PersistentStorage.cpp b/src/lib/data/storage/PersistentStorage.cpp index 90e2e0a0..fd6adb65 100644 --- a/src/lib/data/storage/PersistentStorage.cpp +++ b/src/lib/data/storage/PersistentStorage.cpp @@ -925,8 +925,15 @@ std::shared_ptr PersistentStorage::getGraphForActiveTokenIds( } else { - nodeIds.push_back(elementId); m_hierarchyCache.addFirstChildIdsForNodeId(elementId, &nodeIds, &edgeIds); + + // don't expand active node if it has more than 20 child nodes + if (nodeIds.size() > 20) + { + nodeIds.clear(); + } + + nodeIds.push_back(elementId); edgeIds.clear(); std::vector edges = m_sqliteIndexStorage.getEdgesBySourceOrTargetId(elementId);