X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI.cxx;h=5fb5edaa2352645f3338aef6350b438097e3b6e8;hp=6c7cfffcbadbd7af068b335e66100c4d58ee2845;hb=04b5590d9c4ec2177ddc836cf2d4756ce37631d5;hpb=ecf80f795d318653fe3fa820986b5bf0000e3312 diff --git a/src/SMESHGUI/SMESHGUI.cxx b/src/SMESHGUI/SMESHGUI.cxx index 6c7cfffcb..5fb5edaa2 100644 --- a/src/SMESHGUI/SMESHGUI.cxx +++ b/src/SMESHGUI/SMESHGUI.cxx @@ -896,18 +896,28 @@ _PTR(AttributeIOR) anIOR; int objectCount = 0; + QString aNameList; QString aParentComponent = QString::null; + Handle(SALOME_InteractiveObject) anIO; for( SALOME_ListIteratorOfListIO anIt( selected ); anIt.More(); anIt.Next() ) { - _PTR(SObject) aSO = aStudy->FindObjectID(anIt.Value()->getEntry()); + anIO = anIt.Value(); + QString cur = anIO->getComponentDataType(); + _PTR(SObject) aSO = aStudy->FindObjectID(anIO->getEntry()); if (aSO) { - // check if object is not reference - _PTR(SObject) refobj; - if ( !aSO->ReferencedObject( refobj ) ) - objectCount++; + // check if object is reference + _PTR(SObject) aRefSObj; + aNameList.append("\n - "); + if ( aSO->ReferencedObject( aRefSObj ) ) { + QString aRefName = QString::fromStdString ( aRefSObj->GetName() ); + aNameList.append( aRefName ); + cur = QString::fromStdString ( aRefSObj->GetFatherComponent()->ComponentDataType() ); + } + else + aNameList.append(anIO->getName()); + objectCount++; } - QString cur = anIt.Value()->getComponentDataType(); if( aParentComponent.isNull() ) aParentComponent = cur; else if( !aParentComponent.isEmpty() && aParentComponent!=cur ) @@ -927,7 +937,7 @@ if (SUIT_MessageBox::warning (SMESHGUI::desktop(), QObject::tr("SMESH_WRN_WARNING"), - QObject::tr("SMESH_REALLY_DELETE"), + QObject::tr("SMESH_REALLY_DELETE").arg( objectCount ).arg( aNameList ), SUIT_MessageBox::Yes | SUIT_MessageBox::No, SUIT_MessageBox::Yes) != SUIT_MessageBox::Yes) return; @@ -950,10 +960,10 @@ if ( engineIOR() == anIOR->Value().c_str() ) continue; } - - _PTR(SObject) refobj; - if ( aSO && aSO->ReferencedObject( refobj ) ) - continue; // skip references + //Check the referenced object + _PTR(SObject) aRefSObject; + if ( aSO && aSO->ReferencedObject( aRefSObject ) ) + aSO = aRefSObject; // Delete main Object instead of reference // put the whole hierarchy of sub-objects of the selected SO into a list and // then treat them all starting from the deepest objects (at list back) @@ -2918,6 +2928,8 @@ void SMESHGUI::initialize( CAM_Application* app ) // popup for object browser createPopupItem( 150, OB, mesh, "&& selcount=1 && isImported" ); // FILE INFORMATION + createPopupItem( 703, OB, mesh, "&& isComputable"); // CREATE_SUBMESH + createPopupItem( 703, OB, subMesh, "&& isComputable" ); // CREATE_SUBMESH createPopupItem( 704, OB, mesh, "&& isComputable"); // EDIT_MESHSUBMESH createPopupItem( 704, OB, subMesh, "&& isComputable" ); // EDIT_MESHSUBMESH createPopupItem( 803, OB, group ); // EDIT_GROUP