Gui: add virtual method containsViewProvider to MDIView and re-implement it in some sub-classes

Improve Document::setActiveView to not always switch to the first 3D view but check the currently active view before
This commit is contained in:
wmayer
2019-12-29 15:00:35 +01:00
parent ad95219129
commit eb4e2d2c56
8 changed files with 73 additions and 18 deletions

View File

@@ -968,6 +968,15 @@ SbBool View3DInventorViewer::hasViewProvider(ViewProvider* pcProvider) const
return _ViewProviderSet.find(pcProvider) != _ViewProviderSet.end();
}
SbBool View3DInventorViewer::containsViewProvider(const ViewProvider* vp) const
{
SoSearchAction sa;
sa.setNode(const_cast<ViewProvider*>(vp)->getRoot());
sa.setSearchingAll(true);
sa.apply(getSoRenderManager()->getSceneGraph());
return sa.getPath() != nullptr;
}
/// adds an ViewProvider to the view, e.g. from a feature
void View3DInventorViewer::addViewProvider(ViewProvider* pcProvider)
{