Salome HOME
Fix for "0023302: [EDF 12800] Ergonomics of mesh group export operation" issue
authorana <ana@opencascade.com>
Wed, 10 Aug 2016 14:36:26 +0000 (17:36 +0300)
committerana <ana@opencascade.com>
Wed, 10 Aug 2016 14:36:26 +0000 (17:36 +0300)
resources/SalomeApp.xml.in
src/SMESHGUI/SMESHGUI.cxx
src/SMESHGUI/SMESH_msg_en.ts

index 5aeebc3490e6977a2ba9dc99f1384787a6115e08..4afaabbffc7e01e66bd8862d942c44082225ac4a 100644 (file)
@@ -85,6 +85,7 @@
     <parameter name="display_entity"               value="true" />
     <parameter name="display_mode"                 value="1"    />
     <parameter name="auto_groups"                  value="false"/>
+    <parameter name="show_warning"                 value="true"/>
     <parameter name="show_result_notification"     value="2"/>
     <parameter name="mesh_elem_info"               value="1"/>
     <parameter name="elem_info_grp_details"        value="false"/>
index 6aff7a098e72518fe77f222f19df7c02e812077d..701fc912788e6222945be80026c75f8f859af560 100644 (file)
 #include <QTextStream>
 #include <QListView>
 #include <QTreeView>
+#include <QCheckBox>
+#include <QLayout>
+#include <QDialogButtonBox>
 
 // BOOST includes
 #include <boost/shared_ptr.hpp>
@@ -444,7 +447,10 @@ namespace
     const bool multiMeshSupported = ( isMED || isCGNS ); // file can hold several meshes
     if ( selected.Extent() == 0 || ( selected.Extent() > 1 && !multiMeshSupported ))
       return;
-
+    SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
+    bool aCheckWarn = true;
+    if ( resMgr )
+      aCheckWarn = resMgr->booleanValue( "SMESH", "show_warning", false );
     // get mesh object from selection and check duplication of their names
     bool hasDuplicatedMeshNames = false;
     QList< QPair< SMESH::SMESH_IDSource_var, QString > >           aMeshList;
@@ -461,6 +467,30 @@ namespace
                                   QObject::tr( "SMESH_BAD_MESH_SELECTION" ));
         return;
       }
+      SMESH::SMESH_GroupBase_var aGroup   = SMESH::SMESH_GroupBase::_narrow( aMeshItem );
+      if ( aCheckWarn && !aGroup->_is_nil() ) {
+        QMessageBox msgBox(SUIT_MessageBox::Warning,QObject::tr("SMESH_WRN_WARNING"),
+                            QObject::tr("SMESH_EXPORT_ONLY_GPOUP"),QMessageBox::StandardButton::NoButton, SMESHGUI::desktop());
+        QCheckBox dontShowCheckBox(QObject::tr("SMESH_WRN_SHOW_DLG_CHECKBOX"));
+        msgBox.addButton(QMessageBox::Ok);
+        msgBox.addButton(QMessageBox::Cancel);
+        msgBox.setDefaultButton(QMessageBox::Cancel);
+        QGridLayout* lt = qobject_cast<QGridLayout*>(msgBox.layout());
+        QDialogButtonBox* btnbox = msgBox.findChild<QDialogButtonBox*>();
+        lt->addWidget(&dontShowCheckBox, lt->rowCount(), lt->columnCount()-1, lt->rowCount(), lt->columnCount());
+        lt->addWidget(btnbox, lt->rowCount(), 0, lt->rowCount(), lt->columnCount());
+        if(msgBox.exec() == QMessageBox::Ok)
+        {
+            if(dontShowCheckBox.checkState() == Qt::Checked)
+            {
+              if ( resMgr )
+                resMgr->setValue( "SMESH", "show_warning", false);
+            }
+            aCheckWarn = false;
+        }
+        else
+          return;
+      }
 
       QString aMeshName = anIObject->getName();
 
@@ -615,7 +645,6 @@ namespace
     // Init the parameters with the default values
     bool aIsASCII_STL   = true;
     bool toCreateGroups = false;
-    SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
     if ( resMgr )
       toCreateGroups = resMgr->booleanValue( "SMESH", "auto_groups", false );
     bool toOverwrite  = true;
@@ -5008,6 +5037,7 @@ void SMESHGUI::createPreferences()
   int exportgroup = addPreference( tr( "PREF_GROUP_EXPORT" ), genTab );
   setPreferenceProperty( exportgroup, "columns", 2 );
   addPreference( tr( "PREF_AUTO_GROUPS" ), exportgroup, LightApp_Preferences::Bool, "SMESH", "auto_groups" );
+  addPreference( tr( "PREF_SHOW_WARN" ), exportgroup, LightApp_Preferences::Bool, "SMESH", "show_warning" );
   //addPreference( tr( "PREF_RENUMBER" ), exportgroup, LightApp_Preferences::Bool, "SMESH", "renumbering" );
 
   int computeGroup = addPreference( tr( "PREF_GROUP_COMPUTE" ), genTab );
index f6ab2b98adcde01a533d11f578a4b11b85ee6ae4..648dcbc200ac95c91fc02aab5db0c99f393da553 100644 (file)
@@ -1726,6 +1726,11 @@ Do you want to continue ?</translation>
         <source>SMESH_EXPORT_MED_DUPLICATED_MESH_NAMES</source>
         <translation>There are some mesh objects with the same names in the selection.
 The result file may be incorrect.
+Do you want to continue ?</translation>
+    </message>
+    <message>
+        <source>SMESH_EXPORT_ONLY_GPOUP</source>
+        <translation>You are going export the group without it's mesh.
 Do you want to continue ?</translation>
     </message>
     <message>
@@ -2881,6 +2886,10 @@ Use Display Entity menu command to show them.
         <source>SMESH_WRN_WARNING</source>
         <translation>Warning</translation>
     </message>
+    <message>
+        <source>SMESH_WRN_SHOW_DLG_CHECKBOX</source>
+        <translation>Don't show this warning anymore.</translation>
+    </message>
     <message>
         <source>SMESH_X</source>
         <translation>X</translation>
@@ -4394,6 +4403,10 @@ Please, create VTK viewer and try again</translation>
         <source>PREF_AUTO_GROUPS</source>
         <translation>Automatically create groups for MED export</translation>
     </message>
+    <message>
+        <source>PREF_SHOW_WARN</source>
+        <translation>Show warning when exporting group</translation>
+    </message>
     <message>
         <source>PREF_GROUP_SEGMENT_LENGTH</source>
         <translation>Automatic parameters</translation>