-// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// Copyright (C) 2007-2013 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.
//
-// 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 <qdialog.h>
+#include "SMESHGUI_Dialog.h"
+#include "SMESHGUI_SelectionOp.h"
-// IDL Headers
+// IDL includes
#include <SALOMEconfig.h>
-#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