From f04d4430aae1ee5c50259f09efa510187019757f Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 4 Apr 2018 17:14:21 +0200 Subject: [PATCH] improve exception handling in ViewProviderBody::dropObject --- src/Mod/PartDesign/Gui/ViewProviderBody.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Mod/PartDesign/Gui/ViewProviderBody.cpp b/src/Mod/PartDesign/Gui/ViewProviderBody.cpp index bac5c64a50..b3a2647989 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderBody.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderBody.cpp @@ -476,7 +476,7 @@ void ViewProviderBody::dropObject(App::DocumentObject* obj) if (obj->getTypeId().isDerivedFrom(Part::Part2DObject::getClassTypeId())) { body->addObject(obj); } - else if (PartDesignGui::isFeatureMovable(obj)) { + else if (PartDesign::Body::isAllowed(obj) && PartDesignGui::isFeatureMovable(obj)) { std::vector move; move.push_back(obj); std::vector deps = PartDesignGui::collectMovableDependencies(move); @@ -485,9 +485,14 @@ void ViewProviderBody::dropObject(App::DocumentObject* obj) PartDesign::Body* source = PartDesign::Body::findBodyOf(obj); if (source) source->removeObjects(move); - body->addObjects(move); + try { + body->addObjects(move); + } + catch (const Base::Exception& e) { + e.ReportException(); + } } - else { + else if (body->BaseFeature.getValue() == nullptr) { body->BaseFeature.setValue(obj); }