Salome HOME
Fix regressions
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_MeshDlg.h
index 2d0cdde7459bae9bf21f6e3759b457712977f4cb..dc846e183c08189ab03f237764cdf68ac9e4b8e2 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2016  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
 #include <QMap>
 
 class SMESHGUI_MeshTab;
-class QTabWidget;
+class QAction;
 class QComboBox;
-class QToolButton;
+class QListWidget;
 class QMenu;
-class QAction;
+class QTabWidget;
+class QToolButton;
+class QtxToolButton;
 
 /*!
  * \brief Dialog for mech creation or editing
@@ -77,6 +79,7 @@ public:
   void                         setAvailableMeshType(const QStringList& );
   int                          currentMeshType();
   void                         setCurrentMeshType( const int );
+  void                         setTitile( const bool, const bool );
 
 signals:
   void                         hypoSet( const QString& );
@@ -89,7 +92,7 @@ private slots:
   void                         onGeomSelectionButton( bool );
   void                         onChangedMeshType( const int );
 
-private:
+ private:
   QMap<int, SMESHGUI_MeshTab*> myTabs;
   QTabWidget*                  myTabWg;
   QToolButton*                 myHypoSetButton;
@@ -98,23 +101,26 @@ private:
 };
 
 /*!
- * \brief Tab for tab widget containing controls for definition of 
+ * \brief Tab for tab widget containing controls for definition of
  * algorithms and hypotheses
-*/ 
+ */
 
 class SMESHGUI_EXPORT SMESHGUI_MeshTab : public QFrame
 {
   Q_OBJECT
-      
-public:      
+
+    public:
   /*! To differ main algorithms, hypotheses and additional ones*/
   enum HypType
-  { 
+  {
     Algo = 0, //!< algorithms
     MainHyp,  //!< main hypothesis
-    AddHyp    //!< additional hypothesis
-  };            
-      
+    AddHyp,    //!< additional hypothesis
+    MoreAddHyp //! since several additional hypothesis are possible, the 2-nd, 3-d etc
+    // additional hypotheses are coded as being of HypType (AddHyp + 1), (AddHyp + 2) etc.
+    // Nb of HypType's after MainHyp is returned by SMESHGUI_MeshTab::nbAddHypTypes()
+  };
+
 public:      
   SMESHGUI_MeshTab( QWidget* );
   virtual ~SMESHGUI_MeshTab();
@@ -122,31 +128,41 @@ public:
   void                         setAvailableHyps( const int, const QStringList& );
   void                         setExistingHyps( const int, const QStringList&, bool=false);
   void                         addHyp( const int, const QString& );
-  void                         renameHyp( const int, const int, const QString& );
+  //void                         renameHyp( const int, const int, const QString& );
   void                         setCurrentHyp( const int, const int );
   int                          currentHyp( const int ) const;
+  int                          nbAddHypTypes() const;
   void                         reset();
 
 signals:  
   void                         createHyp( const int, const int );
-  //!< Emited when "Create hypothesis" button clicked
+  //!< Emitted when "Create hypothesis" button clicked
   void                         editHyp( const int, const int );
-  //!< Emited when "Edit hypothesis" button clicked
+  //!< Emitted when "Edit hypothesis" button clicked
   void                         selectAlgo( const int );
-  //!< Emited when an algorithm is selected
+  //!< Emitted when an algorithm is selected
   
 private slots:  
   void                         onCreateHyp();  
   void                         onEditHyp();
   void                         onHyp( int );
-  
-private:  
-  QMap<int, QComboBox*>        myHyp;
-  QMap<int, QToolButton*>      myCreateHyp;
-  QMap<int, QToolButton*>      myEditHyp;
-  
-  QMap<int, QStringList>       myAvailableHyps;
-  QMap<int, QStringList>       myExistingHyps;
+  void                         onMoreAddHyp();
+  void                         onLessAddHyp();
+
+private:
+
+  void                         addItem( const QString& txt, const int type, const int index, const bool isGroup=false );
+  int                          getCurrentIndex( const int type, const bool curByType=false) const;
+
+  QMap<int, QStringList>       myAvailableHypTypes;
+
+  QMap<int, QtxToolButton*>    myHypCombo;
+  QMap<int, QToolButton*>      myCreateHypBtn;
+  QMap<int, QToolButton*>      myEditHypBtn;
+
+  QToolButton*                 myMoreAddHypBtn;
+  QToolButton*                 myLessAddHypBtn;
+  QListWidget*                 myAddHypList; // 2-nd, etc. additional hyps
 };
 
 #endif // SMESHGUI_MESHDLG_H