From: dmv Date: Wed, 22 Oct 2008 06:43:37 +0000 (+0000) Subject: Item Delete in pop-up of link on hypotheses or algorithm doesn't work. X-Git-Tag: RELIQUAT_4x_25102008~5 X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=commitdiff_plain;h=8a9b59c3e6d391456fefeaae15bc4400682434b8;hp=6d02e185570d3b184925c8745208546d55583202 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 98eefd8cc..48a2e4097 100644 --- a/src/SMESHGUI/SMESHGUI.cxx +++ b/src/SMESHGUI/SMESHGUI.cxx @@ -921,18 +921,28 @@ using namespace std; _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 = anIt.Value()->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 = aRefSObj->GetName(); + aNameList.append( aRefName ); + cur = 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 ) @@ -953,7 +963,7 @@ using namespace std; if (SUIT_MessageBox::warn2 (SMESHGUI::desktop(), QObject::tr("SMESH_WRN_WARNING"), - QObject::tr("SMESH_REALLY_DELETE"), + QObject::tr("SMESH_REALLY_DELETE").arg( objectCount ).arg( aNameList ), QObject::tr("SMESH_BUT_YES"), QObject::tr("SMESH_BUT_NO"), 1, 0, 0) != 1) return; @@ -975,10 +985,10 @@ using namespace std; if ( !strcmp( (char*)anIOR->Value().c_str(), engineIOR().latin1() ) ) continue; } - + //Check the referenced object _PTR(SObject) refobj; if ( aSO && aSO->ReferencedObject( refobj ) ) - continue; // skip references + aSO = refobj; // 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.po b/src/SMESHGUI/SMESH_msg_en.po index 9330b47a0..62bbe4a53 100644 --- a/src/SMESHGUI/SMESH_msg_en.po +++ b/src/SMESHGUI/SMESH_msg_en.po @@ -142,7 +142,7 @@ msgstr "Operation failed" #: SMESHGUI.cxx:465 msgid "SMESH_REALLY_DELETE" -msgstr "Do you really want to delete object(s) ?" +msgstr "Do you really want to delete this %1 object(s)? : %2" #Hypothesis or Algorithm not exists msgid "SMESH_WRN_HYPOTHESIS_NOTEXIST"