X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_ShapeByMeshDlg.h;h=f249572f3fba2d9edb9876e5c1dd16b3694d2a51;hp=1f1a50c6e63174ba1082f4890693f9de520400ed;hb=8301b1e71a0a9833c5bcf7951b426949f647ae9f;hpb=d0f366c4a3a66a71b0be94f7a6e2d146f80a94c4 diff --git a/src/SMESHGUI/SMESHGUI_ShapeByMeshDlg.h b/src/SMESHGUI/SMESHGUI_ShapeByMeshDlg.h index 1f1a50c6e..f249572f3 100644 --- a/src/SMESHGUI/SMESHGUI_ShapeByMeshDlg.h +++ b/src/SMESHGUI/SMESHGUI_ShapeByMeshDlg.h @@ -1,115 +1,115 @@ -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE // -// 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. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// 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. +// 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. // -// 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 +// 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. // -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// 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_ShapeByMeshDlg.h -// Author : Edward AGAPOV -// Module : SMESH +// File : SMESHGUI_ShapeByMeshDlg.h +// Author : Edward AGAPOV, Open CASCADE S.A.S. +// +#ifndef SMESHGUI_SHAPEBYMESHDLG_H +#define SMESHGUI_SHAPEBYMESHDLG_H -#ifndef SMESHGUI_ShapeByMeshDlg_H -#define SMESHGUI_ShapeByMeshDlg_H +// SMESH includes +#include "SMESH_SMESHGUI.hxx" -#include +#include "SMESHGUI_Dialog.h" +#include "SMESHGUI_SelectionOp.h" -// IDL Headers +// IDL includes #include -#include CORBA_SERVER_HEADER(GEOM_Gen) #include CORBA_SERVER_HEADER(SMESH_Mesh) -class QCloseEvent; class QFrame; class QLineEdit; -class QPushButton; -class LightApp_SelectionMgr; -class SVTK_ViewWindow; class QButtonGroup; -class SMESHGUI; +class QGroupBox; /*! * \brief Dialog to publish a sub-shape of the mesh main shape * by selecting mesh elements */ -class SMESHGUI_ShapeByMeshDlg : public QDialog +class SMESHGUI_EXPORT SMESHGUI_ShapeByMeshDlg : public SMESHGUI_Dialog { Q_OBJECT public: - SMESHGUI_ShapeByMeshDlg( SMESHGUI* theModule, - const char* theName = 0); - virtual ~SMESHGUI_ShapeByMeshDlg(); - - void Init(); - void SetMesh (SMESH::SMESH_Mesh_ptr); - SMESH::SMESH_Mesh_ptr GetMesh () { return myMesh; } - GEOM::GEOM_Object_ptr GetShape(); - -signals: - - void PublishShape(); - void Close(); + SMESHGUI_ShapeByMeshDlg(bool isMultipleAllowed); + virtual ~SMESHGUI_ShapeByMeshDlg(); private: + QFrame* createMainFrame( QWidget* ); - void closeEvent (QCloseEvent* e); - void enterEvent (QEvent*); + QGroupBox* myElemTypeBox; + QButtonGroup* myElemTypeGroup; + QLineEdit* myElementId; + QLineEdit* myGeomName; -private slots: + bool myIsMultipleAllowed; + void setMultipleAllowed( bool ); - void onOk(); - void onClose(); + friend class SMESHGUI_ShapeByMeshOp; +}; - void onDeactivate(); +/*! + * \brief Operation to publish a sub-shape of the mesh main shape + * by selecting mesh elements + */ +class SMESHGUI_ShapeByMeshOp: public SMESHGUI_SelectionOp +{ + Q_OBJECT - void onSelectionDone(); - void onTypeChanged (int); - void onElemIdChanged (const QString&); +public: + SMESHGUI_ShapeByMeshOp( bool = false ); + virtual ~SMESHGUI_ShapeByMeshOp(); -private: + virtual LightApp_Dialog* dlg() const; - QFrame* createButtonFrame (QWidget*); - QFrame* createMainFrame (QWidget*); - //void displayPreview(); - //void erasePreview(); - void activateSelection(); - void setElementID(const QString&); + void Init(); + void SetMesh( SMESH::SMESH_Mesh_ptr ); + SMESH::SMESH_Mesh_ptr GetMesh(); + GEOM::GEOM_Object_ptr GetShape(); -private: +protected: + virtual void commitOperation(); + virtual void startOperation(); - QButtonGroup* myElemTypeGroup; - QLineEdit* myElementId; - QLineEdit* myGeomName; + void activateSelection(); + void setElementID( const QString& ); - QPushButton* myOkBtn; - QPushButton* myCloseBtn; +protected slots: + virtual bool onApply(); - SMESHGUI* mySMESHGUI; - LightApp_SelectionMgr* mySelectionMgr; - SVTK_ViewWindow* myViewWindow; +private slots: + void onSelectionDone(); + void onTypeChanged( int ); + void onElemIdChanged( const QString& ); +private: + SMESHGUI_ShapeByMeshDlg* myDlg; SMESH::SMESH_Mesh_var myMesh; GEOM::GEOM_Object_var myGeomObj; bool myIsManualIdEnter; bool myHasSolids; + bool myIsMultipleAllowed; }; #endif