X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_SewingDlg.h;h=ecc0f5200f31b45d2235f912f3d833f1f4659451;hp=31bac24fd5f3e47db379d81703a806bd5e6f92f0;hb=e85e13ee2a8e2484050471ff8e4dea298abe481a;hpb=c63ee099ad2b149bd70136839c973e8910137bc5 diff --git a/src/SMESHGUI/SMESHGUI_SewingDlg.h b/src/SMESHGUI/SMESHGUI_SewingDlg.h index 31bac24fd..ecc0f5200 100644 --- a/src/SMESHGUI/SMESHGUI_SewingDlg.h +++ b/src/SMESHGUI/SMESHGUI_SewingDlg.h @@ -1,40 +1,45 @@ -// SMESH SMESHGUI : GUI for SMESH component +// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 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 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 -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// 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, 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. // +// 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 // -// File : SMESHGUI_SewingDlg.h -// Author : Michael ZORIN -// Module : SMESH -// $Header: -#ifndef DIALOGBOX_SEWING_H -#define DIALOGBOX_SEWING_H +// SMESH SMESHGUI : GUI for SMESH component +// File : SMESHGUI_SewingDlg.h +// Author : Michael ZORIN, Open CASCADE S.A.S. +// +#ifndef SMESHGUI_SEWINGDLG_H +#define SMESHGUI_SEWINGDLG_H -#include "LightApp_SelectionMgr.h" +// SMESH includes +#include "SMESH_SMESHGUI.hxx" -// QT Includes -#include +// Qt includes +#include + +// IDL includes +#include +#include CORBA_SERVER_HEADER(SMESH_Mesh) +#include CORBA_SERVER_HEADER(SMESH_MeshEditor) + +#include -class QGridLayout; class QButtonGroup; class QGroupBox; class QLabel; @@ -44,102 +49,150 @@ class QRadioButton; class QCheckBox; class SMESHGUI; class SMESH_Actor; -class SVTK_ViewWindow; class SVTK_Selector; - -// IDL Headers -#include -#include CORBA_SERVER_HEADER(SMESH_Mesh) - +class LightApp_SelectionMgr; +class SMESHGUI_SpinBox; +class SalomeApp_IntSpinBox; +class QListWidget; +class QListWidgetItem; //================================================================================= // class : SMESHGUI_SewingDlg // purpose : //================================================================================= -class SMESHGUI_SewingDlg : public QDialog +class SMESHGUI_EXPORT SMESHGUI_SewingDlg : public QDialog { - Q_OBJECT + Q_OBJECT public: - SMESHGUI_SewingDlg( SMESHGUI*, - const char* name = 0, - bool modal = FALSE, - WFlags fl = 0); - ~SMESHGUI_SewingDlg(); + SMESHGUI_SewingDlg( SMESHGUI* ); + ~SMESHGUI_SewingDlg(); private: - void Init() ; - void closeEvent( QCloseEvent* e ) ; - void enterEvent ( QEvent * ); /* mouse enter the QWidget */ - void hideEvent ( QHideEvent * ); /* ESC key */ - int GetConstructorId(); - bool IsValid(); - - SMESHGUI* mySMESHGUI; /* Current SMESHGUI object */ - LightApp_SelectionMgr* mySelectionMgr; /* User shape selection */ - int myOk1, myOk2, myOk3, myOk4, myOk5, myOk6; - QLineEdit* myEditCurrentArgument; /* Current LineEdit */ - SVTK_Selector* mySelector; - - bool myBusy; - SMESH::SMESH_Mesh_var myMesh; - SMESH_Actor* myActor; - - QButtonGroup* GroupConstructors; - QRadioButton* RadioButton1; - QRadioButton* RadioButton2; - QRadioButton* RadioButton3; - QRadioButton* RadioButton4; - QGroupBox* GroupButtons; - QPushButton* buttonOk; - QPushButton* buttonCancel; - QPushButton* buttonApply; - QPushButton* buttonHelp; - QGroupBox* GroupArguments; - QGroupBox* SubGroup1; - QGroupBox* SubGroup2; - QLabel* TextLabel1; - QLabel* TextLabel2; - QLabel* TextLabel3; - QLabel* TextLabel4; - QLabel* TextLabel5; - QLabel* TextLabel6; - QPushButton* SelectButton1; - QPushButton* SelectButton2; - QPushButton* SelectButton3; - QPushButton* SelectButton4; - QPushButton* SelectButton5; - QPushButton* SelectButton6; - QLineEdit* LineEdit1; - QLineEdit* LineEdit2; - QLineEdit* LineEdit3; - QLineEdit* LineEdit4; - QLineEdit* LineEdit5; - QLineEdit* LineEdit6; - QCheckBox* CheckBoxMerge; - QCheckBox* CheckBoxPolygons; - QCheckBox* CheckBoxPolyedrs; - - QString myHelpFileName; - -private slots: - - void ConstructorsClicked(int constructorId); - void ClickOnOk(); - void ClickOnCancel(); - bool ClickOnApply(); - void ClickOnHelp(); - void SetEditCurrentArgument() ; - void SelectionIntoArgument(bool isSelectionChanged = true) ; - void DeactivateActiveDialog() ; - void ActivateThisDialog() ; - void onTextChange(const QString&); - -protected: - QGridLayout* SMESHGUI_SewingDlgLayout; - QGridLayout* GroupConstructorsLayout; - QGridLayout* GroupButtonsLayout; - QGridLayout* GroupArgumentsLayout; + void Init(); + void enterEvent( QEvent* ); /* mouse enter the QWidget */ + void keyPressEvent( QKeyEvent* ); + int GetConstructorId(); + bool IsValid(); + void UpdateButtons(); + + SMESHGUI* mySMESHGUI; /* Current SMESHGUI object */ + LightApp_SelectionMgr* mySelectionMgr; /* User shape selection */ + int myOk1, myOk2, myOk3, myOk4, myOk5, myOk6; + QLineEdit* myEditCurrentArgument; /* Current LineEdit */ + SVTK_Selector* mySelector; + + bool myBusy; + SMESH::SMESH_Mesh_var myMesh; + SMESH_Actor* myActor; + + QGroupBox* ConstructorsBox; + QButtonGroup* GroupConstructors; + QRadioButton* RadioButton1; + QRadioButton* RadioButton2; + QRadioButton* RadioButton3; + QRadioButton* RadioButton4; + QGroupBox* GroupButtons; + QPushButton* buttonOk; + QPushButton* buttonCancel; + QPushButton* buttonApply; + QPushButton* buttonHelp; + QGroupBox* GroupArguments; + QGroupBox* SubGroup1; + QGroupBox* SubGroup2; + QLabel* TextLabel1; + QLabel* TextLabel2; + QLabel* TextLabel3; + QLabel* TextLabel4; + QLabel* TextLabel5; + QLabel* TextLabel6; + QPushButton* SelectButton1; + QPushButton* SelectButton2; + QPushButton* SelectButton3; + QPushButton* SelectButton4; + QPushButton* SelectButton5; + QPushButton* SelectButton6; + QLineEdit* LineEdit1; + QLineEdit* LineEdit2; + QLineEdit* LineEdit3; + QLineEdit* LineEdit4; + QLineEdit* LineEdit5; + QLineEdit* LineEdit6; + QCheckBox* CheckBoxMerge; + QCheckBox* CheckBoxPolygons; + QCheckBox* CheckBoxPolyedrs; + + QWidget* SewFreeBordersWidget; + QGroupBox* ModeGroup; + QButtonGroup* ModeButGrp; + //QPushButton* SelectMeshButton; + QLineEdit* LineEditMesh; + + SMESHGUI_SpinBox* SpinBoxTolerance; + QCheckBox* AutoSewCheck; + + QWidget* GroupCoincidentWidget; + QListWidget* ListCoincident; + QPushButton* DetectButton; + QPushButton* RemoveGroupButton; + QCheckBox* SelectAllCheck; + + QListWidget* ListEdit; + QButtonGroup* MoveBorderEndsButGrp; + QLineEdit* BorderEndLine[2]; + QPushButton* SwapBut; + QPushButton* SetFirstButton; + QPushButton* RemoveElemButton; + SalomeApp_IntSpinBox* StepSpin; + + QString myHelpFileName; + + + struct BorderGroupDisplayer; + std::vector< BorderGroupDisplayer* > myBorderDisplayers; + SMESH::CoincidentFreeBorders_var myBorders; + int myCurGroupIndex; + int myCurPartIndex; + int myStoredRepresentation; + unsigned int myStoredEntityMode; + + bool haveBorders(); + QString getGroupText( int groupIndex ); + QString getPartText( const SMESH::FreeBorderPart& part ); + void showGroup( QListWidgetItem* item ); + bool setCurrentGroup(); + bool setCurrentPart(); + void onGroupChange(bool partChange=false); + void setDisplayMode(); + void restoreDisplayMode(); + + + protected slots: + virtual void reject(); + + private slots: + void ConstructorsClicked( int ); + void onModeChange( int ); + void onAutoSew( int ); + void onDetectClicked(); + void onRemoveGroupClicked(); + void onSelectGroup(); + void onSelectAll(int); + void onSelectBorderPartFromGroup(); + void onSetFirstClicked(); + void onRemoveElemClicked(); + void onMoveBorderEnd(int); + void onSwapClicked(); + void ClickOnOk(); + bool ClickOnApply(); + void ClickOnHelp(); + void SetEditCurrentArgument(); + void SelectionIntoArgument( bool = true ); + void DeactivateActiveDialog(); + void ActivateThisDialog(); + void onTextChange( const QString& ); + void onOpenView(); + void onCloseView(); }; -#endif // DIALOGBOX_SEWING_H +#endif // SMESHGUI_SEWINGDLG_H