From 818ea62f663fc5c82f5c85deaed2db76a30b2fcb Mon Sep 17 00:00:00 2001 From: wandererfan Date: Thu, 18 Apr 2019 13:15:44 -0400 Subject: [PATCH] Fix Detail Highlight when Detail has no Geometry - Detail circles were no drawn if detail area did not produce any geometry (detail anchor point + radius not over original part. --- src/Mod/TechDraw/App/DrawViewDetail.cpp | 8 +++++++- src/Mod/TechDraw/Gui/QGIViewPart.cpp | 6 ++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/Mod/TechDraw/App/DrawViewDetail.cpp b/src/Mod/TechDraw/App/DrawViewDetail.cpp index 35cf164731..e67826e577 100644 --- a/src/Mod/TechDraw/App/DrawViewDetail.cpp +++ b/src/Mod/TechDraw/App/DrawViewDetail.cpp @@ -288,7 +288,13 @@ App::DocumentObjectExecReturn *DrawViewDetail::execute(void) testBox.SetGap(0.0); BRepBndLib::Add(detail, testBox); if (testBox.IsVoid()) { - Base::Console().Message("DrawViewDetail - detail area contains no geometry\n"); +// Base::Console().Warning("DrawViewDetail - detail area contains no geometry\n"); + TechDrawGeometry::GeometryObject* go = getGeometryObject(); + if (go != nullptr) { + go->clear(); + } + requestPaint(); + dvp->requestPaint(); return new App::DocumentObjectExecReturn("DVDetail - detail area contains no geometry"); } diff --git a/src/Mod/TechDraw/Gui/QGIViewPart.cpp b/src/Mod/TechDraw/Gui/QGIViewPart.cpp index 34b9fdd5e1..15367ddc3c 100644 --- a/src/Mod/TechDraw/Gui/QGIViewPart.cpp +++ b/src/Mod/TechDraw/Gui/QGIViewPart.cpp @@ -331,6 +331,8 @@ void QGIViewPart::drawViewPart() return; } if (!viewPart->hasGeometry()) { + removePrimitives(); //clean the slate + removeDecorations(); return; } @@ -754,10 +756,6 @@ void QGIViewPart::drawHighlight(TechDraw::DrawViewDetail* viewDetail, bool b) return; } - if (!viewDetail->hasGeometry()) { - return; - } - auto vp = static_cast(getViewProvider(getViewObject())); if ( vp == nullptr ) { return;