diff --git a/src/app/tools/drawTools/vabstractspline.cpp b/src/app/tools/drawTools/vabstractspline.cpp index 337ef0f1c..8e0e4080b 100644 --- a/src/app/tools/drawTools/vabstractspline.cpp +++ b/src/app/tools/drawTools/vabstractspline.cpp @@ -38,6 +38,19 @@ VAbstractSpline::VAbstractSpline(VPattern *doc, VContainer *data, quint32 id, QG ignoreFullUpdate = true; } +//--------------------------------------------------------------------------------------------------------------------- +void VAbstractSpline::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) +{ + /* From question on StackOverflow + * https://stackoverflow.com/questions/10985028/how-to-remove-border-around-qgraphicsitem-when-selected + * + * There's no interface to disable the drawing of the selection border for the build-in QGraphicsItems. The only way + * I can think of is derive your own items from the build-in ones and override the paint() function:*/ + QStyleOptionGraphicsItem myOption(*option); + myOption.state &= ~QStyle::State_Selected; + QGraphicsPathItem::paint(painter, &myOption, widget); +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief FullUpdateFromFile update tool data form file. diff --git a/src/app/tools/drawTools/vabstractspline.h b/src/app/tools/drawTools/vabstractspline.h index 39107bf3c..34ab3bf27 100644 --- a/src/app/tools/drawTools/vabstractspline.h +++ b/src/app/tools/drawTools/vabstractspline.h @@ -39,6 +39,7 @@ class VAbstractSpline:public VDrawTool, public QGraphicsPathItem public: VAbstractSpline(VPattern *doc, VContainer *data, quint32 id, QGraphicsItem * parent = nullptr); static const QString TagName; + virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0); public slots: virtual void FullUpdateFromFile (); void Disable(bool disable); diff --git a/src/app/tools/drawTools/vtoolline.cpp b/src/app/tools/drawTools/vtoolline.cpp index d1e6b8c7c..8698e6630 100644 --- a/src/app/tools/drawTools/vtoolline.cpp +++ b/src/app/tools/drawTools/vtoolline.cpp @@ -163,6 +163,19 @@ VToolLine * VToolLine::Create(const quint32 &_id, const quint32 &firstPoint, con return nullptr; } +//--------------------------------------------------------------------------------------------------------------------- +void VToolLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) +{ + /* From question on StackOverflow + * https://stackoverflow.com/questions/10985028/how-to-remove-border-around-qgraphicsitem-when-selected + * + * There's no interface to disable the drawing of the selection border for the build-in QGraphicsItems. The only way + * I can think of is derive your own items from the build-in ones and override the paint() function:*/ + QStyleOptionGraphicsItem myOption(*option); + myOption.state &= ~QStyle::State_Selected; + QGraphicsLineItem::paint(painter, &myOption, widget); +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief FullUpdateFromFile update tool data form file. diff --git a/src/app/tools/drawTools/vtoolline.h b/src/app/tools/drawTools/vtoolline.h index f588b93cf..534507fb9 100644 --- a/src/app/tools/drawTools/vtoolline.h +++ b/src/app/tools/drawTools/vtoolline.h @@ -47,6 +47,7 @@ public: const QString &typeLine, VMainGraphicsScene *scene, VPattern *doc, VContainer *data, const Document &parse, const Source &typeCreation); static const QString TagName; + virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0); public slots: virtual void FullUpdateFromFile(); virtual void ChangedActivDraw(const QString &newName); diff --git a/src/app/tools/drawTools/vtoolpoint.cpp b/src/app/tools/drawTools/vtoolpoint.cpp index d7ebd0555..362b83440 100644 --- a/src/app/tools/drawTools/vtoolpoint.cpp +++ b/src/app/tools/drawTools/vtoolpoint.cpp @@ -58,6 +58,19 @@ VToolPoint::VToolPoint(VPattern *doc, VContainer *data, quint32 id, QGraphicsIte RefreshPointGeometry(*VAbstractTool::data.GeometricObject(id)); } +//--------------------------------------------------------------------------------------------------------------------- +void VToolPoint::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) +{ + /* From question on StackOverflow + * https://stackoverflow.com/questions/10985028/how-to-remove-border-around-qgraphicsitem-when-selected + * + * There's no interface to disable the drawing of the selection border for the build-in QGraphicsItems. The only way + * I can think of is derive your own items from the build-in ones and override the paint() function:*/ + QStyleOptionGraphicsItem myOption(*option); + myOption.state &= ~QStyle::State_Selected; + QGraphicsEllipseItem::paint(painter, &myOption, widget); +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief NameChangePosition handle change posion point label. diff --git a/src/app/tools/drawTools/vtoolpoint.h b/src/app/tools/drawTools/vtoolpoint.h index eeeda8dc6..d20ceb60e 100644 --- a/src/app/tools/drawTools/vtoolpoint.h +++ b/src/app/tools/drawTools/vtoolpoint.h @@ -45,6 +45,7 @@ public: VToolPoint(VPattern *doc, VContainer *data, quint32 id, QGraphicsItem * parent = nullptr); virtual ~VToolPoint(){} static const QString TagName; + virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0); public slots: void NameChangePosition(const QPointF &pos); virtual void ChangedActivDraw(const QString &newName);