From: dmv Date: Wed, 22 Oct 2008 06:42:51 +0000 (+0000) Subject: Item Delete in pop-up of link on hypotheses or algorithm doesn't work. X-Git-Tag: V5_1_0a3~7 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=663cdc02344a30a97abd57a5206996efa33a2d77;p=modules%2Fsmesh.git Item Delete in pop-up of link on hypotheses or algorithm doesn't work. --- diff --git a/src/SMESHGUI/SMESHGUI.cxx b/src/SMESHGUI/SMESHGUI.cxx index 6c7cfffcb..355f1a9b9 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) diff --git a/src/SMESHGUI/SMESH_msg_en.ts b/src/SMESHGUI/SMESH_msg_en.ts index f1ce25d7c..e681b0894 100644 --- a/src/SMESHGUI/SMESH_msg_en.ts +++ b/src/SMESHGUI/SMESH_msg_en.ts @@ -1611,7 +1611,7 @@ Are you sure want to export to MED 2.1 ? SMESH_REALLY_DELETE - Do you really want to delete object(s) ? + Do you really want to delete this %1 object(s)? : %2 SMESH_REMOVE