+++ /dev/null
-// Copyright (C) 2011-2020 CEA/DEN, EDF R&D\r
-//\r
-// This library is free software; you can redistribute it and/or\r
-// modify it under the terms of the GNU Lesser General Public\r
-// License as published by the Free Software Foundation; either\r
-// version 2.1 of the License, or (at your option) any later version.\r
-//\r
-// This library is distributed in the hope that it will be useful,\r
-// but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
-// Lesser General Public License for more details.\r
-//\r
-// You should have received a copy of the GNU Lesser General Public\r
-// License along with this library; if not, write to the Free Software\r
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
-//\r
-// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com\r
-//\r
-\r
-// SMESH SMESHGUI : GUI for the adaptation in the SMESH component\r
-// File : MG_ADAPTGUI.hxx\r
-//\r
-#ifndef MG_ADAPTGUI_HXX\r
-#define MG_ADAPTGUI_HXX\r
-\r
-#include <set>\r
-// SMESH includes\r
-\r
-// Qt includes\r
-#include <QDialog>\r
-#include <QTreeWidget>\r
-#include<QItemDelegate>\r
-\r
-#include "LightApp_DataOwner.h"\r
-#include "SalomeApp_Application.h"\r
-#include <SALOMEconfig.h>\r
-#include <SALOME_ListIO.hxx>\r
-#include "SalomeApp_Module.h"\r
-#include "SalomeApp_Study.h"\r
-#include <med.h>\r
-#include <map>\r
-\r
-\r
-// model\r
-\r
-\r
-#include "MG_ADAPT.hxx"\r
-\r
-class SUIT_ViewWindow;\r
-class SUIT_Desktop;\r
-class SUIT_Study;\r
-class SUIT_ResourceMgr;\r
-\r
-class CAM_Module;\r
-\r
-class SALOMEDSClient_Study;\r
-class SALOMEDSClient_SObject;\r
-\r
-class SalomeApp_Study;\r
-class SalomeApp_Module;\r
-class LightApp_SelectionMgr;\r
-\r
-\r
-class QButtonGroup;\r
-class QLineEdit;\r
-class QGroupBox;\r
-class QRadioButton;\r
-class QLabel;\r
-class QCheckBox;\r
-class QGridLayout;\r
-class QTabWidget;\r
-class QDoubleSpinBox;\r
-class QSpinBox;\r
-class QTreeWidget;\r
-class QTreeWidgetItem;\r
-class QSpacerItem;\r
-class QHBoxLayout;\r
-class QItemDelegate;\r
-class QComboBox;\r
-\r
-// IDL includes\r
-#include <SALOMEconfig.h>\r
-\r
-class SVTK_ViewWindow;\r
-class SVTK_Selector;\r
-class SMESHGUI_MgAdaptDlg;\r
-class SMESHGUI_MgAdaptArguments;\r
-class SMESHGUI_SpinBox;\r
-class MgAdaptAdvWidgetTreeWidget;\r
-class MgAdaptAdvWidget;\r
-class MgAdapt;\r
-class QHeaderView;\r
-class QFileDialog;\r
-\r
-\r
-std::map<QString, int> GetListeChamps(QString aFile, bool errorMessage = true);\r
-QString lireNomMaillage(QString aFile, med_int& meshDim);\r
-QString lireNomMaillage2(med_idt medIdt,int meshId, med_int& meshDim);\r
-med_idt OuvrirFichier(QString aFile);\r
-std::string remove_extension(const std::string& filename);\r
-\r
-\r
-enum ADAPTATION_MODE{
- SURFACE, // surface adaption when meshDim == 2\r
- VOLUME, // \r
- BOTH
-};\r
-//=================================================================================\r
-// class : SMESHGUI_MgAdaptDlg\r
-// purpose :\r
-//=================================================================================\r
-class SMESHGUI_MgAdaptDlg : public QDialog\r
-{\r
- Q_OBJECT;\r
-public:\r
- //! Property type\r
- enum Mode { Arguments, AdvancedOptions};\r
- SMESHGUI_MgAdaptDlg( SalomeApp_Module*, MgAdapt*, QWidget* parent= 0,bool isCreation = true );\r
- ~SMESHGUI_MgAdaptDlg();\r
-\r
- void buildDlg();\r
- void reject();\r
- bool checkParams(QString& msg) ;\r
- void setModel(MgAdapt*);\r
- MgAdapt* getModel() const;\r
-\r
-public slots:\r
-\r
-protected slots:\r
-\r
- virtual bool clickOnApply();\r
-private slots:\r
- virtual void clickOnHelp();\r
- virtual void clickOnOk();\r
-protected :\r
-\r
- SMESHGUI_MgAdaptArguments* myArgs;\r
- MgAdaptAdvWidget* myAdvOpt;\r
- bool readParamsFromHypo( ) const ;\r
- bool readParamsFromWidgets( ) ;\r
- bool storeParamsToHypo( const MgAdaptHypothesisData& ) const;\r
-\r
-private:\r
-\r
-\r
- SalomeApp_Module* mySMESHGUI; /* Current SMESHGUI object */\r
- QTabWidget* myTabWidget;\r
-\r
-\r
- MgAdaptHypothesisData* myData;\r
- MgAdapt* model;\r
-\r
-};\r
-\r
-class SMESHGUI_MgAdaptArguments : public QWidget\r
-{\r
- Q_OBJECT;\r
-public:\r
- //! Property type\r
- enum Mode { Mesh, Browser};\r
- enum SIZEMAP { Local, Background, Constant};\r
- SMESHGUI_MgAdaptArguments( QWidget* parent);\r
- ~SMESHGUI_MgAdaptArguments();\r
- void setMode( const Mode, const SIZEMAP );\r
- med_int getMeshDim() const;\r
-\r
- QString* myFileInDir;\r
- QString* myFileOutDir;\r
- QString* myFileSizeMapDir;\r
- QGroupBox* aMeshIn ;\r
- QRadioButton* aMedfile;\r
- QRadioButton* aBrowser ;\r
- QLineEdit* aBrowserObject;\r
- QPushButton* selectMedFilebutton ;\r
- QSpacerItem* hspacer;\r
- QLineEdit* selectMedFileLineEdit ;\r
- QButtonGroup* meshInGroup ;\r
- QGridLayout* meshIn ;\r
-\r
- QGroupBox* aMeshOut ;\r
- QLabel* meshName;\r
- QLineEdit* meshNameLineEdit;\r
- QSpacerItem* secondHspacer;\r
- QCheckBox* medFileCheckBox;\r
- QPushButton* selectOutMedFilebutton;\r
- QLineEdit* selectOutMedFileLineEdit;\r
- QSpacerItem* thirdHspacer;\r
- QCheckBox* publishOut;\r
- QGridLayout* meshOut ;\r
-\r
- QGroupBox* sizeMapDefinition ;\r
- QRadioButton* localButton;\r
- QRadioButton* backgroundButton ;\r
- QRadioButton* constantButton ;\r
- QLabel* medFileBackground;\r
- QPushButton* selectMedFileBackgroundbutton;\r
- QLineEdit* selectMedFileBackgroundLineEdit;\r
- QLabel* valueLabel;\r
- QDoubleSpinBox* dvalue;\r
- QButtonGroup* sizeMapDefGroup ;\r
- QGridLayout* sizeMapDefGroupLayout;\r
-\r
-\r
- QGroupBox* sizeMapField;\r
- QLabel* fieldName;\r
- QComboBox* fieldNameCmb;\r
- QRadioButton* noTimeStep;\r
- QRadioButton* lastTimeStep ;\r
- QRadioButton* chosenTimeStep;\r
- QLabel* timeStepLabel;\r
- QSpinBox* timeStep;\r
- QLabel* rankLabel;\r
- QSpinBox* rankSpinBox;\r
- QButtonGroup* timeStepGroup;\r
- QGridLayout* sizeMapFieldGroupLayout;\r
-\r
-signals:\r
- void updateSelection();\r
- void toExportMED(const char *);\r
- void meshDimSignal(ADAPTATION_MODE aMode);\r
-public slots:\r
-\r
-protected slots:\r
-\r
-private slots:\r
- void modeChanged( int);\r
- void sizeMapDefChanged(int);\r
- void timeStepGroupChanged(int timeStepType, bool disableOther = false, int max = 0);\r
- void onSelectMedFilebuttonClicked();\r
- void clear();\r
- void onMedFileCheckBox(int);\r
- void onPublishOut(int);\r
- void onSelectOutMedFilebutton();\r
- void onSelectMedFileBackgroundbutton();\r
- void onLocalSelected(QString);\r
- void onNoTimeStep(bool disableOther = false);\r
- void onLastTimeStep(bool disableOther = false);\r
- void onChosenTimeStep(bool disableOther = false, int max = 0);\r
-\r
-private:\r
-\r
- QString getMedFileName(bool avertir);\r
- LightApp_SelectionMgr* selMgr ;\r
- med_int meshDim;\r
- std::map<QString, int> myFieldList;\r
-\r
-\r
-};\r
-enum {\r
- OPTION_ID_COLUMN = 0,\r
- OPTION_TYPE_COLUMN,\r
- OPTION_NAME_COLUMN = 0,\r
- OPTION_VALUE_COLUMN,\r
- NB_COLUMNS,\r
-};\r
-\r
-//////////////////////////////////////////\r
-// MgAdaptAdvWidget\r
-//////////////////////////////////////////\r
-class MgAdaptAdvWidget : public QWidget\r
-{\r
- Q_OBJECT\r
-\r
-public:\r
- MgAdaptAdvWidget( QWidget* = 0, std::vector <std::string> * = nullptr, Qt::WindowFlags = 0 );\r
- ~MgAdaptAdvWidget();\r
- std::vector < std::string > * myOptions;\r
- QGridLayout *gridLayout_4;\r
- MgAdaptAdvWidgetTreeWidget *myOptionTable;\r
- QPushButton *addBtn;\r
- QSpacerItem *horizontalSpacer;\r
- QGroupBox *logGroupBox;\r
- QGridLayout *gridLayout_2;\r
- QGridLayout *gridLayout;\r
- QLabel *workingDirectoryLabel;\r
- QLineEdit *workingDirectoryLineEdit;\r
- QPushButton *workingDirectoryPushButton;\r
- QLabel *verboseLevelLabel;\r
- QSpinBox *verboseLevelSpin;\r
- QHBoxLayout *horizontalLayout;\r
- QCheckBox *logInFileCheck;\r
- QCheckBox *removeLogOnSuccessCheck;\r
- QCheckBox *keepWorkingFilesCheck;\r
-\r
- void AddOption( const char* name_value_type, bool isCustom = false );\r
- void GetOptionAndValue( QTreeWidgetItem * tblRow, QString& option, QString& value, bool& dflt );\r
- void setupWidget();\r
-public slots:\r
-\r
- void onAddOption();\r
- void itemChanged(QTreeWidgetItem * tblRow, int column);\r
- void onMeshDimChanged(ADAPTATION_MODE aMode);\r
-private slots:\r
- void _onWorkingDirectoryPushButton();\r
-private:\r
- void setOptionValue(QString& option, QString& value);\r
- std::map<QString, QTreeWidgetItem *> optionTreeWidgetItem;\r
- \r
- QTreeWidgetItem* getNewQTreeWidgetItem(QTreeWidget* table, const char* option, QString& name, bool isCustom);\r
-\r
-};\r
-\r
-enum { EDITABLE_ROLE = Qt::UserRole + 1, PARAM_NAME,\r
- NAME_COL = 0, VALUE_COL\r
- };\r
-\r
-\r
-\r
-class ItemDelegate: public QItemDelegate\r
-{\r
-public:\r
-\r
- ItemDelegate(QObject* parent=0): QItemDelegate(parent) {}\r
- QWidget* createEditor(QWidget *parent, const QStyleOptionViewItem &o, const QModelIndex &index) const;\r
-};\r
-\r
-class MgAdaptAdvWidgetTreeWidget : public QTreeWidget\r
-{\r
- Q_OBJECT\r
-public:\r
- MgAdaptAdvWidgetTreeWidget( QWidget* );\r
-\r
-protected:\r
- QModelIndex moveCursor( CursorAction, Qt::KeyboardModifiers );\r
- void keyPressEvent( QKeyEvent* );\r
-};\r
-\r
-\r
-#endif // MG_ADAPTGUI_HXX\r