diff --git a/src/Mod/TechDraw/Gui/QGIWeldSymbol.cpp b/src/Mod/TechDraw/Gui/QGIWeldSymbol.cpp index 68aa6b8ed8..df264cdbbb 100644 --- a/src/Mod/TechDraw/Gui/QGIWeldSymbol.cpp +++ b/src/Mod/TechDraw/Gui/QGIWeldSymbol.cpp @@ -58,6 +58,9 @@ QGIWeldSymbol::QGIWeldSymbol(QGILeaderLine* myParent) : m_arrowFeat(nullptr), m_otherFeat(nullptr), m_qgLead(myParent), + m_tailText(nullptr), + m_fieldFlag(nullptr), + m_allAround(nullptr), m_blockDraw(false) { setFiltersChildEvents(true); //qt5 @@ -503,16 +506,24 @@ QRectF QGIWeldSymbol::customBoundingRect() const { QRectF result; - QRectF childRect = mapFromItem(m_tailText, m_tailText->boundingRect()).boundingRect(); - result = result.united(childRect); - childRect = mapFromItem(m_fieldFlag, m_fieldFlag->boundingRect()).boundingRect(); - result = result.united(childRect); - childRect = mapFromItem(m_allAround, m_allAround->boundingRect()).boundingRect(); - result = result.united(childRect); + if (m_tailText) { + QRectF childRect = mapFromItem(m_tailText, m_tailText->boundingRect()).boundingRect(); + result = result.united(childRect); + } + + if (m_fieldFlag) { + QRectF childRect = mapFromItem(m_fieldFlag, m_fieldFlag->boundingRect()).boundingRect(); + result = result.united(childRect); + } + + if (m_allAround) { + QRectF childRect = mapFromItem(m_allAround, m_allAround->boundingRect()).boundingRect(); + result = result.united(childRect); + } std::vector qgTiles = getQGITiles(); for (auto& t: qgTiles) { - childRect = mapFromItem(t, t->boundingRect()).boundingRect(); + QRectF childRect = mapFromItem(t, t->boundingRect()).boundingRect(); result = result.united(childRect); } return result; diff --git a/src/Mod/TechDraw/Gui/QGIWeldSymbol.h b/src/Mod/TechDraw/Gui/QGIWeldSymbol.h index b2fdb2df9f..4d8ceeedb7 100644 --- a/src/Mod/TechDraw/Gui/QGIWeldSymbol.h +++ b/src/Mod/TechDraw/Gui/QGIWeldSymbol.h @@ -41,6 +41,7 @@ class Document; namespace TechDraw { class DrawWeldSymbol; +class DrawLeaderLine; class DrawTileWeld; class DrawView; }