Salome HOME
Fix for IPAL20440 (Qt4 porting: SIGSEGV at Add Quadratic Hexahedron).
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_EditMeshDlg.cxx
index 94c1627fbd6d53e78c3bba54907f80a9a507e749..c0a08f1b5dcf6365ea5122a75fb786b32b4e7e30 100644 (file)
@@ -42,6 +42,7 @@
 #include <SUIT_ResourceMgr.h>
 #include <SUIT_Session.h>
 #include <SUIT_MessageBox.h>
+#include <SUIT_OverrideCursor.h>
 
 #include <LightApp_Application.h>
 #include <LightApp_SelectionMgr.h>
@@ -412,6 +413,7 @@ SMESHGUI_EditMeshDlg::SMESHGUI_EditMeshDlg (SMESHGUI* theModule,
   //ListEdit->setRowMode(QListBox::FixedNumber);
   //ListEdit->setHScrollBarMode(QScrollView::AlwaysOn);
   //ListEdit->setVScrollBarMode(QScrollView::AlwaysOff);
+  ListEdit->setFlow( QListView::LeftToRight );
   ListEdit->setSelectionMode(QListWidget::ExtendedSelection);
 
   AddElemButton = new QPushButton(GroupEdit);
@@ -432,7 +434,7 @@ SMESHGUI_EditMeshDlg::SMESHGUI_EditMeshDlg (SMESHGUI* theModule,
   GroupButtonsLayout->setSpacing(SPACING);
   GroupButtonsLayout->setMargin(MARGIN);
 
-  buttonOk = new QPushButton(tr("SMESH_BUT_OK"), GroupButtons);
+  buttonOk = new QPushButton(tr("SMESH_BUT_APPLY_AND_CLOSE"), GroupButtons);
   buttonOk->setAutoDefault(true);
   buttonOk->setDefault(true);
   buttonApply = new QPushButton(tr("SMESH_BUT_APPLY"), GroupButtons);
@@ -476,7 +478,7 @@ SMESHGUI_EditMeshDlg::~SMESHGUI_EditMeshDlg()
 void SMESHGUI_EditMeshDlg::Init()
 {
   if (myAction == 0) {
-    SpinBoxTolerance->RangeStepAndValidator(0.0, COORD_MAX, 0.1, 5);
+    SpinBoxTolerance->RangeStepAndValidator(0.0, COORD_MAX, 0.00001, 5);
     SpinBoxTolerance->SetValue(1e-05);
   }
 
@@ -580,10 +582,9 @@ bool SMESHGUI_EditMeshDlg::ClickOnApply()
     return false;
 
   try {
+    SUIT_OverrideCursor aWaitCursor;
     SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
 
-    QApplication::setOverrideCursor(Qt::WaitCursor);
-
     SMESH::long_array_var anIds = new SMESH::long_array;
     SMESH::array_of_long_array_var aGroupsOfElements = new SMESH::array_of_long_array;
 
@@ -605,7 +606,6 @@ bool SMESHGUI_EditMeshDlg::ClickOnApply()
     else
       aMeshEditor->MergeElements (aGroupsOfElements.inout());
 
-    QApplication::restoreOverrideCursor();
   } catch(...) {
   }
   
@@ -683,8 +683,9 @@ void SMESHGUI_EditMeshDlg::onEditGroup()
   for (int i = 0; i < ListEdit->count(); i++ )
     aNewIds.append(ListEdit->item(i)->text());
 
-  ListCoincident->currentItem()->setText(aNewIds.join(" "));
-  ListCoincident->currentItem()->setSelected(true);
+  ListCoincident->clearSelection();
+  selItems.first()->setText(aNewIds.join(" "));
+  selItems.first()->setSelected(true);
 }
 
 //=================================================================================
@@ -710,9 +711,9 @@ void SMESHGUI_EditMeshDlg::onDetect()
     return;
 
   try {
+    SUIT_OverrideCursor aWaitCursor;
     SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
 
-    QApplication::setOverrideCursor(Qt::WaitCursor);
     ListCoincident->clear();
     ListEdit->clear();
 
@@ -742,8 +743,7 @@ void SMESHGUI_EditMeshDlg::onDetect()
 
       ListCoincident->addItem(anIDs.join(" "));
     }
-    QApplication::restoreOverrideCursor();
-  } catch(...) {
+   } catch(...) {
   }
 
   ListCoincident->selectAll();
@@ -1067,6 +1067,9 @@ void SMESHGUI_EditMeshDlg::DeactivateActiveDialog()
     mySMESHGUI->ResetState();
     mySMESHGUI->SetActiveDialogBox(0);
   }
+
+  mySelectionMgr->clearSelected();
+  disconnect(mySelectionMgr, 0, this, 0);
 }
 
 //=================================================================================
@@ -1083,6 +1086,7 @@ void SMESHGUI_EditMeshDlg::ActivateThisDialog()
   GroupEdit->setEnabled(true);
   GroupButtons->setEnabled(true);
 
+  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
   mySMESHGUI->SetActiveDialogBox((QDialog*)this);
   SelectionIntoArgument();
 }