logic: don't show implicit or undefined child nodes in graph unless connected

* visit implicit declarations in ASTVisitor
* show implicit and undefined child nodes only when connected
* fixed some bundle edges couldn't be split
* add "implicit" to tooltip
* show undefiend and implicit nodes hatched
This commit is contained in:
Eberhard Graether
2016-04-07 14:16:17 +02:00
parent 7a0cd0c8d7
commit ae6cd6e02c
10 changed files with 97 additions and 13 deletions
+16 -2
View File
@@ -458,7 +458,11 @@ std::vector<Id> Storage::getNodeIdsForLocationIds(const std::vector<Id>& locatio
}
else
{
nodeIds.insert(elementId);
StorageNode node = m_sqliteStorage.getNodeById(elementId);
if (node.id != 0 && intToDefinitionType(node.definitionType) == DEFINITION_EXPLICIT)
{
nodeIds.insert(elementId);
}
}
}
@@ -757,13 +761,23 @@ void Storage::addNodesToGraph(const std::vector<Id>& nodeIds, Graph* graph) cons
NameHierarchy nameHierarchy = NameHierarchy::deserialize(storageNode.serializedName);
Node::NodeType type = Node::intToType(storageNode.type);
DefinitionType defType = intToDefinitionType(storageNode.definitionType);
Node* node = graph->createNode(
storageNode.id,
type,
nameHierarchy,
intToDefinitionType(storageNode.definitionType) != DEFINITION_NONE
defType != DEFINITION_NONE
);
if (defType == DEFINITION_IMPLICIT)
{
node->setImplicit(true);
}
else if (defType == DEFINITION_EXPLICIT)
{
node->setExplicit(true);
}
if (type == Node::NODE_FUNCTION || type == Node::NODE_METHOD)
{
std::string signatureString = nameHierarchy.getRawNameWithSignature();