From 13661ddf216d57e4b72b7b367cfff727bcf96d4a Mon Sep 17 00:00:00 2001 From: wandererfan Date: Wed, 25 Mar 2020 18:22:10 -0400 Subject: [PATCH] [TD]remove highlight on deletion of detail --- src/Mod/TechDraw/App/DrawViewDetail.cpp | 12 +++++++++++- src/Mod/TechDraw/App/DrawViewDetail.h | 12 +++++++----- src/Mod/TechDraw/App/DrawViewPart.cpp | 4 +++- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/Mod/TechDraw/App/DrawViewDetail.cpp b/src/Mod/TechDraw/App/DrawViewDetail.cpp index 832da7e7bf..4e2e3f21ed 100644 --- a/src/Mod/TechDraw/App/DrawViewDetail.cpp +++ b/src/Mod/TechDraw/App/DrawViewDetail.cpp @@ -117,7 +117,6 @@ DrawViewDetail::DrawViewDetail() //hide Properties not relevant to DVDetail Direction.setStatus(App::Property::ReadOnly,true); //Should be same as BaseView Rotation.setStatus(App::Property::ReadOnly,true); //same as BaseView - } DrawViewDetail::~DrawViewDetail() @@ -420,6 +419,17 @@ bool DrawViewDetail::debugDetail(void) const return result; } +void DrawViewDetail::unsetupObject() +{ +// Base::Console().Message("DVD::unsetupObject()\n"); + App::DocumentObject* baseObj = BaseView.getValue(); + DrawView* base = dynamic_cast(baseObj); + if (base != nullptr) { + base->requestPaint(); + } + +} + void DrawViewDetail::getParameters() { diff --git a/src/Mod/TechDraw/App/DrawViewDetail.h b/src/Mod/TechDraw/App/DrawViewDetail.h index 496bfa7c65..8bfb536eb7 100644 --- a/src/Mod/TechDraw/App/DrawViewDetail.h +++ b/src/Mod/TechDraw/App/DrawViewDetail.h @@ -50,7 +50,7 @@ namespace TechDraw class TechDrawExport DrawViewDetail : public DrawViewPart { - PROPERTY_HEADER(Part::DrawViewDetail); + PROPERTY_HEADER_WITH_OVERRIDE(Part::DrawViewDetail); public: /// Constructor @@ -62,12 +62,14 @@ public: App::PropertyFloat Radius; App::PropertyString Reference; - virtual short mustExecute() const; - virtual App::DocumentObjectExecReturn *execute(void); - virtual void onChanged(const App::Property* prop); - virtual const char* getViewProviderName(void) const { + virtual short mustExecute() const override; + virtual App::DocumentObjectExecReturn *execute(void) override; + virtual void onChanged(const App::Property* prop) override; + virtual const char* getViewProviderName(void) const override { return "TechDrawGui::ViewProviderViewPart"; } + virtual void unsetupObject() override; + void detailExec(TopoDS_Shape s, DrawViewPart* baseView, diff --git a/src/Mod/TechDraw/App/DrawViewPart.cpp b/src/Mod/TechDraw/App/DrawViewPart.cpp index dc9c78a5b4..e1f95e7d4b 100644 --- a/src/Mod/TechDraw/App/DrawViewPart.cpp +++ b/src/Mod/TechDraw/App/DrawViewPart.cpp @@ -934,7 +934,9 @@ std::vector DrawViewPart::getDetailRefs(void) const std::vector inObjs = getInList(); for (auto& o:inObjs) { if (o->getTypeId().isDerivedFrom(DrawViewDetail::getClassTypeId())) { - result.push_back(static_cast(o)); + if (!o->isRemoving()) { + result.push_back(static_cast(o)); + } } } return result;