diff --git a/src/Gui/Document.cpp b/src/Gui/Document.cpp index 6c6de38e37..efad6176f2 100644 --- a/src/Gui/Document.cpp +++ b/src/Gui/Document.cpp @@ -1494,6 +1494,7 @@ void Document::handleChildren3D(ViewProvider* viewProvider) for (std::list::iterator vIt = d->baseViews.begin();vIt != d->baseViews.end();++vIt) { View3DInventor *activeView = dynamic_cast(*vIt); if (activeView && activeView->getViewer()->hasViewProvider(ChildViewProvider)) { + // @Note hasViewProvider() // remove the viewprovider serves the purpose of detaching the inventor nodes from the // top level root in the viewer. However, if some of the children were grouped beneath the object @@ -1506,24 +1507,7 @@ void Document::handleChildren3D(ViewProvider* viewProvider) } } } - } else if (viewProvider && viewProvider->isDerivedFrom(ViewProviderDocumentObjectGroup::getClassTypeId())) { - - if (viewProvider->hasExtension(ViewProviderDocumentObjectGroup::getExtensionClassTypeId())) { - std::vector children = viewProvider->claimChildren(); - - for (auto& child : children) { - ViewProvider* ChildViewProvider = getViewProvider(child); - if (ChildViewProvider) { - for (BaseView* view : d->baseViews) { - View3DInventor *activeView = dynamic_cast(view); - if (activeView && !activeView->getViewer()->hasViewProvider(ChildViewProvider)) { - activeView->getViewer()->addViewProvider(ChildViewProvider); - } - } - } - } - } - } + } //find all unclaimed viewproviders and add them back to the document (this happens if a //viewprovider has been claimed before, but the object droped it. diff --git a/src/Gui/Tree.cpp b/src/Gui/Tree.cpp index 9ba77e376f..74edf8222d 100644 --- a/src/Gui/Tree.cpp +++ b/src/Gui/Tree.cpp @@ -643,29 +643,6 @@ void TreeWidget::dropEvent(QDropEvent *event) Gui::ViewProvider* vpp = static_cast(parent)->object(); vpp->dragObject(obj); } - - //make sure it is not part of a geofeaturegroup anymore. When this has happen we need to handle - //all removed objects - std::vector vps = {vpc}; - auto grp = App::GeoFeatureGroupExtension::getGroupOfObject(obj); - if(grp) { - auto removed = grp->getExtensionByType()->removeObject(obj); - for(auto o : removed) { - auto remvp = gui->getViewProvider(o); - if(remvp) - vps.push_back(remvp); - } - } - - for(auto vp : vps) { - std::list baseViews = gui->getMDIViews(); - for (MDIView* view : baseViews) { - View3DInventor *activeView = dynamic_cast(view); - if (activeView && !activeView->getViewer()->hasViewProvider(vp)) { - activeView->getViewer()->addViewProvider(vp); - } - } - } } gui->commitCommand(); }