From 8a9b59c3e6d391456fefeaae15bc4400682434b8 Mon Sep 17 00:00:00 2001 From: dmv Date: Wed, 22 Oct 2008 06:43:37 +0000 Subject: [PATCH] Item Delete in pop-up of link on hypotheses or algorithm doesn't work. --- src/SMESHGUI/SMESHGUI.cxx | 28 +++++++++++++++++++--------- src/SMESHGUI/SMESH_msg_en.po | 2 +- 2 files changed, 20 insertions(+), 10 deletions(-) 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" -- 2.39.2