Salome HOME
#18963 Minimize compiler warnings
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_MergeDlg.h
index fed3a1865c3557d6f1ec50ea4e5e0c7f2f8e0b10..5cecfd2f63ff746c7417c1a9d8c933c1e2e9e46c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 
 // OCCT includes
 #include <gp_XYZ.hxx>
+#include <TColStd_MapOfInteger.hxx>
 
 // STL includes
 #include <list>
+#include <vector>
 
 // IDL includes
 #include <SALOMEconfig.h>
 #include CORBA_SERVER_HEADER(SMESH_Mesh)
 
+class LightApp_SelectionMgr;
+class QButtonGroup;
+class QCheckBox;
 class QGroupBox;
 class QLabel;
 class QLineEdit;
+class QListWidget;
 class QPushButton;
 class QRadioButton;
-class QCheckBox;
-class QListWidget;
-class QButtonGroup;
 class SMESHGUI;
+class SMESHGUI_IdPreview;
 class SMESHGUI_SpinBox;
 class SMESH_Actor;
-class SVTK_Selector;
-class LightApp_SelectionMgr;
 class SUIT_SelectionFilter;
-class TColStd_MapOfInteger;
+class SVTK_Selector;
 
 namespace SMESH
 {
@@ -70,45 +72,55 @@ namespace SMESH
 //=================================================================================
 class SMESHGUI_EXPORT SMESHGUI_MergeDlg : public QDialog
 {
-  Q_OBJECT;
+  Q_OBJECT
 
 public:
   SMESHGUI_MergeDlg( SMESHGUI*, int );
   ~SMESHGUI_MergeDlg();
 
+  static QPixmap IconFirst();
+
 private:
   void                      Init();
   void                      enterEvent( QEvent* );              /* mouse enter the QWidget */
   void                      keyPressEvent( QKeyEvent* );
   void                      onEditGroup();
+  bool                      isKeepIDsSelection();
+  bool                      isNewKeepGroup( const char* entry );
 
-  void                      FindGravityCenter( TColStd_MapOfInteger&, 
+  void                      FindGravityCenter( TColStd_MapOfInteger&,
+                                               std::vector<int>& , 
                                                std::list<gp_XYZ>& );
   // add the centers of gravity of ElemsIdMap elements to the GrCentersXYZ list
 
 private:
   typedef QList<SMESH::SMESH_GroupBase_var> GrpList;
 
-  SMESHGUI*                 mySMESHGUI;     /* Current SMESHGUI object */
-  LightApp_SelectionMgr*    mySelectionMgr; /* User shape selection */
-  SVTK_Selector*            mySelector;
+  SMESHGUI*                  mySMESHGUI;     /* Current SMESHGUI object */
+  LightApp_SelectionMgr*     mySelectionMgr; /* User shape selection */
+  SVTK_Selector*             mySelector;
   
-  QWidget*                  myEditCurrentArgument;
+  QWidget*                   myEditCurrentArgument;
+
+  SMESH::SMESH_Mesh_var      myMesh;
+  SMESH::ListOfIDSources_var mySubMeshOrGroups;
+  GrpList                    myGroups;
+  QString                    myEntry;
 
-  SMESH::SMESH_Mesh_var     myMesh;
-  SMESH::SMESH_IDSource_var mySubMeshOrGroup;
-  SMESH_Actor*              myActor;
-  SUIT_SelectionFilter*     myMeshOrSubMeshOrGroupFilter;
+  SMESH_Actor*               myActor;
+  SUIT_SelectionFilter*      myMeshOrSubMeshOrGroupFilter;
+  SUIT_SelectionFilter*      mySubMeshOrGroupFilter;
 
-  SMESH::TIdPreview*        myIdPreview;
+  SMESHGUI_IdPreview*        myIdPreview;
+  QString                    myHelpFileName;
+
+  int                        myAction;
+  bool                       myIsBusy;
+  int                        myTypeId; // manual(1) or automatic(0)
+    
 
-  int                       myAction;
-  bool                      myIsBusy;
-  int                       myTypeId;
 
   // Widgets
-  QGroupBox*                GroupConstructors;
-  QRadioButton*             RadioButton;
 
   QGroupBox*                GroupButtons;
   QPushButton*              buttonOk;
@@ -121,10 +133,13 @@ private:
   QPushButton*              SelectMeshButton;
   QLineEdit*                LineEditMesh;
 
-  QGroupBox*                GroupCoincident;
-  QWidget*                  GroupCoincidentWidget;
-  QLabel*                   TextLabelTolerance;
+  QWidget*                  NodeSpecWidget;
   SMESHGUI_SpinBox*         SpinBoxTolerance;
+  QCheckBox*                SeparateCornersAndMedium;
+  QCheckBox*                AvoidMakingHoles;
+
+  QGroupBox*                GroupCoincident;
+  //QWidget*                  GroupCoincidentWidget;
   QPushButton*              DetectButton;
   QListWidget*              ListCoincident;
   QPushButton*              AddGroupButton;
@@ -141,13 +156,15 @@ private:
   QGroupBox*                GroupExclude;
   QListWidget*              ListExclude;
 
+  QGroupBox*                GroupKeep;
+  QButtonGroup*             KeepFromButGroup;
+  QPushButton*              SelectKeepButton;
+  QPushButton*              AddKeepButton;
+  QPushButton*              RemoveKeepButton;
+  QListWidget*              KeepList;
+
   QGroupBox*                TypeBox;
   QButtonGroup*             GroupType;
-    
-  QString                   myHelpFileName;
-
-  QString                   myEntry;
-  GrpList                   myGroups;
 
 protected slots:
   virtual void              reject();
@@ -158,6 +175,10 @@ protected slots:
   void                      ClickOnHelp();
   void                      updateControls();
   void                      onDetect();
+  void                      onAddKeep();
+  void                      onRemoveKeep();
+  void                      onSelectKeep();
+  void                      onKeepSourceChanged(int);
   void                      onAddGroup();
   void                      onRemoveGroup();
   void                      onSelectGroup();
@@ -171,6 +192,8 @@ protected slots:
   void                      DeactivateActiveDialog();
   void                      ActivateThisDialog();
   void                      onTypeChanged(int);
+  void                      onOpenView();
+  void                      onCloseView();
 };
 
 #endif // SMESHGUI_MergeDlg_H