diff --git a/src/Mod/TechDraw/Gui/QGEPath.cpp b/src/Mod/TechDraw/Gui/QGEPath.cpp index ce6765f49d..8c6ae8a5b5 100644 --- a/src/Mod/TechDraw/Gui/QGEPath.cpp +++ b/src/Mod/TechDraw/Gui/QGEPath.cpp @@ -252,6 +252,11 @@ void QGEPath::restoreState() { // Base::Console().Message("QGEPath::restoreState()\n"); inEdit(false); + if (m_ghost != nullptr) { + if (m_ghost->scene() != nullptr) { + scene()->removeItem(m_ghost); //stop ghost from messing up brect + } + } m_deltas = m_saveDeltas; updatePath(); } diff --git a/src/Mod/TechDraw/Gui/QGILeaderLine.cpp b/src/Mod/TechDraw/Gui/QGILeaderLine.cpp index e8169cb54d..e171939c4e 100644 --- a/src/Mod/TechDraw/Gui/QGILeaderLine.cpp +++ b/src/Mod/TechDraw/Gui/QGILeaderLine.cpp @@ -265,6 +265,7 @@ void QGILeaderLine::startPathEdit(void) void QGILeaderLine::saveState(void) { +// Base::Console().Message("QGILL::saveState()\n"); auto leadFeat = getFeature(); if (leadFeat != nullptr) { m_savePoints = leadFeat->WayPoints.getValues(); @@ -275,11 +276,13 @@ void QGILeaderLine::saveState(void) void QGILeaderLine::restoreState(void) { +// Base::Console().Message("QGILL::restoreState()\n"); auto leadFeat = getFeature(); if (leadFeat != nullptr) { leadFeat->WayPoints.setValues(m_savePoints); leadFeat->X.setValue(m_saveX); leadFeat->Y.setValue(m_saveY); + leadFeat->recomputeFeature(); } } @@ -487,9 +490,10 @@ void QGILeaderLine::setArrows(std::vector pathPoints) void QGILeaderLine::abandonEdit(void) { -//// Base::Console().Message("QGIL::abandonEdit()\n"); +// Base::Console().Message("QGIL::abandonEdit()\n"); m_line->clearMarkers(); m_line->restoreState(); + restoreState(); } double QGILeaderLine::getScale(void)