Version: 8.3.0
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
SALOME GUI Developer
Todo List
Namespaces
Classes
Files
File List
idl
src
CAF
CAM
CASCatch
DDS
Event
GLViewer
GraphicsView
GuiHelpers
HelpBrowser
ImageComposer
LightApp
LogWindow
ObjBrowser
OBJECT
OCCViewer
OpenGLUtils
Plot2d
Prs
PVServerService
PVViewer
PyViewer
QDS
Qtx
QxScene
SALOME_PY
SALOME_PYQT
SALOME_SWIG
SalomeApp
Test
SalomeApp.h
SalomeApp_Application.cxx
SalomeApp_Application.h
SalomeApp_CheckFileDlg.cxx
SalomeApp_CheckFileDlg.h
SalomeApp_DataModel.cxx
SalomeApp_DataModel.h
SalomeApp_DataObject.cxx
SalomeApp_DataObject.h
SalomeApp_DoubleSpinBox.cxx
SalomeApp_DoubleSpinBox.h
SalomeApp_Engine_i.cxx
SalomeApp_Engine_i.h
SalomeApp_ExceptionHandler.cxx
SalomeApp_ExceptionHandler.h
SalomeApp_ExitDlg.cxx
SalomeApp_ExitDlg.h
SalomeApp_Filter.cxx
SalomeApp_Filter.h
SalomeApp_ImportOperation.cxx
SalomeApp_ImportOperation.h
SalomeApp_IntSpinBox.cxx
SalomeApp_IntSpinBox.h
SalomeApp_ListView.cxx
SalomeApp_ListView.h
SalomeApp_LoadStudiesDlg.cxx
SalomeApp_LoadStudiesDlg.h
SalomeApp_Module.cxx
SalomeApp_Module.h
SalomeApp_NoteBook.cxx
SalomeApp_NoteBook.h
SalomeApp_PyInterp.cxx
SalomeApp_PyInterp.h
SalomeApp_Study.cxx
SalomeApp_Study.h
SalomeApp_StudyPropertiesDlg.cxx
SalomeApp_StudyPropertiesDlg.h
SalomeApp_Tools.cxx
SalomeApp_Tools.h
SalomeApp_TypeFilter.cxx
SalomeApp_TypeFilter.h
SalomeApp_VisualState.cxx
SalomeApp_VisualState.h
Session
SOCC
SPlot2d
STD
Style
SUIT
SUITApp
SVTK
TOOLSGUI
TreeData
ViewerData
ViewerTools
VTKViewer
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
SalomeApp_ListView.h
Go to the documentation of this file.
1
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
2
//
3
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5
//
6
// This library is free software; you can redistribute it and/or
7
// modify it under the terms of the GNU Lesser General Public
8
// License as published by the Free Software Foundation; either
9
// version 2.1 of the License, or (at your option) any later version.
10
//
11
// This library is distributed in the hope that it will be useful,
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
// Lesser General Public License for more details.
15
//
16
// You should have received a copy of the GNU Lesser General Public
17
// License along with this library; if not, write to the Free Software
18
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
//
20
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21
//
22
23
// File : SalomeApp_ListView.h
24
// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
25
//
26
#ifndef SALOMEAPP_LISTVIEW_H
27
#define SALOMEAPP_LISTVIEW_H
28
29
//#include <QtxListView.h>
30
31
#include <
SUIT_PopupClient.h
>
32
33
#include <QTreeWidget>
34
#include <QTreeWidgetItem>
35
#include <QString>
36
#include <QLineEdit>
37
#include <QComboBox>
38
39
#include <TColStd_ListOfInteger.hxx>
40
#include <TColStd_ListOfReal.hxx>
41
42
class
QToolButton
;
43
44
// enumeration for ListView updating mode
45
enum
UpdateType
{
46
utCancel
= -1,
// cancel updating
47
utNone
= 0,
// needs no any update
48
utUpdateItem
,
// update one item
49
utUpdateParent
,
// update parent item too
50
utUpdateViewer
,
// update all viewer
51
utUpdateAll
// strong update
52
};
53
54
class
SalomeApp_ListViewItem
;
55
class
SalomeApp_EntityEdit
;
56
61
class
SalomeApp_ListView
:
public
QTreeWidget
/*QtxListView*/
,
public
SUIT_PopupClient
{
62
63
Q_OBJECT
64
65
public
:
66
// constructor
67
SalomeApp_ListView
(
QWidget
*parent);
68
// destructor
69
virtual
~SalomeApp_ListView
();
70
71
// updates list viewer
72
virtual
void
updateViewer
();
73
// updtes currently selected item(s)
74
virtual
void
updateSelected
();
75
76
// fills popup with items
77
virtual
QString
popupClientType
()
const
;
78
virtual
void
contextMenuPopup
(
QMenu
* );
79
80
// setting editing of items availbale/not available
81
void
enableEditing
(
bool
theFlag);
82
// says if editing is enabled
83
bool
isEnableEditing
();
84
// accepts user input by calling finishEditing(true)
85
void
accept
();
86
87
// clears view
88
void
clear
();
89
90
// event filter
91
bool
eventFilter
(
QObject
*
object
,
QEvent
* event) ;
92
93
// gets current tooltip for list view
94
// returns valid rect in success
95
QRect
tip
(QPoint aPos, QString& aText, QRect& dspRect, QFont& dspFnt)
const
;
96
97
protected
:
98
// handler for resize event
99
void
resizeEvent
(QResizeEvent* e);
100
// handler for paint event
101
void
viewportPaintEvent
(QPaintEvent* e);
102
// finishes editing of entity
103
virtual
UpdateType
finishEditing
(
bool
ok);
104
105
// returns true if mouse events are enabled
106
bool
isMouseEnabled
();
107
// enables/disables mouse events (excluding MouseMove)
108
void
enableMouse
(
bool
enable);
109
110
protected
slots:
111
// called when selection changed in list
112
virtual
void
onSelectionChanged
();
113
// called when user finishes in editing of item
114
void
onEditOk
();
115
// called when user cancels item editing
116
void
onEditCancel
();
117
// called when columns sizes are changed
118
void
onHeaderSizeChange
(
int
,
int
,
int
);
119
120
protected
:
121
SalomeApp_EntityEdit
*
myEdit
;
122
SalomeApp_ListViewItem
*
myEditedItem
;
123
bool
myEditingEnabled
;
124
bool
myMouseEnabled
;
125
};
126
127
128
class
SalomeApp_EditBox
:
public
QLineEdit
129
{
130
Q_OBJECT
131
132
public
:
133
SalomeApp_EditBox
(
QWidget
* parent);
134
135
protected
:
136
void
keyPressEvent
(QKeyEvent* e);
137
138
signals:
139
void
escapePressed
();
140
};
141
142
class
SalomeApp_ComboBox
:
public
QComboBox
143
{
144
Q_OBJECT
145
146
public
:
147
SalomeApp_ComboBox
(
bool
rw,
QWidget
* parent = 0,
const
char
* name = 0);
148
149
int
findItem
(
const
QString& theText);
150
void
insertItem
(
const
QString& theValue,
int
theIndex = -1);
151
void
insertList
(
const
QStringList& theList);
152
void
insertItem
(
const
int
theValue);
153
void
insertList
(
const
TColStd_ListOfInteger& theList);
154
void
insertItem
(
const
double
theValue);
155
void
insertList
(
const
TColStd_ListOfReal& theList);
156
};
157
158
class
SalomeApp_EntityEdit
:
public
QWidget
159
{
160
Q_OBJECT
161
162
public
:
163
// enum for edit control type
164
enum
{
165
etLineEdit
,
// simple edit box
166
etComboBox
,
// non-editable combo box
167
etComboEdit
// editable combo box
168
};
169
// enum for value type
170
enum
{
171
vtString
,
// string
172
vtInteger
,
// integer value
173
vtDouble
// double value
174
};
175
// enum for insertion order
176
enum
{
177
atBottom
,
178
atTop
,
179
atBeforeCurrent
,
180
atAfterCurrent
181
};
182
// enum for edit box buttons (Apply = Cancel)
183
enum
{
184
btApply
= 0x0001,
185
btCancel
= 0x0002
186
};
187
188
public
:
189
SalomeApp_EntityEdit
(
QWidget
* parent,
190
int
controlType =
etLineEdit
,
191
int
valueType =
vtString
,
192
bool
butApply =
false
,
193
bool
butCancel =
false
);
194
~SalomeApp_EntityEdit
();
195
196
void
finishEditing
();
197
void
clear
();
198
QString
getText
();
199
void
setText
(
const
QString& theText );
200
void
insertItem
(
const
QString& theValue,
201
bool
theSetCurrent =
false
,
202
int
theOrder =
atBottom
);
203
void
insertList
(
const
QStringList& theList,
204
const
int
theCurrent = -1 );
205
void
insertItem
(
const
int
theValue,
206
bool
theSetCurrent =
false
);
207
void
insertList
(
const
TColStd_ListOfInteger& theList,
208
const
int
theCurrent = -1 );
209
void
insertItem
(
const
double
theValue,
210
bool
theSetCurrent =
false
);
211
void
insertList
(
const
TColStd_ListOfReal& theList,
212
const
int
theCurrent = -1 );
213
QWidget
*
getControl
();
214
void
setFocus
();
215
void
setValidator
(
const
QValidator
*);
216
void
showButtons
(
bool
show);
217
void
setDuplicatesEnabled
(
bool
enabled);
218
219
protected
:
220
void
keyPressEvent
( QKeyEvent * e);
221
222
private
slots:
223
void
onComboActivated
(
const
QString&);
224
void
onTextChanged
(
const
QString&);
225
void
onApply
();
226
void
onCancel
();
227
signals:
228
void
returnPressed
();
229
void
escapePressed
();
230
231
private
:
232
// Widgets
233
SalomeApp_EditBox
*
myEdit
;
234
SalomeApp_ComboBox
*
myCombo
;
235
QToolButton
*
myApplyBtn
;
236
QToolButton
*
myCancelBtn
;
237
QString
myString
;
238
};
239
240
class
SalomeApp_ListViewItem
:
public
QTreeWidgetItem
241
{
242
public
:
243
SalomeApp_ListViewItem
(
SalomeApp_ListView
* );
244
SalomeApp_ListViewItem
(
SalomeApp_ListView
*,
245
SalomeApp_ListViewItem
* );
246
SalomeApp_ListViewItem
(
SalomeApp_ListView
*,
247
const
QStringList&,
248
const
bool
=
false
);
249
SalomeApp_ListViewItem
(
SalomeApp_ListViewItem
*,
250
const
QStringList&,
251
const
bool
=
false
);
252
SalomeApp_ListViewItem
(
SalomeApp_ListView
*,
253
SalomeApp_ListViewItem
*,
254
const
QString&,
255
const
bool
=
false
);
256
SalomeApp_ListViewItem
(
SalomeApp_ListViewItem
*,
257
SalomeApp_ListViewItem
*,
258
const
QString&,
259
const
bool
=
false
);
260
SalomeApp_ListViewItem
(
SalomeApp_ListView
*,
261
SalomeApp_ListViewItem
*,
262
const
QString& theName,
263
const
QString& theValue,
264
const
bool
=
false
);
265
SalomeApp_ListViewItem
(
SalomeApp_ListViewItem
*,
266
SalomeApp_ListViewItem
*,
267
const
QString&,
268
const
QString&,
269
const
bool
=
false
);
270
~SalomeApp_ListViewItem
();
271
272
QString
fullName
();
273
void
openAllLevels
();
274
virtual
void
updateAllLevels
();
275
bool
isEditable
()
const
;
276
void
setEditable
(
bool
theEditable);
277
278
// returns true if entitiy is accepted after editing
279
bool
isAccepted
()
const
;
280
// set entity accepted or not after editing
281
void
setAccepted
(
bool
theAccepted);
282
283
// returns name of entity (as default it is text in first column)
284
virtual
QString
getName
()
const
;
285
// sets name of entity (as default it is text in first column)
286
virtual
UpdateType
setName
(
const
QString& theName);
287
288
// returns value of entity (as default it is text in second column)
289
virtual
QString
getValue
()
const
;
290
// sets value of entity (as default it is text in second column)
291
virtual
UpdateType
setValue
(
const
QString& theValue);
292
293
// creates control for editing and fills it with values
294
SalomeApp_EntityEdit
*
startEditing
();
295
// fills widget with initial values (list or single value)
296
virtual
void
fillWidgetWithValues
(
SalomeApp_EntityEdit
* theWidget);
297
// finishes editing of entity
298
virtual
UpdateType
finishEditing
(
SalomeApp_EntityEdit
* theWidget);
299
300
// returns type of edit control (0 - edit box, 1 - combo box, 2 - editable combo box)
301
virtual
int
getEditingType
();
302
// sets type of edit control (0 - edit box, 1 - combo box, 2 - editable combo box)
303
virtual
void
setEditingType
(
const
int
);
304
// returns edited column
305
virtual
int
getEditedColumn
();
306
// returns type of edited value (string, int, double)
307
virtual
int
getValueType
();
308
// sets type of edited value (string, int, double)
309
virtual
void
setValueType
(
const
int
);
310
311
// gets user type
312
virtual
int
getUserType
();
313
// sets user type
314
virtual
void
setUserType
(
const
int
);
315
316
// returns buttons for editing widget
317
virtual
int
getButtons
();
318
// sets buttons for editing widget
319
virtual
void
setButtons
(
const
int
);
320
// returns text for tooltip
321
QString
tipText
();
322
// calculates rectangle which should contain items tip
323
QRect
tipRect
();
324
// calculates rect of item text in viewport coordinates
325
QRect
textRect
(
const
int
column)
const
;
326
// calculates full rect of item data in viewport coordinates
327
QRect
itemRect
(
const
int
column)
const
;
328
329
protected
:
330
// initialization
331
void
init
();
332
int
depth
()
const
;
333
334
private
:
335
bool
myEditable
;
336
bool
myAccepted
;
337
int
myEditingType
;
338
int
myValueType
;
339
int
myButtons
;
340
int
myUserType
;
// user are welcome to put additional data here and use it in fillWidgetWithValues()
341
};
342
343
344
#endif
src
SalomeApp
SalomeApp_ListView.h
Copyright © 2007-2017 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS