ui: Fixed namespace shown as separate node in graph when 'using namespace' edge is visible

This commit is contained in:
Eberhard Graether
2017-02-15 11:03:50 +01:00
parent 21fb8476ae
commit 1fca7d2f29
4 changed files with 25 additions and 12 deletions
@@ -305,7 +305,7 @@ void GraphController::createDummyGraphForTokenIds(const std::vector<Id>& tokenId
}
addedNodes.insert(id);
dummyNodes.push_back(createDummyNodeTopDown(parent, parent->getId()));
utility::append(dummyNodes, createDummyNodeTopDown(parent));
}
);
@@ -368,16 +368,32 @@ void GraphController::createDummyGraphForTokenIdsAndSetActiveAndVisibility(
setVisibility(noActive);
}
std::shared_ptr<DummyNode> GraphController::createDummyNodeTopDown(Node* node, Id parentId)
std::vector<std::shared_ptr<DummyNode>> GraphController::createDummyNodeTopDown(Node* node)
{
std::vector<std::shared_ptr<DummyNode>> nodes;
std::shared_ptr<DummyNode> result = std::make_shared<DummyNode>();
result->data = node;
result->tokenId = node->getId();
result->name = node->getName();
result->topLevelAncestorId = parentId;
m_dummyGraphNodes.emplace(result->data->getId(), result);
nodes.push_back(result);
if (node->isType(Node::NODE_NAMESPACE))
{
node->forEachChildNode(
[&nodes, this](Node* child)
{
utility::append(nodes, createDummyNodeTopDown(child));
}
);
return nodes;
}
node->forEachChildNode(
[node, &parentId, &result, this](Node* child)
[node, &result, this](Node* child)
{
DummyNode* parent = nullptr;
AccessKind accessKind = ACCESS_NONE;
@@ -406,13 +422,11 @@ std::shared_ptr<DummyNode> GraphController::createDummyNodeTopDown(Node* node, I
parent = accessNode.get();
}
parent->subNodes.push_back(createDummyNodeTopDown(child, parentId));
utility::append(parent->subNodes, createDummyNodeTopDown(child));
}
);
m_dummyGraphNodes.emplace(result->data->getId(), result);
return result;
return nodes;
}
std::vector<Id> GraphController::getExpandedNodeIds() const
@@ -68,7 +68,7 @@ private:
void createDummyGraphForTokenIds(const std::vector<Id>& tokenIds, const std::shared_ptr<Graph> graph);
void createDummyGraphForTokenIdsAndSetActiveAndVisibility(
const std::vector<Id>& tokenIds, const std::shared_ptr<Graph> graph);
std::shared_ptr<DummyNode> createDummyNodeTopDown(Node* node, Id parentId);
std::vector<std::shared_ptr<DummyNode>> createDummyNodeTopDown(Node* node);
std::vector<Id> getExpandedNodeIds() const;
void setExpandedNodeIds(const std::vector<Id>& nodeIds);
+2 -2
View File
@@ -173,7 +173,7 @@ size_t HierarchyCache::getIndexOfLastVisibleParentNode(Id nodeId) const
void HierarchyCache::addAllChildIdsForNodeId(Id nodeId, std::set<Id>* nodeIds, std::set<Id>* edgeIds) const
{
HierarchyNode* node = getNode(nodeId);
if (node)
if (node && node->isVisible())
{
node->addChildIdsRecursive(nodeIds, edgeIds);
}
@@ -182,7 +182,7 @@ void HierarchyCache::addAllChildIdsForNodeId(Id nodeId, std::set<Id>* nodeIds, s
void HierarchyCache::addAllVisibleParentsAndChildIdsForNodeId(Id nodeId, std::set<Id>* nodeIds, std::set<Id>* edgeIds) const
{
HierarchyNode* node = getNode(nodeId);
if (node)
if (node && node->isVisible())
{
node->addChildIds(nodeIds, edgeIds);
}
-1
View File
@@ -11,7 +11,6 @@
#include "qt/window/QtWindowStack.h"
class QDockWidget;
class QtSettingsWindow;
class View;
class QtViewToggle