Salome HOME
IMP 0016175: EDF455: Save GUIState don't redisplay the objects.
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_EditMeshDlg.cxx
index 1024fdfae6cfe53f4b3595dc3d052b2b07186fe9..58079ec23a54cb9a9612842a1eaefe5812b4f385 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>
@@ -86,6 +87,7 @@
 #include <QVBoxLayout>
 #include <QGridLayout>
 #include <QKeyEvent>
+#include <QButtonGroup>
 
 #define SPACING 6
 #define MARGIN  11
@@ -107,7 +109,7 @@ namespace SMESH
     bool myIsPointsLabeled;
     vtkActor2D* myPointLabels;
 
-    vector<int> myIDs;
+    std::vector<int> myIDs;
 
   public:
     TIdPreview(SVTK_ViewWindow* theViewWindow):
@@ -188,7 +190,7 @@ namespace SMESH
     }
 
     void SetElemsData( TColStd_MapOfInteger & theElemsIdMap, 
-                      list<gp_XYZ> & aGrCentersXYZ )
+                      std::list<gp_XYZ> & aGrCentersXYZ )
     {
       vtkPoints* aPoints = vtkPoints::New();
       aPoints->SetNumberOfPoints(theElemsIdMap.Extent());
@@ -200,7 +202,7 @@ namespace SMESH
       }
 
       gp_XYZ aXYZ;
-      list<gp_XYZ>::iterator coordIt = aGrCentersXYZ.begin();
+      std::list<gp_XYZ>::iterator coordIt = aGrCentersXYZ.begin();
       for( int i = 0; coordIt != aGrCentersXYZ.end(); coordIt++, i++ ) {
        aXYZ = *coordIt;
        aPoints->SetPoint( i, aXYZ.X(), aXYZ.Y(), aXYZ.Z() );
@@ -329,6 +331,7 @@ SMESHGUI_EditMeshDlg::SMESHGUI_EditMeshDlg (SMESHGUI* theModule,
                                    tr("SMESH_MERGE_NODES"), 
                                    this);
 
+  QButtonGroup* ButtonGroup = new QButtonGroup(this);
   QHBoxLayout* GroupConstructorsLayout = new QHBoxLayout(GroupConstructors);
   GroupConstructorsLayout->setSpacing(SPACING);
   GroupConstructorsLayout->setMargin(MARGIN);
@@ -337,7 +340,7 @@ SMESHGUI_EditMeshDlg::SMESHGUI_EditMeshDlg (SMESHGUI* theModule,
   RadioButton->setIcon(myAction == 1 ? IconMergeElems : IconMergeNodes);
   RadioButton->setChecked(true);
   GroupConstructorsLayout->addWidget(RadioButton);
-  GroupConstructorsLayout->addStretch();
+  ButtonGroup->addButton(RadioButton, 0);
 
   /***************************************************************/
   // Controls for mesh defining
@@ -410,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);
@@ -430,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);
@@ -474,7 +478,7 @@ SMESHGUI_EditMeshDlg::~SMESHGUI_EditMeshDlg()
 void SMESHGUI_EditMeshDlg::Init()
 {
   if (myAction == 0) {
-    SpinBoxTolerance->RangeStepAndValidator(0.0, COORD_MAX, 0.1, 3);
+    SpinBoxTolerance->RangeStepAndValidator(0.0, COORD_MAX, 0.00001, 5);
     SpinBoxTolerance->SetValue(1e-05);
   }
 
@@ -509,11 +513,11 @@ void SMESHGUI_EditMeshDlg::Init()
 
   connect(SelectMeshButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
   connect(DetectButton, SIGNAL (clicked()), this, SLOT(onDetect()));
-  connect(ListCoincident, SIGNAL (selectionChanged()), this, SLOT(onSelectGroup()));
+  connect(ListCoincident, SIGNAL (itemSelectionChanged()), this, SLOT(onSelectGroup()));
   connect(AddGroupButton, SIGNAL (clicked()), this, SLOT(onAddGroup()));
   connect(RemoveGroupButton, SIGNAL (clicked()), this, SLOT(onRemoveGroup()));
   connect(SelectAllCB, SIGNAL(toggled(bool)), this, SLOT(onSelectAll(bool)));
-  connect(ListEdit, SIGNAL (selectionChanged()), this, SLOT(onSelectElementFromGroup()));
+  connect(ListEdit, SIGNAL (itemSelectionChanged()), this, SLOT(onSelectElementFromGroup()));
   connect(AddElemButton, SIGNAL (clicked()), this, SLOT(onAddElement()));
   connect(RemoveElemButton, SIGNAL (clicked()), this, SLOT(onRemoveElement()));
   connect(SetFirstButton, SIGNAL( clicked() ), this, SLOT( onSetFirst() ) );
@@ -578,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;
 
@@ -603,7 +606,6 @@ bool SMESHGUI_EditMeshDlg::ClickOnApply()
     else
       aMeshEditor->MergeElements (aGroupsOfElements.inout());
 
-    QApplication::restoreOverrideCursor();
   } catch(...) {
   }
   
@@ -681,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);
 }
 
 //=================================================================================
@@ -708,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();
 
@@ -740,8 +743,7 @@ void SMESHGUI_EditMeshDlg::onDetect()
 
       ListCoincident->addItem(anIDs.join(" "));
     }
-    QApplication::restoreOverrideCursor();
-  } catch(...) {
+   } catch(...) {
   }
 
   ListCoincident->selectAll();
@@ -788,7 +790,7 @@ void SMESHGUI_EditMeshDlg::onSelectGroup()
     myIdPreview->SetPointsLabeled(!anIndices.IsEmpty(), myActor->GetVisibility());
   }
   else {
-    list< gp_XYZ > aGrCentersXYZ;
+    std::list< gp_XYZ > aGrCentersXYZ;
     FindGravityCenter(anIndices, aGrCentersXYZ);
     myIdPreview->SetElemsData( anIndices, aGrCentersXYZ);
     myIdPreview->SetPointsLabeled(!anIndices.IsEmpty(), myActor->GetVisibility());
@@ -837,7 +839,7 @@ void SMESHGUI_EditMeshDlg::onSelectElementFromGroup()
     myIdPreview->SetPointsLabeled(!anIndices.IsEmpty(), myActor->GetVisibility());
   }
   else {
-    list< gp_XYZ > aGrCentersXYZ;
+    std::list< gp_XYZ > aGrCentersXYZ;
     FindGravityCenter(anIndices, aGrCentersXYZ);
     myIdPreview->SetElemsData(anIndices, aGrCentersXYZ);
     myIdPreview->SetPointsLabeled(!anIndices.IsEmpty(), myActor->GetVisibility());