logic: Show inheritance edges between parents of active symbol and other visible symbols (issue #167)

* add inheritance edges between parents of active symbol and other visible symbols
* add dashed inheritance edges when symbols are no direct decendants
* inheritance edges are also respected in layouting, putting base/derived classes in the correct top/bottom spot now

bug id = 167
This commit is contained in:
Eberhard Graether
2017-07-16 18:40:59 +02:00
parent 9a36d48d1e
commit 9d0b86ad98
19 changed files with 261 additions and 17 deletions
+7 -2
View File
@@ -336,7 +336,7 @@ QRectF QtLineItemBase::getArrowBoundingRect(const QPolygon& poly) const
return rect;
}
void QtLineItemBase::drawArrow(const QPolygon& poly, QPainterPath* path) const
void QtLineItemBase::drawArrow(const QPolygon& poly, QPainterPath* path, QPainterPath* arrowPath) const
{
int dir = getDirection(poly.at(1), poly.at(0));
@@ -364,7 +364,6 @@ void QtLineItemBase::drawArrow(const QPolygon& poly, QPainterPath* path) const
break;
}
if (m_style.arrowClosed)
{
path->lineTo(tip + toBack);
@@ -375,6 +374,12 @@ void QtLineItemBase::drawArrow(const QPolygon& poly, QPainterPath* path) const
path->lineTo(tip);
}
if (arrowPath)
{
path = arrowPath;
path->moveTo(tip);
}
path->lineTo(tip + toBack + toLeft);
if (m_style.arrowClosed)