X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_MeshDlg.h;h=56e96ea9b3b6429e64eb3f8efa45d87a41cf4a21;hp=34ee3a565c3884f16a30de408ad683a75c87d7d5;hb=HEAD;hpb=0635c9fc80f67d1e5dc0e94ec85f487286a92070 diff --git a/src/SMESHGUI/SMESHGUI_MeshDlg.h b/src/SMESHGUI/SMESHGUI_MeshDlg.h index 34ee3a565..4c91302bf 100644 --- a/src/SMESHGUI/SMESHGUI_MeshDlg.h +++ b/src/SMESHGUI/SMESHGUI_MeshDlg.h @@ -1,24 +1,25 @@ -// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2024 CEA, EDF, 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, or (at your option) any later version. // -// 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_MeshDlg.h // Author : Sergey LITONIN, Open CASCADE S.A.S. @@ -36,12 +37,15 @@ #include #include -class SMESHGUI_MeshTab; -class QTabWidget; +class QAction; +class QCheckBox; class QComboBox; -class QToolButton; +class QListWidget; class QMenu; -class QAction; +class QTabWidget; +class QToolButton; +class QtxToolButton; +class SMESHGUI_MeshTab; /*! * \brief Dialog for mech creation or editing @@ -63,82 +67,109 @@ public: SMESHGUI_MeshDlg( const bool, const bool ); virtual ~SMESHGUI_MeshDlg(); - SMESHGUI_MeshTab* tab( const int ) const; void reset(); - void setCurrentTab( const int ); - void setMaxHypoDim( const int ); + void setTitile( const bool, const bool ); void setHypoSets( const QStringList& ); void setGeomPopupEnabled( const bool ); - void disableTab(const int); + int getActiveObject(); + + SMESHGUI_MeshTab* tab( const int ) const; void enableTab(const int); + void disableTab(const int); + bool isTabEnabled(const int) const; + void setCurrentTab( const int ); + int currentTab() const; + void setMaxHypoDim( const int ); + + void setAvailableMeshType(const QStringList& ); + void setCurrentMeshType( const int ); + int currentMeshType(); + bool toCreateAllGroups(); signals: void hypoSet( const QString& ); void geomSelectionByMesh( bool ); + void selectMeshType( const int, const int ); private slots: void onHypoSetPopup( QAction* ); void onGeomPopup( QAction* ); void onGeomSelectionButton( bool ); + void onChangedMeshType( const int ); -private: + private: QMap myTabs; QTabWidget* myTabWg; QToolButton* myHypoSetButton; QMenu* myGeomPopup; + QComboBox* myMeshType; + QCheckBox* myCreateGroupsCheck; }; /*! - * \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(); void setAvailableHyps( const int, const QStringList& ); - void setExistingHyps( 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 myHyp; - QMap myCreateHyp; - QMap myEditHyp; - - QMap myAvailableHyps; - QMap 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 myAvailableHypTypes; + + QMap myHypCombo; + QMap myCreateHypBtn; + QMap myEditHypBtn; + + QToolButton* myMoreAddHypBtn; + QToolButton* myLessAddHypBtn; + QListWidget* myAddHypList; // 2-nd, etc. additional hyps }; #endif // SMESHGUI_MESHDLG_H