Version: 9.16.0
SMESHGUI_SewingDlg.h
Go to the documentation of this file.
1// Copyright (C) 2007-2026 CEA, EDF, OPEN CASCADE
2//
3// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5//
6// This library is free software; you can redistribute it and/or
7// modify it under the terms of the GNU Lesser General Public
8// License as published by the Free Software Foundation; either
9// version 2.1 of the License, or (at your option) any later version.
10//
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14// Lesser General Public License for more details.
15//
16// You should have received a copy of the GNU Lesser General Public
17// License along with this library; if not, write to the Free Software
18// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19//
20// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21//
22
23// SMESH SMESHGUI : GUI for SMESH component
24// File : SMESHGUI_SewingDlg.h
25// Author : Michael ZORIN, Open CASCADE S.A.S.
26//
27#ifndef SMESHGUI_SEWINGDLG_H
28#define SMESHGUI_SEWINGDLG_H
29
30// SMESH includes
31#include "SMESH_SMESHGUI.hxx"
32
33// Qt includes
34#include <QDialog>
35
36// IDL includes
37#include <SALOMEconfig.h>
38#include CORBA_SERVER_HEADER(SMESH_Mesh)
39#include CORBA_SERVER_HEADER(SMESH_MeshEditor)
40
41#include <vector>
42
43class QButtonGroup;
44class QGroupBox;
45class QLabel;
46class QLineEdit;
47class QPushButton;
48class QRadioButton;
49class QCheckBox;
50class SMESHGUI;
51class SMESH_Actor;
52class SVTK_Selector;
53class LightApp_SelectionMgr;
55class SalomeApp_IntSpinBox;
56class QListWidget;
57class QListWidgetItem;
58
59//=================================================================================
60// class : SMESHGUI_SewingDlg
61// purpose :
62//=================================================================================
64{
65 Q_OBJECT
66
67public:
70
71private:
72 void Init();
73 void enterEvent( QEvent* ); /* mouse enter the QWidget */
74 void keyPressEvent( QKeyEvent* );
75 int GetConstructorId();
76 bool IsValid();
77 void UpdateButtons();
78
79 SMESHGUI* mySMESHGUI; /* Current SMESHGUI object */
80 LightApp_SelectionMgr* mySelectionMgr; /* User shape selection */
81 int myOk1, myOk2, myOk3, myOk4, myOk5, myOk6;
82 QLineEdit* myEditCurrentArgument; /* Current LineEdit */
83 SVTK_Selector* mySelector;
84
85 bool myBusy;
86 SMESH::SMESH_Mesh_var myMesh;
88
90 QButtonGroup* GroupConstructors;
91 QRadioButton* RadioButton1;
92 QRadioButton* RadioButton2;
93 QRadioButton* RadioButton3;
94 QRadioButton* RadioButton4;
96 QPushButton* buttonOk;
97 QPushButton* buttonCancel;
98 QPushButton* buttonApply;
99 QPushButton* buttonHelp;
109 QPushButton* SelectButton1;
110 QPushButton* SelectButton2;
111 QPushButton* SelectButton3;
112 QPushButton* SelectButton4;
113 QPushButton* SelectButton5;
114 QPushButton* SelectButton6;
115 QLineEdit* LineEdit1;
116 QLineEdit* LineEdit2;
117 QLineEdit* LineEdit3;
118 QLineEdit* LineEdit4;
119 QLineEdit* LineEdit5;
120 QLineEdit* LineEdit6;
121 QCheckBox* CheckBoxMerge;
124
127 QButtonGroup* ModeButGrp;
128 //QPushButton* SelectMeshButton;
129 QLineEdit* LineEditMesh;
130
132 QCheckBox* AutoSewCheck;
133
135 QListWidget* ListCoincident;
136 QPushButton* DetectButton;
137 QPushButton* RemoveGroupButton;
138 QCheckBox* SelectAllCheck;
139
140 QListWidget* ListEdit;
141 QButtonGroup* MoveBorderEndsButGrp;
142 QLineEdit* BorderEndLine[2];
143 QPushButton* SwapBut;
144 QPushButton* SetFirstButton;
145 QPushButton* RemoveElemButton;
146 SalomeApp_IntSpinBox* StepSpin;
147
149
150
152 std::vector< BorderGroupDisplayer* > myBorderDisplayers;
153 SMESH::CoincidentFreeBorders_var myBorders;
157 unsigned int myStoredEntityMode;
158
159 bool haveBorders();
160 QString getGroupText( int groupIndex );
161 QString getPartText( const SMESH::FreeBorderPart& part );
162 void showGroup( QListWidgetItem* item );
163 bool setCurrentGroup();
164 bool setCurrentPart();
165 void onGroupChange(bool partChange=false);
166 void setDisplayMode();
167 void restoreDisplayMode();
168
169
170 protected slots:
171 virtual void reject();
172
173 private slots:
174 void ConstructorsClicked( int );
175 void onModeChange( int );
176 void onAutoSew( int );
177 void onDetectClicked();
178 void onRemoveGroupClicked();
179 void onSelectGroup();
180 void onSelectAll(int);
181 void onSelectBorderPartFromGroup();
182 void onSetFirstClicked();
183 void onRemoveElemClicked();
184 void onMoveBorderEnd(int);
185 void onSwapClicked();
186 void ClickOnOk();
187 bool ClickOnApply();
188 void ClickOnHelp();
189 void SetEditCurrentArgument();
190 void SelectionIntoArgument( bool = true );
191 void DeactivateActiveDialog();
192 void ActivateThisDialog();
193 void onTextChange( const QString& );
194 void onOpenView();
195 void onCloseView();
196};
197
198#endif // SMESHGUI_SEWINGDLG_H
#define SMESHGUI_EXPORT
Definition: SMESH_SMESHGUI.hxx:36
Definition: SMESHGUI_SewingDlg.h:64
QRadioButton * RadioButton3
Definition: SMESHGUI_SewingDlg.h:93
QPushButton * SelectButton1
Definition: SMESHGUI_SewingDlg.h:109
QPushButton * buttonOk
Definition: SMESHGUI_SewingDlg.h:96
QWidget * SewFreeBordersWidget
Definition: SMESHGUI_SewingDlg.h:125
QLineEdit * LineEdit2
Definition: SMESHGUI_SewingDlg.h:116
LightApp_SelectionMgr * mySelectionMgr
Definition: SMESHGUI_SewingDlg.h:80
QRadioButton * RadioButton1
Definition: SMESHGUI_SewingDlg.h:91
QLabel * TextLabel2
Definition: SMESHGUI_SewingDlg.h:104
QLabel * TextLabel4
Definition: SMESHGUI_SewingDlg.h:106
int myOk1
Definition: SMESHGUI_SewingDlg.h:81
QPushButton * buttonCancel
Definition: SMESHGUI_SewingDlg.h:97
QCheckBox * AutoSewCheck
Definition: SMESHGUI_SewingDlg.h:132
QCheckBox * SelectAllCheck
Definition: SMESHGUI_SewingDlg.h:138
QListWidget * ListEdit
Definition: SMESHGUI_SewingDlg.h:140
QLineEdit * LineEdit4
Definition: SMESHGUI_SewingDlg.h:118
SalomeApp_IntSpinBox * StepSpin
Definition: SMESHGUI_SewingDlg.h:146
int myStoredRepresentation
Definition: SMESHGUI_SewingDlg.h:156
SMESH_Actor * myActor
Definition: SMESHGUI_SewingDlg.h:87
QPushButton * DetectButton
Definition: SMESHGUI_SewingDlg.h:136
int myCurPartIndex
Definition: SMESHGUI_SewingDlg.h:155
QLineEdit * LineEdit1
Definition: SMESHGUI_SewingDlg.h:115
QGroupBox * GroupArguments
Definition: SMESHGUI_SewingDlg.h:100
QButtonGroup * GroupConstructors
Definition: SMESHGUI_SewingDlg.h:90
QPushButton * SelectButton4
Definition: SMESHGUI_SewingDlg.h:112
QPushButton * buttonHelp
Definition: SMESHGUI_SewingDlg.h:99
int myCurGroupIndex
Definition: SMESHGUI_SewingDlg.h:154
QLineEdit * LineEdit6
Definition: SMESHGUI_SewingDlg.h:120
QPushButton * RemoveElemButton
Definition: SMESHGUI_SewingDlg.h:145
QLabel * TextLabel1
Definition: SMESHGUI_SewingDlg.h:103
SMESHGUI * mySMESHGUI
Definition: SMESHGUI_SewingDlg.h:79
QRadioButton * RadioButton2
Definition: SMESHGUI_SewingDlg.h:92
QCheckBox * CheckBoxPolygons
Definition: SMESHGUI_SewingDlg.h:122
QGroupBox * ModeGroup
Definition: SMESHGUI_SewingDlg.h:126
SMESH::SMESH_Mesh_var myMesh
Definition: SMESHGUI_SewingDlg.h:86
SVTK_Selector * mySelector
Definition: SMESHGUI_SewingDlg.h:83
QPushButton * SelectButton3
Definition: SMESHGUI_SewingDlg.h:111
bool myBusy
Definition: SMESHGUI_SewingDlg.h:85
QGroupBox * GroupButtons
Definition: SMESHGUI_SewingDlg.h:95
QLineEdit * LineEditMesh
Definition: SMESHGUI_SewingDlg.h:129
QLineEdit * LineEdit5
Definition: SMESHGUI_SewingDlg.h:119
QLabel * TextLabel5
Definition: SMESHGUI_SewingDlg.h:107
QString myHelpFileName
Definition: SMESHGUI_SewingDlg.h:148
QPushButton * buttonApply
Definition: SMESHGUI_SewingDlg.h:98
QButtonGroup * MoveBorderEndsButGrp
Definition: SMESHGUI_SewingDlg.h:141
QPushButton * SelectButton6
Definition: SMESHGUI_SewingDlg.h:114
std::vector< BorderGroupDisplayer * > myBorderDisplayers
Definition: SMESHGUI_SewingDlg.h:152
QPushButton * RemoveGroupButton
Definition: SMESHGUI_SewingDlg.h:137
SMESHGUI_SpinBox * SpinBoxTolerance
Definition: SMESHGUI_SewingDlg.h:131
QCheckBox * CheckBoxMerge
Definition: SMESHGUI_SewingDlg.h:121
QLineEdit * myEditCurrentArgument
Definition: SMESHGUI_SewingDlg.h:82
QCheckBox * CheckBoxPolyedrs
Definition: SMESHGUI_SewingDlg.h:123
QRadioButton * RadioButton4
Definition: SMESHGUI_SewingDlg.h:94
SMESH::CoincidentFreeBorders_var myBorders
Definition: SMESHGUI_SewingDlg.h:153
QGroupBox * SubGroup2
Definition: SMESHGUI_SewingDlg.h:102
QGroupBox * ConstructorsBox
Definition: SMESHGUI_SewingDlg.h:89
QLineEdit * LineEdit3
Definition: SMESHGUI_SewingDlg.h:117
QGroupBox * SubGroup1
Definition: SMESHGUI_SewingDlg.h:101
QPushButton * SelectButton2
Definition: SMESHGUI_SewingDlg.h:110
QLabel * TextLabel6
Definition: SMESHGUI_SewingDlg.h:108
QButtonGroup * ModeButGrp
Definition: SMESHGUI_SewingDlg.h:127
unsigned int myStoredEntityMode
Definition: SMESHGUI_SewingDlg.h:157
QPushButton * SelectButton5
Definition: SMESHGUI_SewingDlg.h:113
QLabel * TextLabel3
Definition: SMESHGUI_SewingDlg.h:105
QListWidget * ListCoincident
Definition: SMESHGUI_SewingDlg.h:135
QPushButton * SwapBut
Definition: SMESHGUI_SewingDlg.h:143
QPushButton * SetFirstButton
Definition: SMESHGUI_SewingDlg.h:144
QWidget * GroupCoincidentWidget
Definition: SMESHGUI_SewingDlg.h:134
Definition: SMESHGUI_SpinBox.h:48
Definition: SMESHGUI.h:84
Definition: SMESH_Actor.h:56
bool IsValid(SALOME_Actor *theActor, int theCellId, SVTK_Selector *theSelector)
Definition: SMESHGUI_VTKUtils.cxx:1143
Dispalayer of free borders.
Definition: SMESHGUI_SewingDlg.cxx:95
Definition: SMESH_MeshEditor.idl:44