X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_Selection.cxx;fp=src%2FSMESHGUI%2FSMESHGUI_Selection.cxx;h=ea8bf0317c19b3830abdec24ee16db29ec52e6a9;hp=f90e76ca0a5aac85c4e069c67865174fafea2ae7;hb=78bfc8db7d5be814985cdbda3eb33936e42288c1;hpb=370bb866cf37417d59d9b1b80054ad0ac27417cd diff --git a/src/SMESHGUI/SMESHGUI_Selection.cxx b/src/SMESHGUI/SMESHGUI_Selection.cxx index f90e76ca0..ea8bf0317 100644 --- a/src/SMESHGUI/SMESHGUI_Selection.cxx +++ b/src/SMESHGUI/SMESHGUI_Selection.cxx @@ -93,10 +93,16 @@ bool SMESHGUI_Selection::processOwner( const LightApp_DataOwner* ow ) { const LightApp_SVTKDataOwner* owner = dynamic_cast ( ow ); - if( owner ) + if( owner ) { myActors.append( dynamic_cast( owner->GetActor() ) ); - else + } + else if ( ow ) { // SVTK selection disabled + QString entry = ow->entry(); + myActors.append( SMESH::FindActorByEntry( entry.toStdString().c_str() )); + } + else { myActors.append( 0 ); + } return true; } @@ -433,7 +439,7 @@ int SMESHGUI_Selection::dim( int ind ) const case SMESH::BALL : dim = std::max( dim, 0 ); break; default: break; } - } + } } } } @@ -454,19 +460,19 @@ QVariant SMESHGUI_Selection::isComputable( int ind ) const if( !CORBA::is_nil( obj ) ) { SMESH::SMESH_Mesh_var mesh = SMESH::SMESH_Mesh::_narrow( obj ); if ( !CORBA::is_nil( mesh ) ) { - if ( mesh->HasShapeToMesh() ) { - GEOM::GEOM_Object_var shape = SMESH::GetShapeOnMeshOrSubMesh( so ); - return QVariant( !shape->_is_nil() ); - } - else - { - return QVariant( mesh->NbFaces() !=0 ); - } + if ( mesh->HasShapeToMesh() ) { + GEOM::GEOM_Object_var shape = SMESH::GetShapeOnMeshOrSubMesh( so ); + return QVariant( !shape->_is_nil() ); + } + else + { + return QVariant( mesh->NbFaces() !=0 ); + } } else { - GEOM::GEOM_Object_var shape = SMESH::GetShapeOnMeshOrSubMesh( so ); - return QVariant( !shape->_is_nil() ); + GEOM::GEOM_Object_var shape = SMESH::GetShapeOnMeshOrSubMesh( so ); + return QVariant( !shape->_is_nil() ); } } } @@ -582,42 +588,42 @@ int SMESHGUI_Selection::type( const QString& entry, _PTR(Study) study ) if ( objComponent->ComponentDataType() == "SMESH" ) { if ( objComponent->GetIOR() == obj->GetIOR() ) { - res = SMESH::COMPONENT; + res = SMESH::COMPONENT; } else { - int aLevel = obj->Depth() - objComponent->Depth(), - aFTag = objFather->Tag(), - anOTag = obj->Tag(); - - switch ( aLevel ) - { - case 1: - if ( anOTag >= SMESH::Tag_FirstMeshRoot ) - res = SMESH::MESH; - break; - case 2: - switch ( aFTag ) - { - case SMESH::Tag_HypothesisRoot: res = SMESH::HYPOTHESIS; break; - case SMESH::Tag_AlgorithmsRoot: res = SMESH::ALGORITHM; break; - default: break; - } - break; - case 3: - switch ( aFTag ) - { - case SMESH::Tag_SubMeshOnVertex: res = SMESH::SUBMESH_VERTEX; break; - case SMESH::Tag_SubMeshOnEdge: res = SMESH::SUBMESH_EDGE; break; - case SMESH::Tag_SubMeshOnFace: res = SMESH::SUBMESH_FACE; break; - case SMESH::Tag_SubMeshOnSolid: res = SMESH::SUBMESH_SOLID; break; - case SMESH::Tag_SubMeshOnCompound: res = SMESH::SUBMESH_COMPOUND; break; - default: - if ( aFTag >= SMESH::Tag_FirstGroup) res = SMESH::GROUP; - else res = SMESH::SUBMESH; - break; - } - break; - } + int aLevel = obj->Depth() - objComponent->Depth(), + aFTag = objFather->Tag(), + anOTag = obj->Tag(); + + switch ( aLevel ) + { + case 1: + if ( anOTag >= SMESH::Tag_FirstMeshRoot ) + res = SMESH::MESH; + break; + case 2: + switch ( aFTag ) + { + case SMESH::Tag_HypothesisRoot: res = SMESH::HYPOTHESIS; break; + case SMESH::Tag_AlgorithmsRoot: res = SMESH::ALGORITHM; break; + default: break; + } + break; + case 3: + switch ( aFTag ) + { + case SMESH::Tag_SubMeshOnVertex: res = SMESH::SUBMESH_VERTEX; break; + case SMESH::Tag_SubMeshOnEdge: res = SMESH::SUBMESH_EDGE; break; + case SMESH::Tag_SubMeshOnFace: res = SMESH::SUBMESH_FACE; break; + case SMESH::Tag_SubMeshOnSolid: res = SMESH::SUBMESH_SOLID; break; + case SMESH::Tag_SubMeshOnCompound: res = SMESH::SUBMESH_COMPOUND; break; + default: + if ( aFTag >= SMESH::Tag_FirstGroup) res = SMESH::GROUP; + else res = SMESH::SUBMESH; + break; + } + break; + } } } }