diff --git a/src/lib/component/controller/GraphController.cpp b/src/lib/component/controller/GraphController.cpp index 9a37afa8..df5005c8 100644 --- a/src/lib/component/controller/GraphController.cpp +++ b/src/lib/component/controller/GraphController.cpp @@ -1345,10 +1345,7 @@ void GraphController::layoutNestingRecursive(DummyNode* node) const width = margins.charWidth * node->name.size(); - Node::NodeTypeMask mask = - Node::NODE_NON_INDEXED | Node::NODE_TYPE | Node::NODE_BUILTIN_TYPE | - Node::NODE_CLASS | Node::NODE_STRUCT | Node::NODE_ENUM | Node::NODE_UNION; - if (node->data->isType(mask) && node->data->getChildCount() > 0) + if (node->data->isType(Node::NODE_COLLAPSIBLE_TYPE) && node->data->getChildCount() > 0) { addExpandToggleNode(node); } diff --git a/src/lib/data/graph/Node.cpp b/src/lib/data/graph/Node.cpp index 981f637d..c3ef9b9e 100644 --- a/src/lib/data/graph/Node.cpp +++ b/src/lib/data/graph/Node.cpp @@ -11,13 +11,22 @@ #include "data/graph/token_component/TokenComponentStatic.h" #include "data/graph/token_component/TokenComponentFilePath.h" -const Node::NodeTypeMask Node::NODE_NOT_VISIBLE = NODE_NAMESPACE | NODE_PACKAGE; -const Node::NodeTypeMask Node::NODE_USEABLE_TYPE = NODE_NON_INDEXED | NODE_BUILTIN_TYPE | NODE_STRUCT | NODE_CLASS | - NODE_ENUM | NODE_UNION | NODE_INTERFACE | NODE_TYPEDEF; -const Node::NodeTypeMask Node::NODE_INHERITABLE_TYPE = NODE_NON_INDEXED | NODE_BUILTIN_TYPE | NODE_TYPE | NODE_STRUCT | - NODE_CLASS | NODE_INTERFACE; -const Node::NodeTypeMask Node::NODE_MEMBER_TYPE = NODE_METHOD | NODE_FIELD | NODE_CLASS | NODE_INTERFACE | NODE_STRUCT | - NODE_UNION | NODE_TYPEDEF | NODE_ENUM; +const Node::NodeTypeMask Node::NODE_NOT_VISIBLE = + NODE_NAMESPACE | NODE_PACKAGE; + +const Node::NodeTypeMask Node::NODE_USEABLE_TYPE = + NODE_NON_INDEXED | NODE_BUILTIN_TYPE | NODE_STRUCT | NODE_CLASS | NODE_ENUM | NODE_UNION | NODE_INTERFACE | + NODE_TYPEDEF; + +const Node::NodeTypeMask Node::NODE_INHERITABLE_TYPE = + NODE_NON_INDEXED | NODE_BUILTIN_TYPE | NODE_TYPE | NODE_STRUCT | NODE_CLASS | NODE_INTERFACE; + +const Node::NodeTypeMask Node::NODE_MEMBER_TYPE = + NODE_METHOD | NODE_FIELD | NODE_CLASS | NODE_INTERFACE | NODE_STRUCT | NODE_UNION | NODE_TYPEDEF | NODE_ENUM; + +const Node::NodeTypeMask Node::NODE_COLLAPSIBLE_TYPE = + NODE_NON_INDEXED | NODE_TYPE | NODE_BUILTIN_TYPE | NODE_CLASS | NODE_STRUCT | NODE_ENUM | NODE_UNION | + NODE_INTERFACE; std::string Node::getUnderscoredTypeString(NodeType type) { diff --git a/src/lib/data/graph/Node.h b/src/lib/data/graph/Node.h index 5c65b0e8..0fa5f36b 100644 --- a/src/lib/data/graph/Node.h +++ b/src/lib/data/graph/Node.h @@ -62,6 +62,7 @@ public: static const NodeTypeMask NODE_USEABLE_TYPE; static const NodeTypeMask NODE_INHERITABLE_TYPE; static const NodeTypeMask NODE_MEMBER_TYPE; + static const NodeTypeMask NODE_COLLAPSIBLE_TYPE; Node(Id id, NodeType type, NameHierarchy nameHierarchy, bool defined); Node(const Node& other); diff --git a/src/lib/data/storage/PersistentStorage.cpp b/src/lib/data/storage/PersistentStorage.cpp index fd6adb65..e7fd91d9 100644 --- a/src/lib/data/storage/PersistentStorage.cpp +++ b/src/lib/data/storage/PersistentStorage.cpp @@ -928,7 +928,7 @@ std::shared_ptr PersistentStorage::getGraphForActiveTokenIds( m_hierarchyCache.addFirstChildIdsForNodeId(elementId, &nodeIds, &edgeIds); // don't expand active node if it has more than 20 child nodes - if (nodeIds.size() > 20) + if (nodeIds.size() > 20 && nodeType & Node::NODE_COLLAPSIBLE_TYPE) { nodeIds.clear(); }