X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_Displayer.cxx;h=7c76db556ba6b1d90429c2ac79e52aa7f3b87212;hp=bfd048dc8241e6b8e9358f8f9e7e0efbbe4300a1;hb=499f29d24922cec66e41b41a0039a954993bc6df;hpb=0fc0831670e27a5611b941c52dc152fd63964515 diff --git a/src/SMESHGUI/SMESHGUI_Displayer.cxx b/src/SMESHGUI/SMESHGUI_Displayer.cxx index bfd048dc8..7c76db556 100644 --- a/src/SMESHGUI/SMESHGUI_Displayer.cxx +++ b/src/SMESHGUI/SMESHGUI_Displayer.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2022 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -46,7 +46,8 @@ SMESHGUI_Displayer::SMESHGUI_Displayer( SalomeApp_Application* app ) : LightApp_Displayer(), - myApp( app ) + myApp( app ), + isNeedFitAll(false) { } @@ -71,6 +72,7 @@ SALOME_Prs* SMESHGUI_Displayer::buildPresentation( const QString& entry, SALOME_ anActor = SMESH::CreateActor( entry.toUtf8().data(), true ); if( anActor ) { + isNeedFitAll = SMESH::NoSmeshActors(); SMESH::DisplayActor( wnd, anActor ); prs = LightApp_Displayer::buildPresentation( entry.toUtf8().data(), aViewFrame ); } @@ -89,7 +91,8 @@ SalomeApp_Study* SMESHGUI_Displayer::study() const return dynamic_cast( myApp->activeStudy() ); } -bool SMESHGUI_Displayer::canBeDisplayed( const QString& entry, const QString& viewer_type ) const { +bool SMESHGUI_Displayer::canBeDisplayed( const QString& entry, const QString& viewer_type ) const +{ bool res = false; if(viewer_type != SVTK_Viewer::Type()) return res; @@ -97,25 +100,28 @@ bool SMESHGUI_Displayer::canBeDisplayed( const QString& entry, const QString& vi _PTR(SObject) obj = SMESH::getStudy()->FindObjectID( (const char*)entry.toUtf8() ); CORBA::Object_var anObj = SMESH::SObjectToObject( obj ); - /* - if( !CORBA::is_nil( anObj ) ) { + if ( !CORBA::is_nil( anObj ) ) + { SMESH::SMESH_Mesh_var mesh = SMESH::SMESH_Mesh::_narrow( anObj ); - if ( ! mesh->_is_nil() ) - res = (mesh->NbNodes() > 0); - - SMESH::SMESH_subMesh_var aSubMeshObj = SMESH::SMESH_subMesh::_narrow( anObj ); - if ( !aSubMeshObj->_is_nil() ) - res = (aSubMeshObj->GetNumberOfNodes(true) > 0); - - SMESH::SMESH_GroupBase_var aGroupObj = SMESH::SMESH_GroupBase::_narrow( anObj ); - if ( !aGroupObj->_is_nil() ) - res = !aGroupObj->IsEmpty(); - }*/ - if( !CORBA::is_nil( anObj ) ) { - if(!SMESH::SMESH_Mesh::_narrow( anObj )->_is_nil() || - !SMESH::SMESH_subMesh::_narrow( anObj )->_is_nil() || - !SMESH::SMESH_GroupBase::_narrow( anObj )->_is_nil()) - res = true; + if ( ! ( res = !mesh->_is_nil() )) + { + SMESH::SMESH_subMesh_var aSubMeshObj = SMESH::SMESH_subMesh::_narrow( anObj ); + if ( ! ( res = !aSubMeshObj->_is_nil() )) + { + SMESH::SMESH_GroupBase_var aGroupObj = SMESH::SMESH_GroupBase::_narrow( anObj ); + res = !aGroupObj->_is_nil(); + } + } } return res; } + +void SMESHGUI_Displayer::Display( const QStringList& theList, const bool anUpdateViewer, SALOME_View* theView ) +{ + LightApp_Displayer::Display( theList, anUpdateViewer, theView ); + + if (isNeedFitAll) { + SMESH::FitAll(); + isNeedFitAll = false; + } +} \ No newline at end of file