Salome HOME
Merge from V6_main 28/02/2013
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_FilterDlg.h
index ed1c95e9d921d3eb9f90632c1c29f9f8c5eb487b..8081aec6994a7fc7434a3bc348862eb79a556db0 100755 (executable)
@@ -1,24 +1,25 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012  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
+// Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 //
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
 //
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
 //
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 // SMESH SMESHGUI : GUI for SMESH component
 // File   : SMESHGUI_FilterDlg.h
 // Author : Sergey LITONIN, Open CASCADE S.A.S.
@@ -71,6 +72,8 @@ class SMESHGUI_EXPORT SMESHGUI_FilterTable : public QWidget
 
   class Table;
   class ComboItem;
+  class IntSpinItem;
+  class DoubleSpinItem;
   class CheckItem;
   class AdditionalWidget;
   class ComboDelegate;
@@ -123,12 +126,12 @@ public:
                                           const int = -1 );
 
   void                      SetID( const int,
-                                  const QString&,
-                                  const int = -1 ); 
+                                   const QString&,
+                                   const int = -1 ); 
   
   bool                      GetID( const int,
-                                  QString&,
-                                  const int = -1 );
+                                   QString&,
+                                   const int = -1 );
 
   void                      Update();
 
@@ -167,6 +170,7 @@ private:
   void                      updateBtnState();
   void                      removeAdditionalWidget( QTableWidget*, const int );
   void                      updateAdditionalWidget();
+  const char*               getPrecision( const int );
 
   const QMap<int, QString>& getSupportedTypes() const;
 
@@ -211,31 +215,36 @@ class SMESHGUI_FilterDlg : public QDialog
   enum { Mesh, Selection, Dialog, None };
 
   // Buttons
-  enum { BTN_OK, BTN_Cancel, BTN_Apply, BTN_Close, BTN_Help };
+  enum { BTN_OK, BTN_Apply, BTN_Close, BTN_Help };
 
 public:
   SMESHGUI_FilterDlg( SMESHGUI*, const QList<int>& );
   SMESHGUI_FilterDlg( SMESHGUI*, const int );
   virtual ~SMESHGUI_FilterDlg();
 
-  void                      Init( const QList<int>& );
-  void                      Init( const int );
+  void                      Init( const QList<int>&, const bool setInViewer=true );
+  void                      Init( const int, const bool setInViewer=true );
 
   void                      SetSelection();
   void                      SetMesh (SMESH::SMESH_Mesh_var);
-  void                      SetSourceWg( QWidget* );
+  void                      SetSourceWg( QWidget*, const bool initOnApply = true );
 
   static SMESH::Filter::Criterion createCriterion();
 
+  SMESH::Filter_var         GetFilter() const;
+  void                      SetFilter(SMESH::Filter_var filter, int type);
+
 signals:
 
   void                      Accepted();
 
+protected slots:
+  virtual void              reject();
+
 private slots:
 
   void                      onOk();
   bool                      onApply();
-  void                      onClose();
   void                      onHelp();
   void                      onDeactivate();
   void                      onSelectionDone();
@@ -246,7 +255,6 @@ private:
 
   void                      construct( const QList<int>& ); 
 
-  void                      closeEvent( QCloseEvent* );
   void                      enterEvent( QEvent* );
   void                      keyPressEvent( QKeyEvent* );
 
@@ -285,6 +293,7 @@ private:
   LightApp_SelectionMgr*    mySelectionMgr;
   SVTK_Selector*            mySelector;
   SMESH::SMESH_Mesh_var     myMesh;
+  bool                      myInitSourceWgOnApply;
   QWidget*                  mySourceWg;
 
   SALOME_DataMapOfIOMapOfInteger myIObjects;