Salome HOME
f39e7747a83c9344baa3b0289c955ecd28eddd00
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_SelectionIdsOp.h
1 //  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
3 // 
4 //  This library is free software; you can redistribute it and/or 
5 //  modify it under the terms of the GNU Lesser General Public 
6 //  License as published by the Free Software Foundation; either 
7 //  version 2.1 of the License. 
8 // 
9 //  This library is distributed in the hope that it will be useful, 
10 //  but WITHOUT ANY WARRANTY; without even the implied warranty of 
11 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
12 //  Lesser General Public License for more details. 
13 // 
14 //  You should have received a copy of the GNU Lesser General Public 
15 //  License along with this library; if not, write to the Free Software 
16 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
17 // 
18 //  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
19 //
20 //
21 //
22 //  File   : SMESHGUI_SelectionIdsOp.h
23 //  Author : Alexander SOLOVYOV
24 //  Module : SMESH
25
26
27 #ifndef SMESHGUI_SelectionIdsOp_H
28 #define SMESHGUI_SelectionIdsOp_H
29
30 #include <SMESHGUI_SelectionOp.h>
31
32 #include <SALOMEconfig.h>
33 #include CORBA_SERVER_HEADER(SMESH_Mesh)
34
35 class SMESH_Actor;
36
37 /*
38   Class       : SMESHGUI_SelectionIdsOp
39   Description : Base operation for all operations using selection mesh elements by id on one mesh
40                 In order to allow user to edit ids "by hands" the dialog must call setReadOnly( .., false )
41                 with id or object selection widget instead '..'
42                 All other necessary actions are implemented here
43 */
44
45 class SUIT_SelectionFilter;
46
47 class SMESHGUI_SelectionIdsOp : public SMESHGUI_SelectionOp
48
49   Q_OBJECT
50
51 public:
52   typedef QValueList<int> IdList;
53
54 public:
55   SMESHGUI_SelectionIdsOp( const Selection_Mode = ActorSelection );
56   virtual ~SMESHGUI_SelectionIdsOp();
57
58   static void   extractIds( const QStringList&, IdList&, const QChar );
59     
60 protected:
61   virtual void  startOperation();
62   virtual void  commitOperation();
63   virtual void  abortOperation();
64   virtual void  selectionDone();
65
66   SMESH::SMESH_Mesh_var  mesh() const;
67   SMESH_Actor*           actor() const;
68   void                   selectedIds( const int, IdList& ) const;
69   void                   extractIds( const QStringList&, IdList& ) const;
70
71 protected slots:
72   virtual void  onTextChanged( int, const QStringList& );
73
74 private:
75   SMESH::SMESH_Mesh_var       myMesh;
76 };
77
78 #endif