X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_Displayer.cxx;h=05fea2e6a8a249a8fc323355dd83e3711133e316;hb=53cfbcdd3398697cb1581f0dcd92fb3cd7805fc3;hp=633d9196abbb7570e76281e887a010e33ca567a0;hpb=b7a7d49664daa32e1befb558280e13ed0bde37c9;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_Displayer.cxx b/src/SMESHGUI/SMESHGUI_Displayer.cxx index 633d9196a..05fea2e6a 100644 --- a/src/SMESHGUI/SMESHGUI_Displayer.cxx +++ b/src/SMESHGUI/SMESHGUI_Displayer.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2021 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) { } @@ -66,13 +67,14 @@ SALOME_Prs* SMESHGUI_Displayer::buildPresentation( const QString& entry, SALOME_ if( vtk_viewer ) { SUIT_ViewWindow* wnd = vtk_viewer->getViewManager()->getActiveView(); - SMESH_Actor* anActor = SMESH::FindActorByEntry( wnd, entry.toLatin1().data() ); + SMESH_Actor* anActor = SMESH::FindActorByEntry( wnd, entry.toUtf8().data() ); if( !anActor ) - anActor = SMESH::CreateActor( entry.toLatin1().data(), true ); + anActor = SMESH::CreateActor( entry.toUtf8().data(), true ); if( anActor ) { + isNeedFitAll = SMESH::NoSmeshActors(); SMESH::DisplayActor( wnd, anActor ); - prs = LightApp_Displayer::buildPresentation( entry.toLatin1().data(), aViewFrame ); + prs = LightApp_Displayer::buildPresentation( entry.toUtf8().data(), aViewFrame ); } if( prs ) UpdatePrs( prs ); @@ -89,33 +91,37 @@ 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; - _PTR(SObject) obj = SMESH::getStudy()->FindObjectID( (const char*)entry.toLatin1() ); + _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