Salome HOME
refs #569: add warning if the user try to delete all tables
authormzn <mzn@opencascade.com>
Mon, 29 Jun 2015 15:31:58 +0000 (18:31 +0300)
committermzn <mzn@opencascade.com>
Mon, 29 Jun 2015 15:31:58 +0000 (18:31 +0300)
src/HYDROGUI/HYDROGUI_DeleteOp.cxx
src/HYDROGUI/resources/HYDROGUI_msg_en.ts

index 1ef77793f9e786513d5392d6a4cf5074c8eddad8..83dd008aca4a7b9efbeca9d4c1180072be28c747 100644 (file)
 #include "HYDROGUI_UpdateFlags.h"
 
 #include <HYDROData_Object.h>
+#include <HYDROData_Document.h>
 
 #include <LightApp_Application.h>
 
 #include <SUIT_Desktop.h>
 #include <SUIT_MessageBox.h>
 
+#include <QSet>
+
 HYDROGUI_DeleteOp::HYDROGUI_DeleteOp( HYDROGUI_Module* theModule )
 : HYDROGUI_Operation( theModule )
 {
@@ -110,12 +113,32 @@ void HYDROGUI_DeleteOp::startOperation()
     return;
   }
 
+  QString aWarningMsg;
+
   HYDROGUI_DeleteDlg aDeleteDlg( module()->getApp()->desktop() );
   aDeleteDlg.setObjectsToRemove( anObjNames );
   if ( aDeleteDlg.exec() != HYDROGUI_DeleteDlg::Accepted )
   {
     abort();
     return;
+  } else {
+    QStringList aTableNames = 
+      HYDROGUI_Tool::FindExistingObjectsNames( doc(), KIND_STRICKLER_TABLE, false );
+    aTableNames += anObjNames;
+    if ( aTableNames.toSet().size() == anObjNames.size() ) {
+      aWarningMsg = tr("DELETE_LAST_TABLE_WRN");
+    }
+  }
+
+  if ( !aWarningMsg.isEmpty() ) {
+    int anAnswer = SUIT_MessageBox::warning( module()->getApp()->desktop(),
+                                             tr("WARNING"), aWarningMsg,
+                                              QMessageBox::Yes | QMessageBox::No,
+                                              QMessageBox::No );
+    if ( anAnswer != QMessageBox::Yes ) {
+      abort();
+      return;
+    }
   }
 
   startDocOperation();
index e71fabb18c0341ab39f9686bdd9604bed65cca03..4cb49f6fe2f3a9dd70376ad8af7cb033949f84c3 100644 (file)
@@ -508,6 +508,16 @@ First remove objects which are created on their basis.
       <source>DELETE_OBJECT_IS_USED_FOR</source>
       <translation>Object "%1" is used for %2</translation>
     </message>
+    <message>
+      <source>DELETE_LAST_TABLE_WRN</source>
+      <translation>You are about to delete all Strickler tables in the study.
+After that the study will contain only the default Strickler table.
+Do you want to continue?</translation>
+    </message>
+    <message>
+      <source>WARNING</source>
+      <translation>Warning</translation>
+    </message>
   </context>
 
   <context>