mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-27 13:20:34 +05:00
22434: [CEA 1022] If selection is disabled, the contextual menu of VTK view does not update on selected object
Fix processOwner() for the case of disabled SVTK selection
This commit is contained in:
parent
370bb866cf
commit
78bfc8db7d
@ -93,10 +93,16 @@ bool SMESHGUI_Selection::processOwner( const LightApp_DataOwner* ow )
|
|||||||
{
|
{
|
||||||
const LightApp_SVTKDataOwner* owner =
|
const LightApp_SVTKDataOwner* owner =
|
||||||
dynamic_cast<const LightApp_SVTKDataOwner*> ( ow );
|
dynamic_cast<const LightApp_SVTKDataOwner*> ( ow );
|
||||||
if( owner )
|
if( owner ) {
|
||||||
myActors.append( dynamic_cast<SMESH_Actor*>( owner->GetActor() ) );
|
myActors.append( dynamic_cast<SMESH_Actor*>( 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 );
|
myActors.append( 0 );
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -433,7 +439,7 @@ int SMESHGUI_Selection::dim( int ind ) const
|
|||||||
case SMESH::BALL : dim = std::max( dim, 0 ); break;
|
case SMESH::BALL : dim = std::max( dim, 0 ); break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -454,19 +460,19 @@ QVariant SMESHGUI_Selection::isComputable( int ind ) const
|
|||||||
if( !CORBA::is_nil( obj ) ) {
|
if( !CORBA::is_nil( obj ) ) {
|
||||||
SMESH::SMESH_Mesh_var mesh = SMESH::SMESH_Mesh::_narrow( obj );
|
SMESH::SMESH_Mesh_var mesh = SMESH::SMESH_Mesh::_narrow( obj );
|
||||||
if ( !CORBA::is_nil( mesh ) ) {
|
if ( !CORBA::is_nil( mesh ) ) {
|
||||||
if ( mesh->HasShapeToMesh() ) {
|
if ( mesh->HasShapeToMesh() ) {
|
||||||
GEOM::GEOM_Object_var shape = SMESH::GetShapeOnMeshOrSubMesh( so );
|
GEOM::GEOM_Object_var shape = SMESH::GetShapeOnMeshOrSubMesh( so );
|
||||||
return QVariant( !shape->_is_nil() );
|
return QVariant( !shape->_is_nil() );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return QVariant( mesh->NbFaces() !=0 );
|
return QVariant( mesh->NbFaces() !=0 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
GEOM::GEOM_Object_var shape = SMESH::GetShapeOnMeshOrSubMesh( so );
|
GEOM::GEOM_Object_var shape = SMESH::GetShapeOnMeshOrSubMesh( so );
|
||||||
return QVariant( !shape->_is_nil() );
|
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->ComponentDataType() == "SMESH" ) {
|
||||||
if ( objComponent->GetIOR() == obj->GetIOR() ) {
|
if ( objComponent->GetIOR() == obj->GetIOR() ) {
|
||||||
res = SMESH::COMPONENT;
|
res = SMESH::COMPONENT;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
int aLevel = obj->Depth() - objComponent->Depth(),
|
int aLevel = obj->Depth() - objComponent->Depth(),
|
||||||
aFTag = objFather->Tag(),
|
aFTag = objFather->Tag(),
|
||||||
anOTag = obj->Tag();
|
anOTag = obj->Tag();
|
||||||
|
|
||||||
switch ( aLevel )
|
switch ( aLevel )
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
if ( anOTag >= SMESH::Tag_FirstMeshRoot )
|
if ( anOTag >= SMESH::Tag_FirstMeshRoot )
|
||||||
res = SMESH::MESH;
|
res = SMESH::MESH;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
switch ( aFTag )
|
switch ( aFTag )
|
||||||
{
|
{
|
||||||
case SMESH::Tag_HypothesisRoot: res = SMESH::HYPOTHESIS; break;
|
case SMESH::Tag_HypothesisRoot: res = SMESH::HYPOTHESIS; break;
|
||||||
case SMESH::Tag_AlgorithmsRoot: res = SMESH::ALGORITHM; break;
|
case SMESH::Tag_AlgorithmsRoot: res = SMESH::ALGORITHM; break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
switch ( aFTag )
|
switch ( aFTag )
|
||||||
{
|
{
|
||||||
case SMESH::Tag_SubMeshOnVertex: res = SMESH::SUBMESH_VERTEX; break;
|
case SMESH::Tag_SubMeshOnVertex: res = SMESH::SUBMESH_VERTEX; break;
|
||||||
case SMESH::Tag_SubMeshOnEdge: res = SMESH::SUBMESH_EDGE; break;
|
case SMESH::Tag_SubMeshOnEdge: res = SMESH::SUBMESH_EDGE; break;
|
||||||
case SMESH::Tag_SubMeshOnFace: res = SMESH::SUBMESH_FACE; break;
|
case SMESH::Tag_SubMeshOnFace: res = SMESH::SUBMESH_FACE; break;
|
||||||
case SMESH::Tag_SubMeshOnSolid: res = SMESH::SUBMESH_SOLID; break;
|
case SMESH::Tag_SubMeshOnSolid: res = SMESH::SUBMESH_SOLID; break;
|
||||||
case SMESH::Tag_SubMeshOnCompound: res = SMESH::SUBMESH_COMPOUND; break;
|
case SMESH::Tag_SubMeshOnCompound: res = SMESH::SUBMESH_COMPOUND; break;
|
||||||
default:
|
default:
|
||||||
if ( aFTag >= SMESH::Tag_FirstGroup) res = SMESH::GROUP;
|
if ( aFTag >= SMESH::Tag_FirstGroup) res = SMESH::GROUP;
|
||||||
else res = SMESH::SUBMESH;
|
else res = SMESH::SUBMESH;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user