Salome HOME
Item Delete in pop-up of link on hypotheses or algorithm doesn't work.
authordmv <dmv@opencascade.com>
Wed, 22 Oct 2008 06:43:37 +0000 (06:43 +0000)
committerdmv <dmv@opencascade.com>
Wed, 22 Oct 2008 06:43:37 +0000 (06:43 +0000)
src/SMESHGUI/SMESHGUI.cxx
src/SMESHGUI/SMESH_msg_en.po

index 98eefd8cc88a5371acf62e1de0a42a3639a15165..48a2e40975d990587b6a451d7675ff9a82edd74e 100644 (file)
@@ -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)
index 9330b47a0b3227c03d6f341631b3af2150a2f4ae..62bbe4a538bcd38e91f424da8beb15ea91c54d5c 100644 (file)
@@ -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"