From b876c2bdf091431e83129915c64b958d387fd273 Mon Sep 17 00:00:00 2001 From: wandererfan Date: Wed, 4 Jul 2018 20:26:37 -0400 Subject: [PATCH] Use Stroker to generate Edge selection area --- src/Mod/TechDraw/Gui/QGIEdge.cpp | 14 ++++++++++++++ src/Mod/TechDraw/Gui/QGIEdge.h | 4 +++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/Mod/TechDraw/Gui/QGIEdge.cpp b/src/Mod/TechDraw/Gui/QGIEdge.cpp index 1f42f8474e..841974417d 100644 --- a/src/Mod/TechDraw/Gui/QGIEdge.cpp +++ b/src/Mod/TechDraw/Gui/QGIEdge.cpp @@ -93,6 +93,20 @@ Qt::PenStyle QGIEdge::getHiddenStyle() return hidStyle; } +QRectF QGIEdge::boundingRect() const +{ + return shape().controlPointRect(); +} + +QPainterPath QGIEdge::shape() const +{ + QPainterPath outline; + QPainterPathStroker stroker; + stroker.setWidth(2.0); + outline = stroker.createStroke(path()); + return outline; +} + void QGIEdge::paint ( QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget) { QStyleOptionGraphicsItem myOption(*option); myOption.state &= ~QStyle::State_Selected; diff --git a/src/Mod/TechDraw/Gui/QGIEdge.h b/src/Mod/TechDraw/Gui/QGIEdge.h index 894a1346eb..cc8643db26 100644 --- a/src/Mod/TechDraw/Gui/QGIEdge.h +++ b/src/Mod/TechDraw/Gui/QGIEdge.h @@ -37,7 +37,9 @@ public: enum {Type = QGraphicsItem::UserType + 103}; int type() const { return Type;} - virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0 ); + virtual QRectF boundingRect() const override; + virtual QPainterPath shape() const override; + virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0 ) override; int getProjIndex() const { return projIndex; }