logic: Fixed base and derived classes not correctly at top or bottom

Prioritize inheritance and override over all other edges.
This commit is contained in:
Eberhard Graether
2016-05-23 15:58:31 +02:00
parent d80a123a5a
commit 4e08d86602
3 changed files with 27 additions and 6 deletions
@@ -537,13 +537,25 @@ void GraphController::bundleNodes()
bundleInfo->isDefined = true;
}
if (bundleInfo->layoutVertical)
{
return;
}
n->forEachEdgeOfType(
~Edge::EDGE_MEMBER,
[&bundleInfo, &n](Edge* e)
{
if (bundleInfo->layoutVertical)
{
return;
}
if (e->isType(Edge::EDGE_INHERITANCE | Edge::EDGE_OVERRIDE))
{
bundleInfo->layoutVertical = true;
bundleInfo->isReferenced = false;
bundleInfo->isReferencing = false;
}
if (e->isType(Edge::EDGE_AGGREGATION))