From a4ad9a6a55cf57b575c20e2ca5e71bc4f1266179 Mon Sep 17 00:00:00 2001 From: jrheinlaender Date: Sat, 14 Sep 2013 08:11:59 +0200 Subject: [PATCH] ViewProviderBody::claimChildren() : Claim all children not claimed by another object --- src/Mod/PartDesign/Gui/ViewProviderBody.cpp | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/src/Mod/PartDesign/Gui/ViewProviderBody.cpp b/src/Mod/PartDesign/Gui/ViewProviderBody.cpp index 03b58297a..eaeddc8e2 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderBody.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderBody.cpp @@ -115,20 +115,10 @@ std::vector ViewProviderBody::claimChildren(void)const // search for objects handled (claimed) by the features for(std::vector::const_iterator it = Model.begin();it!=Model.end();++it){ - // sketches of SketchBased features get claimed under the feature so has to be removed from the Body - if ((*it)->isDerivedFrom(PartDesign::SketchBased::getClassTypeId())){ - App::DocumentObject* sketch = static_cast(*it)->Sketch.getValue(); - if (sketch != NULL) - OutSet.insert(sketch); - } - - // Transformations of a MultiTransform feature get claimed under the feature, too - if ((*it)->isDerivedFrom(PartDesign::MultiTransform::getClassTypeId())) { - std::vector trfs = static_cast(*it)->Transformations.getValues(); - for (std::vector::const_iterator t = trfs.begin(); t != trfs.end(); t++) - if ((*t) != NULL) - OutSet.insert(*t); - } + std::vector children = Gui::Application::Instance->getViewProvider(*it)->claimChildren(); + for (std::vector::const_iterator ch = children.begin(); ch != children.end(); ch++) + if ((*ch) != NULL) + OutSet.insert(*ch); } // remove the otherwise handled objects, preserving their order so the order in the TreeWidget is correct