Skip to content

Commit 00b1bcc

Browse files
committed
Do not use a ratio for bounding rect.
1 parent 34b6f81 commit 00b1bcc

6 files changed

Lines changed: 29 additions & 20 deletions

include/QtNodes/internal/AbstractNodeGeometry.hpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,8 @@ class NODE_EDITOR_PUBLIC AbstractNodeGeometry
2121
* The node's size plus some additional margin around it to account for drawing
2222
* effects (for example shadows) or node's parts outside the size rectangle
2323
* (for example port points).
24-
*
25-
* The default implementation returns QSize + 20 percent of width and heights
26-
* at each side of the rectangle.
2724
*/
28-
virtual QRectF boundingRect(NodeId const nodeId) const;
25+
virtual QRectF boundingRect(NodeId const nodeId) const = 0;
2926

3027
/// A direct rectangle defining the borders of the node's rectangle.
3128
virtual QSize size(NodeId const nodeId) const = 0;

include/QtNodes/internal/DefaultHorizontalNodeGeometry.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ class NODE_EDITOR_PUBLIC DefaultHorizontalNodeGeometry : public AbstractNodeGeom
1515
DefaultHorizontalNodeGeometry(AbstractGraphModel &graphModel);
1616

1717
public:
18+
QRectF boundingRect(NodeId const nodeId) const;
19+
1820
QSize size(NodeId const nodeId) const override;
1921

2022
void recomputeSize(NodeId const nodeId) const override;

include/QtNodes/internal/DefaultVerticalNodeGeometry.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ class NODE_EDITOR_PUBLIC DefaultVerticalNodeGeometry : public AbstractNodeGeomet
1515
DefaultVerticalNodeGeometry(AbstractGraphModel &graphModel);
1616

1717
public:
18+
QRectF boundingRect(NodeId const nodeId) const override;
19+
1820
QSize size(NodeId const nodeId) const override;
1921

2022
void recomputeSize(NodeId const nodeId) const override;

src/AbstractNodeGeometry.cpp

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,6 @@ AbstractNodeGeometry::AbstractNodeGeometry(AbstractGraphModel &graphModel)
1515
//
1616
}
1717

18-
QRectF AbstractNodeGeometry::boundingRect(NodeId const nodeId) const
19-
{
20-
QSize s = size(nodeId);
21-
22-
double ratio = 0.20;
23-
24-
int widthMargin = s.width() * ratio;
25-
int heightMargin = s.height() * ratio;
26-
27-
QMargins margins(widthMargin, heightMargin, widthMargin, heightMargin);
28-
29-
QRectF r(QPointF(0, 0), s);
30-
31-
return r.marginsAdded(margins);
32-
}
33-
3418
QPointF AbstractNodeGeometry::portScenePosition(NodeId const nodeId,
3519
PortType const portType,
3620
PortIndex const index,

src/DefaultHorizontalNodeGeometry.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,18 @@ DefaultHorizontalNodeGeometry::DefaultHorizontalNodeGeometry(AbstractGraphModel
2323
_portSize = _fontMetrics.height();
2424
}
2525

26+
QRectF DefaultHorizontalNodeGeometry::boundingRect(NodeId const nodeId) const
27+
{
28+
QSize s = size(nodeId);
29+
30+
qreal marginSize = 2.0 * _portSpasing;
31+
QMargins margins(marginSize, marginSize, marginSize, marginSize);
32+
33+
QRectF r(QPointF(0, 0), s);
34+
35+
return r.marginsAdded(margins);
36+
}
37+
2638
QSize DefaultHorizontalNodeGeometry::size(NodeId const nodeId) const
2739
{
2840
return _graphModel.nodeData<QSize>(nodeId, NodeRole::Size);

src/DefaultVerticalNodeGeometry.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,18 @@ DefaultVerticalNodeGeometry::DefaultVerticalNodeGeometry(AbstractGraphModel &gra
2323
_portSize = _fontMetrics.height();
2424
}
2525

26+
QRectF DefaultVerticalNodeGeometry::boundingRect(NodeId const nodeId) const
27+
{
28+
QSize s = size(nodeId);
29+
30+
qreal marginSize = 2.0 * _portSpasing;
31+
QMargins margins(marginSize, marginSize, marginSize, marginSize);
32+
33+
QRectF r(QPointF(0, 0), s);
34+
35+
return r.marginsAdded(margins);
36+
}
37+
2638
QSize DefaultVerticalNodeGeometry::size(NodeId const nodeId) const
2739
{
2840
return _graphModel.nodeData<QSize>(nodeId, NodeRole::Size);

0 commit comments

Comments
 (0)