X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_GroupDlg.h;h=2a01d48af31035cc2b0307426d395a9209458265;hp=3d741d43d0eb6a25034436d7842262ee24349272;hb=d8333f0d47ee2f8d80eddaed5eb022d996e3859a;hpb=4ff5bd61540272713e48de1eee75625028c32155 diff --git a/src/SMESHGUI/SMESHGUI_GroupDlg.h b/src/SMESHGUI/SMESHGUI_GroupDlg.h index 3d741d43d..2a01d48af 100644 --- a/src/SMESHGUI/SMESHGUI_GroupDlg.h +++ b/src/SMESHGUI/SMESHGUI_GroupDlg.h @@ -1,172 +1,211 @@ -// SMESH SMESHGUI : GUI for SMESH component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 CEA -// -// 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.org +// 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 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. // -// File : SMESHGUI_GroupDlg.h -// Author : Natalia KOPNOVA -// Module : SMESH -// $Header$ - -#ifndef DIALOGBOX_GROUP_H -#define DIALOGBOX_GROUP_H +// 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 +// +// SMESH SMESHGUI : GUI for SMESH component +// File : SMESHGUI_GroupDlg.h +// Author : Natalia KOPNOVA, Open CASCADE S.A.S. +// +#ifndef SMESHGUI_GROUPDLG_H +#define SMESHGUI_GROUPDLG_H -#include "LightApp_SelectionMgr.h" -//#include "SMESH_TypeFilter.hxx" -#include "SUIT_SelectionFilter.h" +// SMESH includes +#include "SMESH_SMESHGUI.hxx" -// QT Includes -#include -#include +// Qt includes +#include +#include +#include -// IDL Headers +// IDL includes #include #include CORBA_SERVER_HEADER(SMESH_Mesh) #include CORBA_SERVER_HEADER(SMESH_Group) class QLineEdit; class QButtonGroup; -class QGroupBox; -class QListBox; +class QListWidget; +class QMenu; class QPushButton; +class QToolButton; class QCheckBox; -class QWidgetStack; +class QStackedWidget; +class QAction; class SMESHGUI; class SMESH_Actor; class SMESHGUI_FilterDlg; +class SMESHGUI_ShapeByMeshOp; +class QtxColorButton; +class SUIT_Operation; class SVTK_Selector; -class SVTK_ViewWindow; +class SUIT_SelectionFilter; +class LightApp_SelectionMgr; //================================================================================= // class : SMESHGUI_GroupDlg // purpose : //================================================================================= -class SMESHGUI_GroupDlg : public QDialog +class SMESHGUI_EXPORT SMESHGUI_GroupDlg : public QDialog { - Q_OBJECT + Q_OBJECT public: - SMESHGUI_GroupDlg( SMESHGUI*, - const char* name = 0, - SMESH::SMESH_Mesh_ptr theMesh = SMESH::SMESH_Mesh::_nil(), - bool modal = FALSE, WFlags fl = 0 ); - SMESHGUI_GroupDlg( SMESHGUI*, - const char* name, - SMESH::SMESH_GroupBase_ptr theGroup, - bool modal = FALSE, WFlags fl = 0 ); - ~SMESHGUI_GroupDlg(); - + SMESHGUI_GroupDlg( SMESHGUI*, + SMESH::SMESH_Mesh_ptr = SMESH::SMESH_Mesh::_nil() ); + SMESHGUI_GroupDlg( SMESHGUI*, + SMESH::SMESH_GroupBase_ptr, + const bool theIsConvert = false ); + ~SMESHGUI_GroupDlg(); + + static QString GetDefaultName( const QString& ); + public slots: - - void onAdd(); - void onRemove(); - + void onAdd(); + void onRemove(); private slots: - - void onTypeChanged(int id); - void onGrpTypeChanged(int id); - - void onOK(); - void onClose(); - bool onApply(); - void onDeactivate(); - - void onListSelectionChanged(); - void onObjectSelectionChanged(); - - void onSelectSubMesh(bool on); - void onSelectGroup(bool on); - void onSelectGeomGroup(bool on); - void onSelectColorGroup(bool on); - void setCurrentSelection(); - - void setFilters(); - void onSort(); - - void onNameChanged(const QString& text); - void onNbColorsChanged(const QString& text); - void onFilterAccepted(); + void onTypeChanged( int ); + void onGrpTypeChanged( int ); + void onColorChanged( QColor ); + + void onOK(); + void onClose(); + bool onApply(); + void onHelp(); + void onDeactivate(); + void onVisibilityChanged(); + + void onListSelectionChanged(); + void onObjectSelectionChanged(); + + void onSelectSubMesh( bool ); + void onSelectGroup( bool ); + void onSelectGeomGroup( bool ); + void setCurrentSelection(); + + void setFilters(); + void onSort(); + + void onNameChanged( const QString& ); + void onFilterAccepted(); + + void onGeomPopup( QAction* ); + void onGeomSelectionButton( bool ); + + void onPublishShapeByMeshDlg( SUIT_Operation* ); + void onCloseShapeByMeshDlg( SUIT_Operation* ); private: - void initDialog(bool create); - void init(SMESH::SMESH_Mesh_ptr theMesh); - void init(SMESH::SMESH_GroupBase_ptr theGroup); - void closeEvent(QCloseEvent* e); - void enterEvent (QEvent*); - void hideEvent (QHideEvent*); /* ESC key */ - void setSelectionMode(int theMode); - void updateButtons(); - - SMESHGUI* mySMESHGUI; /* Current SMESHGUI object */ - LightApp_SelectionMgr* mySelectionMgr; /* User shape selection */ - SMESH_Actor* myActor; /* Current mesh actor */ - int myGrpTypeId; /* Current group type id : standalone or group on geometry */ - int myTypeId; /* Current type id = radio button id */ - QLineEdit* myCurrentLineEdit; /* Current LineEdit */ - SVTK_Selector* mySelector; - - QPushButton* myMeshGroupBtn; - QLineEdit* myMeshGroupLine; - - QButtonGroup* myTypeGroup; - QLineEdit* myName; - - QButtonGroup* myGrpTypeGroup; - - QWidgetStack* myWGStack; - QListBox* myElements; - QPushButton* myFilter; - - QCheckBox* mySelectSubMesh; - QPushButton* mySubMeshBtn; - QLineEdit* mySubMeshLine; - - QCheckBox* mySelectGroup; - QPushButton* myGroupBtn; - QLineEdit* myGroupLine; - - QCheckBox* mySelectColorGroup; - QLineEdit* myColorGroupLine; - - QCheckBox* mySelectGeomGroup; - QPushButton* myGeomGroupBtn; - QLineEdit* myGeomGroupLine; - - SMESH::SMESH_Mesh_var myMesh; - SMESH::SMESH_Group_var myGroup; - SMESH::SMESH_GroupOnGeom_var myGroupOnGeom; - QValueList myIdList; - GEOM::GEOM_Object_var myGeomGroup; - - int mySelectionMode; - //Handle(SMESH_TypeFilter) myMeshFilter; - //Handle(SMESH_TypeFilter) mySubMeshFilter; - //Handle(SMESH_TypeFilter) myGroupFilter; - SUIT_SelectionFilter* myMeshFilter; - SUIT_SelectionFilter* mySubMeshFilter; - SUIT_SelectionFilter* myGroupFilter; - - SMESHGUI_FilterDlg* myFilterDlg; - - bool myCreate, myIsBusy; + void initDialog( bool ); + void init( SMESH::SMESH_Mesh_ptr ); + void init( SMESH::SMESH_GroupBase_ptr, + const bool theIsConvert = false ); + void closeEvent( QCloseEvent* ); + void enterEvent( QEvent* ); + void hideEvent( QHideEvent* ); /* ESC key */ + void keyPressEvent( QKeyEvent* ); + void setSelectionMode( int ); + void updateButtons(); + void updateGeomPopup(); + bool SetAppropriateActor(); + void setShowEntityMode(); + void restoreShowEntityMode(); + + bool IsActorVisible( SMESH_Actor* ); + + void setGroupColor( const SALOMEDS::Color& ); + SALOMEDS::Color getGroupColor() const; + + void setGroupQColor( const QColor& ); + QColor getGroupQColor() const; + + void setDefaultGroupColor(); + + SMESHGUI* mySMESHGUI; /* Current SMESHGUI object */ + LightApp_SelectionMgr* mySelectionMgr; /* User shape selection */ + int myGrpTypeId; /* Current group type id : standalone or group on geometry */ + int myTypeId; /* Current type id = radio button id */ + int myStoredShownEntity; /* Store ShowEntity mode of myMesh */ + QLineEdit* myCurrentLineEdit; /* Current LineEdit */ + SVTK_Selector* mySelector; + + QPushButton* myMeshGroupBtn; + QLineEdit* myMeshGroupLine; + + QButtonGroup* myTypeGroup; + QLineEdit* myName; + QString myOldName; + + QButtonGroup* myGrpTypeGroup; + + QStackedWidget* myWGStack; + QListWidget* myElements; + QPushButton* myFilter; + + QCheckBox* mySelectSubMesh; + QPushButton* mySubMeshBtn; + QLineEdit* mySubMeshLine; + + QCheckBox* mySelectGroup; + QPushButton* myGroupBtn; + QLineEdit* myGroupLine; + + QtxColorButton* myColorBtn; + + QCheckBox* mySelectGeomGroup; + QToolButton* myGeomGroupBtn; + QLineEdit* myGeomGroupLine; + QMenu* myGeomPopup; + + QPushButton* myOKBtn; + QPushButton* myApplyBtn; + QPushButton* myCloseBtn; + QPushButton* myHelpBtn; + + SMESHGUI_ShapeByMeshOp* myShapeByMeshOp; + + SMESH::SMESH_Mesh_var myMesh; + QList myActorsList; + SMESH::SMESH_Group_var myGroup; + SMESH::SMESH_GroupOnGeom_var myGroupOnGeom; + QList myIdList; + GEOM::ListOfGO_var myGeomObjects; + + int mySelectionMode; + //Handle(SMESH_TypeFilter) myMeshFilter; + //Handle(SMESH_TypeFilter) mySubMeshFilter; + //Handle(SMESH_TypeFilter) myGroupFilter; + SUIT_SelectionFilter* myMeshFilter; + SUIT_SelectionFilter* mySubMeshFilter; + SUIT_SelectionFilter* myGroupFilter; + SUIT_SelectionFilter* myGeomFilter; + + SMESHGUI_FilterDlg* myFilterDlg; + + bool myCreate, myIsBusy; + + QString myHelpFileName; + + QMap myActions; + + bool myNameChanged; //added by skl for IPAL19574 }; -#endif // DIALOGBOX_GROUP_H +#endif // SMESHGUI_GROUPDLG_H