Version: 9.16.0
SMESHGUI_MgAdaptDlg.h
Go to the documentation of this file.
1// Copyright (C) 2020-2026 CEA, EDF
2//
3// This library is free software; you can redistribute it and/or
4// modify it under the terms of the GNU Lesser General Public
5// License as published by the Free Software Foundation; either
6// version 2.1 of the License, or (at your option) any later version.
7//
8// This library is distributed in the hope that it will be useful,
9// but WITHOUT ANY WARRANTY; without even the implied warranty of
10// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11// Lesser General Public License for more details.
12//
13// You should have received a copy of the GNU Lesser General Public
14// License along with this library; if not, write to the Free Software
15// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16//
17// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18//
19
20#ifndef MG_ADAPTGUI_HXX
21#define MG_ADAPTGUI_HXX
22
23// Qt includes
24#include <QDialog>
25#include <QTreeWidget>
26#include <QItemDelegate>
27
28#include <map>
29
30#include <SALOMEconfig.h>
31#include CORBA_SERVER_HEADER(MG_ADAPT)
32#include <SALOME_GenericObj_wrap.hxx>
33
35
36class QButtonGroup;
37class QLineEdit;
38class QGroupBox;
39class QRadioButton;
40class QLabel;
41class QCheckBox;
42class QGridLayout;
43class QTabWidget;
44class QDoubleSpinBox;
45class QSpacerItem;
46class QSpinBox;
47class QTreeWidgetItem;
48class QHBoxLayout;
49class QComboBox;
50
54
58 BOTH
59};
60
61//=================================================================================
62// class : SMESHGUI_MgAdaptDlg
63// purpose :
64//=================================================================================
66{
67 Q_OBJECT
68public:
71 SMESHGUI_MgAdaptDlg( SalomeApp_Module*, SMESH::MG_ADAPT_ptr, QWidget* parent= 0,bool isCreation = true );
73
74 void buildDlg();
75 void reject();
76 bool checkParams(QString& msg) ;
77 //~void setModel(MgAdapt*);
78 SMESH::MG_ADAPT_ptr getModel() const;
79
80public slots:
81
82protected slots:
83 virtual bool PushOnApply();
84
85private slots:
86 virtual void PushOnHelp();
87 virtual void PushOnOK();
88
89protected :
90
93
94 bool readParamsFromHypo( ) const ;
95 bool readParamsFromWidgets( ) ;
97
98private:
99
101 QTabWidget* myTabWidget;
102
103 SMESH::MgAdaptHypothesisData_var myData;
104 SALOME::GenericObj_wrap< SMESH::MG_ADAPT > model;
105
106};
107
109{
110 Q_OBJECT
111public:
113 enum Mode { Mesh, Browser};
117 void setMode( const Mode, const SIZEMAP );
118
119 QString myFileInDir;
123 QRadioButton* aMedfile;
124 QRadioButton* aBrowser ;
125 QLineEdit* aBrowserObject;
126 QPushButton* selectMedFilebutton ;
127 QSpacerItem* hspacer;
129 QButtonGroup* meshInGroup ;
130 QGridLayout* meshIn ;
131
135 QSpacerItem* secondHspacer;
136 QCheckBox* medFileCheckBox;
139 QSpacerItem* thirdHspacer;
140 QCheckBox* publishOut;
141 QGridLayout* meshOut ;
142
144 QRadioButton* localButton;
145 QRadioButton* backgroundButton ;
146 QRadioButton* constantButton ;
151 QDoubleSpinBox* dvalue;
152 QButtonGroup* sizeMapDefGroup ;
154
155
159 QRadioButton* noTimeStep;
160 QRadioButton* lastTimeStep ;
161 QRadioButton* chosenTimeStep;
163 QSpinBox* timeStep;
165 QSpinBox* rankSpinBox;
166 QButtonGroup* timeStepGroup;
168
169signals:
171 void toExportMED(const char *);
173public slots:
174
175protected slots:
176
177private slots:
178 void modeChanged( int);
179 void sizeMapDefChanged(int);
180 void timeStepGroupChanged(int timeStepType, bool disableOther = false, int vmax = 0);
182 void clear();
183 void onMedFileCheckBox(int);
184 void onPublishOut(int);
187 void onLocalSelected(QString);
188 void onNoTimeStep(bool disableOther = false);
189 void onLastTimeStep(bool disableOther = false);
190 void onChosenTimeStep(bool disableOther = false, int vmax = 0);
191 void visibleTimeStepRankLabel(bool visible);
192 void valueAdaptation ();
193
194private:
195
196 QString getMedFileName(bool avertir);
199 std::map<QString, int> myFieldList;
200
201};
202enum {
208};
209
211// MgAdaptAdvWidget
214{
215 Q_OBJECT
216
217public:
218 MgAdaptAdvWidget( QWidget* = 0, std::vector <std::string> * = nullptr, Qt::WindowFlags = 0 );
220 std::vector < std::string > *myOptions;
221 QGridLayout *gridLayout_4;
223 QPushButton *addBtn;
224 QSpacerItem *horizontalSpacer;
226 QGridLayout *gridLayout_2;
227 QGridLayout *gridLayout;
233 QHBoxLayout *horizontalLayout;
234 QCheckBox *logInFileCheck;
237
238 void AddOption( const char* name_value_type, bool isCustom = false );
239 void GetOptionAndValue( QTreeWidgetItem * tblRow, QString& option, QString& value, bool& dflt );
240 void setupWidget();
241
242public slots:
243 void onAddOption();
244 void itemChanged(QTreeWidgetItem * tblRow, int column);
246private slots:
248private:
249 void setOptionValue(QString& option, QString& value);
250 std::map<QString, QTreeWidgetItem *> optionTreeWidgetItem;
251
252 QTreeWidgetItem* getNewQTreeWidgetItem(QTreeWidget* table, const char* option, QString& name, bool isCustom);
253
254};
255
256enum { EDITABLE_ROLE = Qt::UserRole + 1, PARAM_NAME,
258 };
259
261{
262public:
263
264 ItemDelegate(QObject* parent=0): QItemDelegate(parent) {}
265 QWidget* createEditor(QWidget *parent, const QStyleOptionViewItem &o, const QModelIndex &index) const;
266};
267
269{
270 Q_OBJECT
271public:
273
274protected:
275 QModelIndex moveCursor( CursorAction, Qt::KeyboardModifiers );
276 void keyPressEvent( QKeyEvent* );
277};
278
279#endif // MG_ADAPTGUI_HXX
ADAPTATION_MODE
Definition: SMESHGUI_MgAdaptDlg.h:55
@ BOTH
Definition: SMESHGUI_MgAdaptDlg.h:58
@ VOLUME
Definition: SMESHGUI_MgAdaptDlg.h:57
@ SURFACE
Definition: SMESHGUI_MgAdaptDlg.h:56
@ OPTION_ID_COLUMN
Definition: SMESHGUI_MgAdaptDlg.h:203
@ NB_COLUMNS
Definition: SMESHGUI_MgAdaptDlg.h:207
@ OPTION_VALUE_COLUMN
Definition: SMESHGUI_MgAdaptDlg.h:206
@ OPTION_NAME_COLUMN
Definition: SMESHGUI_MgAdaptDlg.h:205
@ OPTION_TYPE_COLUMN
Definition: SMESHGUI_MgAdaptDlg.h:204
@ VALUE_COL
Definition: SMESHGUI_MgAdaptDlg.h:257
@ EDITABLE_ROLE
Definition: SMESHGUI_MgAdaptDlg.h:256
@ NAME_COL
Definition: SMESHGUI_MgAdaptDlg.h:257
@ PARAM_NAME
Definition: SMESHGUI_MgAdaptDlg.h:256
Definition: SMESHGUI_MgAdaptDlg.h:261
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &o, const QModelIndex &index) const
Definition: SMESHGUI_MgAdaptDlg.cxx:1009
ItemDelegate(QObject *parent=0)
Definition: SMESHGUI_MgAdaptDlg.h:264
Definition: SMESHGUI_MgAdaptDlg.h:269
MgAdaptAdvWidgetTreeWidget(QWidget *)
Definition: SMESHGUI_MgAdaptDlg.cxx:1281
QModelIndex moveCursor(CursorAction, Qt::KeyboardModifiers)
Definition: SMESHGUI_MgAdaptDlg.cxx:1286
void keyPressEvent(QKeyEvent *)
Definition: SMESHGUI_MgAdaptDlg.cxx:1317
Definition: SMESHGUI_MgAdaptDlg.h:214
QPushButton * addBtn
Definition: SMESHGUI_MgAdaptDlg.h:223
QSpinBox * verboseLevelSpin
Definition: SMESHGUI_MgAdaptDlg.h:232
QCheckBox * keepWorkingFilesCheck
Definition: SMESHGUI_MgAdaptDlg.h:236
void _onWorkingDirectoryPushButton()
Definition: SMESHGUI_MgAdaptDlg.cxx:1222
void GetOptionAndValue(QTreeWidgetItem *tblRow, QString &option, QString &value, bool &dflt)
Definition: SMESHGUI_MgAdaptDlg.cxx:1098
QGridLayout * gridLayout
Definition: SMESHGUI_MgAdaptDlg.h:227
QLabel * verboseLevelLabel
Definition: SMESHGUI_MgAdaptDlg.h:231
void itemChanged(QTreeWidgetItem *tblRow, int column)
Definition: SMESHGUI_MgAdaptDlg.cxx:1109
void onMeshDimChanged(ADAPTATION_MODE aMode)
Definition: SMESHGUI_MgAdaptDlg.cxx:1227
~MgAdaptAdvWidget()
Definition: SMESHGUI_MgAdaptDlg.cxx:1036
QTreeWidgetItem * getNewQTreeWidgetItem(QTreeWidget *table, const char *option, QString &name, bool isCustom)
Definition: SMESHGUI_MgAdaptDlg.cxx:1084
void setOptionValue(QString &option, QString &value)
Definition: SMESHGUI_MgAdaptDlg.cxx:1258
std::vector< std::string > * myOptions
Definition: SMESHGUI_MgAdaptDlg.h:220
void setupWidget()
Definition: SMESHGUI_MgAdaptDlg.cxx:1128
void AddOption(const char *name_value_type, bool isCustom=false)
Definition: SMESHGUI_MgAdaptDlg.cxx:1040
QGroupBox * logGroupBox
Definition: SMESHGUI_MgAdaptDlg.h:225
MgAdaptAdvWidgetTreeWidget * myOptionTable
Definition: SMESHGUI_MgAdaptDlg.h:222
MgAdaptAdvWidget(QWidget *=0, std::vector< std::string > *=nullptr, Qt::WindowFlags=0)
Definition: SMESHGUI_MgAdaptDlg.cxx:1019
QGridLayout * gridLayout_2
Definition: SMESHGUI_MgAdaptDlg.h:226
QSpacerItem * horizontalSpacer
Definition: SMESHGUI_MgAdaptDlg.h:224
void onAddOption()
Definition: SMESHGUI_MgAdaptDlg.cxx:1094
QCheckBox * removeLogOnSuccessCheck
Definition: SMESHGUI_MgAdaptDlg.h:235
QLabel * workingDirectoryLabel
Definition: SMESHGUI_MgAdaptDlg.h:228
QCheckBox * logInFileCheck
Definition: SMESHGUI_MgAdaptDlg.h:234
std::map< QString, QTreeWidgetItem * > optionTreeWidgetItem
Definition: SMESHGUI_MgAdaptDlg.h:250
QHBoxLayout * horizontalLayout
Definition: SMESHGUI_MgAdaptDlg.h:233
QPushButton * workingDirectoryPushButton
Definition: SMESHGUI_MgAdaptDlg.h:230
QLineEdit * workingDirectoryLineEdit
Definition: SMESHGUI_MgAdaptDlg.h:229
QGridLayout * gridLayout_4
Definition: SMESHGUI_MgAdaptDlg.h:221
Definition: SMESHGUI_MgAdaptDlg.h:109
QString getMedFileName(bool avertir)
Definition: SMESHGUI_MgAdaptDlg.cxx:887
int meshDimBG
Definition: SMESHGUI_MgAdaptDlg.h:198
void sizeMapDefChanged(int)
Definition: SMESHGUI_MgAdaptDlg.cxx:935
void onSelectMedFilebuttonClicked()
Definition: SMESHGUI_MgAdaptDlg.cxx:802
void toExportMED(const char *)
QGridLayout * sizeMapDefGroupLayout
Definition: SMESHGUI_MgAdaptDlg.h:153
QGridLayout * sizeMapFieldGroupLayout
Definition: SMESHGUI_MgAdaptDlg.h:167
QButtonGroup * meshInGroup
Definition: SMESHGUI_MgAdaptDlg.h:129
void modeChanged(int)
Definition: SMESHGUI_MgAdaptDlg.cxx:914
QLineEdit * meshNameLineEdit
Definition: SMESHGUI_MgAdaptDlg.h:134
void visibleTimeStepRankLabel(bool visible)
Definition: SMESHGUI_MgAdaptDlg.cxx:718
QString myFileInDir
Definition: SMESHGUI_MgAdaptDlg.h:119
QSpinBox * rankSpinBox
Definition: SMESHGUI_MgAdaptDlg.h:165
std::map< QString, int > myFieldList
Definition: SMESHGUI_MgAdaptDlg.h:199
QLineEdit * selectMedFileLineEdit
Definition: SMESHGUI_MgAdaptDlg.h:128
QLabel * medFileBackground
Definition: SMESHGUI_MgAdaptDlg.h:147
QGroupBox * aMeshOut
Definition: SMESHGUI_MgAdaptDlg.h:132
void meshDimSignal(ADAPTATION_MODE aMode)
QRadioButton * localButton
Definition: SMESHGUI_MgAdaptDlg.h:144
QRadioButton * aMedfile
Definition: SMESHGUI_MgAdaptDlg.h:123
QLabel * meshName
Definition: SMESHGUI_MgAdaptDlg.h:133
void valueAdaptation()
Definition: SMESHGUI_MgAdaptDlg.cxx:841
QSpacerItem * secondHspacer
Definition: SMESHGUI_MgAdaptDlg.h:135
QGroupBox * sizeMapField
Definition: SMESHGUI_MgAdaptDlg.h:156
QCheckBox * publishOut
Definition: SMESHGUI_MgAdaptDlg.h:140
QButtonGroup * sizeMapDefGroup
Definition: SMESHGUI_MgAdaptDlg.h:152
QRadioButton * lastTimeStep
Definition: SMESHGUI_MgAdaptDlg.h:160
SMESHGUI_MgAdaptArguments(QWidget *parent)
Definition: SMESHGUI_MgAdaptDlg.cxx:529
void onLocalSelected(QString)
Definition: SMESHGUI_MgAdaptDlg.cxx:855
SIZEMAP
Definition: SMESHGUI_MgAdaptDlg.h:114
@ Local
Definition: SMESHGUI_MgAdaptDlg.h:114
@ Constant
Definition: SMESHGUI_MgAdaptDlg.h:114
@ Background
Definition: SMESHGUI_MgAdaptDlg.h:114
QSpacerItem * thirdHspacer
Definition: SMESHGUI_MgAdaptDlg.h:139
QRadioButton * constantButton
Definition: SMESHGUI_MgAdaptDlg.h:146
QComboBox * fieldNameCmb
Definition: SMESHGUI_MgAdaptDlg.h:158
QString myFileSizeMapDir
Definition: SMESHGUI_MgAdaptDlg.h:121
void setMode(const Mode, const SIZEMAP)
Definition: SMESHGUI_MgAdaptDlg.cxx:898
void onMedFileCheckBox(int)
Definition: SMESHGUI_MgAdaptDlg.cxx:778
~SMESHGUI_MgAdaptArguments()
Definition: SMESHGUI_MgAdaptDlg.cxx:684
QGroupBox * sizeMapDefinition
Definition: SMESHGUI_MgAdaptDlg.h:143
QLineEdit * aBrowserObject
Definition: SMESHGUI_MgAdaptDlg.h:125
void onNoTimeStep(bool disableOther=false)
Definition: SMESHGUI_MgAdaptDlg.cxx:688
QGroupBox * aMeshIn
Definition: SMESHGUI_MgAdaptDlg.h:122
QLabel * fieldName
Definition: SMESHGUI_MgAdaptDlg.h:157
QPushButton * selectMedFilebutton
Definition: SMESHGUI_MgAdaptDlg.h:126
QGridLayout * meshIn
Definition: SMESHGUI_MgAdaptDlg.h:130
QLabel * rankLabel
Definition: SMESHGUI_MgAdaptDlg.h:164
QLabel * valueLabel
Definition: SMESHGUI_MgAdaptDlg.h:150
void onChosenTimeStep(bool disableOther=false, int vmax=0)
Definition: SMESHGUI_MgAdaptDlg.cxx:708
QGridLayout * meshOut
Definition: SMESHGUI_MgAdaptDlg.h:141
QDoubleSpinBox * dvalue
Definition: SMESHGUI_MgAdaptDlg.h:151
QLineEdit * selectMedFileBackgroundLineEdit
Definition: SMESHGUI_MgAdaptDlg.h:149
QString myFileOutDir
Definition: SMESHGUI_MgAdaptDlg.h:120
QRadioButton * backgroundButton
Definition: SMESHGUI_MgAdaptDlg.h:145
Mode
Property type.
Definition: SMESHGUI_MgAdaptDlg.h:113
@ Mesh
Definition: SMESHGUI_MgAdaptDlg.h:113
@ Browser
Definition: SMESHGUI_MgAdaptDlg.h:113
QSpinBox * timeStep
Definition: SMESHGUI_MgAdaptDlg.h:163
QCheckBox * medFileCheckBox
Definition: SMESHGUI_MgAdaptDlg.h:136
QPushButton * selectOutMedFilebutton
Definition: SMESHGUI_MgAdaptDlg.h:137
QRadioButton * noTimeStep
Definition: SMESHGUI_MgAdaptDlg.h:159
QPushButton * selectMedFileBackgroundbutton
Definition: SMESHGUI_MgAdaptDlg.h:148
QButtonGroup * timeStepGroup
Definition: SMESHGUI_MgAdaptDlg.h:166
QLabel * timeStepLabel
Definition: SMESHGUI_MgAdaptDlg.h:162
int meshDim
Definition: SMESHGUI_MgAdaptDlg.h:197
void onPublishOut(int)
Definition: SMESHGUI_MgAdaptDlg.cxx:794
QSpacerItem * hspacer
Definition: SMESHGUI_MgAdaptDlg.h:127
void onLastTimeStep(bool disableOther=false)
Definition: SMESHGUI_MgAdaptDlg.cxx:699
QLineEdit * selectOutMedFileLineEdit
Definition: SMESHGUI_MgAdaptDlg.h:138
void timeStepGroupChanged(int timeStepType, bool disableOther=false, int vmax=0)
Definition: SMESHGUI_MgAdaptDlg.cxx:980
void onSelectMedFileBackgroundbutton()
Definition: SMESHGUI_MgAdaptDlg.cxx:738
QRadioButton * chosenTimeStep
Definition: SMESHGUI_MgAdaptDlg.h:161
QRadioButton * aBrowser
Definition: SMESHGUI_MgAdaptDlg.h:124
void clear()
Definition: SMESHGUI_MgAdaptDlg.cxx:997
void onSelectOutMedFilebutton()
Definition: SMESHGUI_MgAdaptDlg.cxx:727
Definition: SMESHGUI_MgAdaptDlg.h:66
virtual void PushOnHelp()
Show help page.
Definition: SMESHGUI_MgAdaptDlg.cxx:467
SalomeApp_Module * mySMESHGUI
Definition: SMESHGUI_MgAdaptDlg.h:100
virtual bool PushOnApply()
Perform clean-up actions on the dialog box closing.
Definition: SMESHGUI_MgAdaptDlg.cxx:258
SMESHGUI_MgAdaptDlg(SalomeApp_Module *, SMESH::MG_ADAPT_ptr, QWidget *parent=0, bool isCreation=true)
Definition: SMESHGUI_MgAdaptDlg.cxx:158
SMESH::MgAdaptHypothesisData_var myData
Definition: SMESHGUI_MgAdaptDlg.h:103
bool readParamsFromHypo() const
Definition: SMESHGUI_MgAdaptDlg.cxx:272
SALOME::GenericObj_wrap< SMESH::MG_ADAPT > model
Definition: SMESHGUI_MgAdaptDlg.h:104
Mode
Property type.
Definition: SMESHGUI_MgAdaptDlg.h:70
@ Arguments
Definition: SMESHGUI_MgAdaptDlg.h:70
@ AdvancedOptions
Definition: SMESHGUI_MgAdaptDlg.h:70
void reject()
Definition: SMESHGUI_MgAdaptDlg.cxx:268
virtual void PushOnOK()
Definition: SMESHGUI_MgAdaptDlg.cxx:263
MgAdaptAdvWidget * myAdvOpt
Definition: SMESHGUI_MgAdaptDlg.h:92
SMESHGUI_MgAdaptArguments * myArgs
Definition: SMESHGUI_MgAdaptDlg.h:91
bool storeParamsToHypo(const SMESH::MgAdaptHypothesisData &) const
Definition: SMESHGUI_MgAdaptDlg.cxx:460
bool readParamsFromWidgets()
Definition: SMESHGUI_MgAdaptDlg.cxx:351
bool checkParams(QString &msg)
Definition: SMESHGUI_MgAdaptDlg.cxx:482
QTabWidget * myTabWidget
Definition: SMESHGUI_MgAdaptDlg.h:101
~SMESHGUI_MgAdaptDlg()
Definition: SMESHGUI_MgAdaptDlg.cxx:242
SMESH::MG_ADAPT_ptr getModel() const
Definition: SMESHGUI_MgAdaptDlg.cxx:251
void buildDlg()
Definition: SMESHGUI_MgAdaptDlg.cxx:169
Definition: MG_ADAPT.idl:32