From 47dd79ac25d3e6f18f4d82283fdd2c46fb06c5e5 Mon Sep 17 00:00:00 2001 From: Sergo Date: Wed, 7 Dec 2016 21:52:08 -0500 Subject: [PATCH] check extension, get children --- src/Gui/Document.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Gui/Document.cpp b/src/Gui/Document.cpp index 82df71cb1..de438bf0e 100644 --- a/src/Gui/Document.cpp +++ b/src/Gui/Document.cpp @@ -1479,17 +1479,17 @@ void Document::handleChildren3D(ViewProvider* viewProvider) } } else if (viewProvider && viewProvider->isDerivedFrom(ViewProviderDocumentObjectGroup::getClassTypeId())) { - ViewProviderDocumentObject* vp = static_cast(viewProvider); - auto* ext = vp->getObject()->getExtensionByType(); - std::vector children = ext->getObjects(); + 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); + 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); + } } } }