Редакция 226 | Только различия | Учитывать пробелы | Содержимое файла | Авторство | Последнее изменение | Открыть журнал | RSS
Редакция 226 | Редакция 227 | ||
---|---|---|---|
1 | #ifndef DELEGATE_H
|
1 | #ifndef DELEGATE_H
|
2 | #define DELEGATE_H
|
2 | #define DELEGATE_H
|
3 | 3 | ||
4 | #include <QItemDelegate>
|
4 | #include <QItemDelegate>
|
5 | #include <QModelIndex>
|
5 | #include <QModelIndex>
|
6 | #include <QObject>
|
6 | #include <QObject>
|
7 | #include <QSize>
|
7 | #include <QSize>
|
8 | #include <QSpinBox>
|
8 | #include <QSpinBox>
|
9 | #include <QSqlQuery>
|
9 | #include <QSqlQuery>
|
10 | #include <QtSql>
|
10 | #include <QtSql>
|
11 | #include <QtGui>
|
11 | #include <QtGui>
|
12 | #include <QSqlDatabase>
|
12 | #include <QSqlDatabase>
|
13 | #include <QMessageBox>
|
13 | #include <QMessageBox>
|
14 | 14 | ||
15 | #include "iconform.h"
|
15 | #include "iconform.h"
|
16 | #include "fileform.h"
|
16 | #include "fileform.h"
|
17 | 17 | ||
18 | //#include <QMainWindow>
|
18 | //#include <QMainWindow>
|
19 | //! [0]
|
19 | //! [0]
|
20 | 20 | ||
21 | 21 | ||
22 | typedef struct field { |
22 | typedef struct field { |
23 | 23 | ||
24 | QString ID;
|
24 | QString ID;
|
25 | QString FieldName;
|
25 | QString FieldName;
|
26 | QString FieldAlias;
|
26 | QString FieldAlias;
|
27 | QString FieldType;
|
27 | QString FieldType;
|
28 | QString DefaultValue;
|
28 | QString DefaultValue;
|
29 | QString ClassIdentifer;
|
29 | QString ClassIdentifer;
|
30 | QString Comment;
|
30 | QString Comment;
|
31 | 31 | ||
32 | } TField; // ýòà ñòðóêòóðà îïèñûâàåò ïîëå |
32 | } TField; // ýòà ñòðóêòóðà îïèñûâàåò ïîëå |
33 | 33 | ||
34 | 34 | ||
35 | 35 | ||
36 | class SpinBoxDelegate : public QItemDelegate |
36 | class SpinBoxDelegate : public QItemDelegate |
37 | {
|
37 | {
|
38 | Q_OBJECT |
38 | Q_OBJECT |
39 | 39 | ||
40 | public: |
40 | public: |
41 | SpinBoxDelegate(QObject *parent = 0); |
41 | SpinBoxDelegate(QObject *parent = 0); |
42 | 42 | ||
43 | QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, |
43 | QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, |
44 | const QModelIndex &index) const; |
44 | const QModelIndex &index) const; |
45 | 45 | ||
46 | void setEditorData(QWidget *editor, const QModelIndex &index) const; |
46 | void setEditorData(QWidget *editor, const QModelIndex &index) const; |
47 | void setModelData(QWidget *editor, QAbstractItemModel *model, |
47 | void setModelData(QWidget *editor, QAbstractItemModel *model, |
48 | const QModelIndex &index) const; |
48 | const QModelIndex &index) const; |
49 | 49 | ||
50 | void updateEditorGeometry(QWidget *editor, |
50 | void updateEditorGeometry(QWidget *editor, |
51 | const QStyleOptionViewItem &option, const QModelIndex &index) const; |
51 | const QStyleOptionViewItem &option, const QModelIndex &index) const; |
52 | 52 | ||
53 | 53 | ||
54 | 54 | ||
55 | void setInctance(QString newInctance); |
55 | void setInctance(QString newInctance); |
56 | void getItems(); // ïîëó÷àåì ñâÿçàííûé ñïèñîê |
56 | void getItems(); // ïîëó÷àåì ñâÿçàííûé ñïèñîê |
57 | 57 | ||
58 | 58 | ||
59 | 59 | ||
60 | 60 | ||
61 | private: |
61 | private: |
62 | 62 | ||
63 | 63 | ||
64 | QString inctance; // òàáëèöà-õðàíèëèùå, îòêóäà áóäåì áðàòü ñïèñîê |
64 | QString inctance; // òàáëèöà-õðàíèëèùå, îòêóäà áóäåì áðàòü ñïèñîê |
65 | QMap <QString, QString> items; // çäåñü áóäåì õðàíèòü ñâÿçàííûé ñïèñîê èìåò îáúåêòîâ è èõ èäåíòèôèêàòîðîâ ID |
65 | QMap <QString, QString> items; // çäåñü áóäåì õðàíèòü ñâÿçàííûé ñïèñîê èìåò îáúåêòîâ è èõ èäåíòèôèêàòîðîâ ID |
66 | 66 | ||
67 | }; |
67 | }; |
68 | 68 | ||
69 | 69 | ||
70 | 70 | ||
71 | 71 | ||
72 | 72 | ||
73 | 73 | ||
74 | 74 | ||
75 | class FilterConditionDelegate : public QItemDelegate |
75 | class FilterConditionDelegate : public QItemDelegate |
76 | {
|
76 | {
|
77 | Q_OBJECT |
77 | Q_OBJECT |
78 | 78 | ||
79 | public: |
79 | public: |
80 | FilterConditionDelegate(QObject *parent = 0); |
80 | FilterConditionDelegate(QObject *parent = 0); |
81 | 81 | ||
82 | QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, |
82 | QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, |
83 | const QModelIndex &index) const; |
83 | const QModelIndex &index) const; |
84 | 84 | ||
85 | void setEditorData(QWidget *editor, const QModelIndex &index) const; |
85 | void setEditorData(QWidget *editor, const QModelIndex &index) const; |
86 | void setModelData(QWidget *editor, QAbstractItemModel *model, |
86 | void setModelData(QWidget *editor, QAbstractItemModel *model, |
87 | const QModelIndex &index) const; |
87 | const QModelIndex &index) const; |
88 | 88 | ||
89 | void updateEditorGeometry(QWidget *editor, |
89 | void updateEditorGeometry(QWidget *editor, |
90 | const QStyleOptionViewItem &option, const QModelIndex &index) const; |
90 | const QStyleOptionViewItem &option, const QModelIndex &index) const; |
91 | 91 | ||
92 | 92 | ||
93 | 93 | ||
94 | void setClassID(QString newClassID); |
94 | void setClassID(QString newClassID); |
95 | // void getItems(); // ïîëó÷àåì ñâÿçàííûé ñïèñîê
|
95 | // void getItems(); // ïîëó÷àåì ñâÿçàííûé ñïèñîê
|
96 | 96 | ||
97 | void setItems(QStringList new_items){items = new_items;} |
97 | void setItems(QStringList new_items){items = new_items;} |
98 | 98 | ||
99 | 99 | ||
100 | private: |
100 | private: |
101 | 101 | ||
102 | 102 | ||
103 | QString class_id; // òàáëèöà-õðàíèëèùå, îòêóäà áóäåì áðàòü ñïèñîê |
103 | QString class_id; // òàáëèöà-õðàíèëèùå, îòêóäà áóäåì áðàòü ñïèñîê |
104 | // QMap <QString, QString> items; // çäåñü áóäåì õðàíèòü ñâÿçàííûé ñïèñîê èìåò îáúåêòîâ è èõ èäåíòèôèêàòîðîâ ID
|
104 | // QMap <QString, QString> items; // çäåñü áóäåì õðàíèòü ñâÿçàííûé ñïèñîê èìåò îáúåêòîâ è èõ èäåíòèôèêàòîðîâ ID
|
105 | QStringList items; // ñïèñîê |
105 | QStringList items; // ñïèñîê |
106 | }; |
106 | }; |
107 | 107 | ||
108 | 108 | ||
109 | 109 | ||
110 | class FilterValueDelegate : public QItemDelegate |
110 | class FilterValueDelegate : public QItemDelegate |
111 | {
|
111 | {
|
112 | Q_OBJECT |
112 | Q_OBJECT |
113 | 113 | ||
114 | 114 | ||
115 | 115 | ||
116 | 116 | ||
117 | 117 | ||
118 | 118 | ||
119 | 119 | ||
120 | public: |
120 | public: |
121 | FilterValueDelegate(QObject *parent = 0); |
121 | FilterValueDelegate(QObject *parent = 0); |
122 | 122 | ||
123 | QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, |
123 | QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, |
124 | const QModelIndex &index) const; |
124 | const QModelIndex &index) const; |
125 | 125 | ||
126 | void setEditorData(QWidget *editor, const QModelIndex &index) const; |
126 | void setEditorData(QWidget *editor, const QModelIndex &index) const; |
127 | void setModelData(QWidget *editor, QAbstractItemModel *model, |
127 | void setModelData(QWidget *editor, QAbstractItemModel *model, |
128 | const QModelIndex &index) const; |
128 | const QModelIndex &index) const; |
129 | 129 | ||
130 | void updateEditorGeometry(QWidget *editor, |
130 | void updateEditorGeometry(QWidget *editor, |
131 | const QStyleOptionViewItem &option, const QModelIndex &index) const; |
131 | const QStyleOptionViewItem &option, const QModelIndex &index) const; |
132 | 132 | ||
133 | 133 | ||
134 | 134 | ||
135 | void setClassID(QString newClassID); |
135 | void setClassID(QString newClassID); |
136 | // void getItems(); // ïîëó÷àåì ñâÿçàííûé ñïèñîê
|
136 | // void getItems(); // ïîëó÷àåì ñâÿçàííûé ñïèñîê
|
137 | 137 | ||
138 | void setItems(QStringList new_items){items = new_items;} |
138 | void setItems(QStringList new_items){items = new_items;} |
139 | 139 | ||
140 | 140 | ||
141 | private: |
141 | private: |
142 | 142 | ||
143 | 143 | ||
144 | QString class_id; // òàáëèöà-õðàíèëèùå, îòêóäà áóäåì áðàòü ñïèñîê |
144 | QString class_id; // òàáëèöà-õðàíèëèùå, îòêóäà áóäåì áðàòü ñïèñîê |
145 | // QMap <QString, QString> items; // çäåñü áóäåì õðàíèòü ñâÿçàííûé ñïèñîê èìåò îáúåêòîâ è èõ èäåíòèôèêàòîðîâ ID
|
145 | // QMap <QString, QString> items; // çäåñü áóäåì õðàíèòü ñâÿçàííûé ñïèñîê èìåò îáúåêòîâ è èõ èäåíòèôèêàòîðîâ ID
|
146 | mutable QStringList items; // ñïèñîê |
146 | mutable QStringList items; // ñïèñîê |
147 | static QString getClassInctanc(QString class_id);//îïðåäåëÿåì õðàíèëèùå îáúåêòîâ |
147 | static QString getClassInctanc(QString class_id);//îïðåäåëÿåì õðàíèëèùå îáúåêòîâ |
148 | static QString getFieldType(QString class_id, QString fieldName);//îïðåäåëÿåì òèï äàííûõ ïîëÿ |
148 | static QString getFieldType(QString class_id, QString fieldName);//îïðåäåëÿåì òèï äàííûõ ïîëÿ |
149 | static TField getField(const QModelIndex &index); // ïî èíäåêñó (â òàáëèöå ôèëüòðîâ) ïîëó÷èì èíôîðìàöèþ î ïîëå |
149 | static TField getField(const QModelIndex &index); // ïî èíäåêñó (â òàáëèöå ôèëüòðîâ) ïîëó÷èì èíôîðìàöèþ î ïîëå |
- | 150 | static QMap<QString, QString> getItems(QString inctance); // âîçâðàùàåì ñïèñîê âñåõ çíà÷åíèé èç òàáëèöû-õðàíèëèùà |
|
- | 151 | ||
150 | }; |
152 | }; |
151 | 153 | ||
152 | 154 | ||
153 | 155 | ||
154 | 156 | ||
155 | //! [0]
|
157 | //! [0]
|
156 | class FilterSpinBoxDelegate : public QItemDelegate |
158 | class FilterSpinBoxDelegate : public QItemDelegate |
157 | {
|
159 | {
|
158 | Q_OBJECT |
160 | Q_OBJECT |
159 | 161 | ||
160 | public: |
162 | public: |
161 | FilterSpinBoxDelegate(QObject *parent = 0); |
163 | FilterSpinBoxDelegate(QObject *parent = 0); |
162 | 164 | ||
163 | QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, |
165 | QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, |
164 | const QModelIndex &index) const; |
166 | const QModelIndex &index) const; |
165 | 167 | ||
166 | void setEditorData(QWidget *editor, const QModelIndex &index) const; |
168 | void setEditorData(QWidget *editor, const QModelIndex &index) const; |
167 | void setModelData(QWidget *editor, QAbstractItemModel *model, |
169 | void setModelData(QWidget *editor, QAbstractItemModel *model, |
168 | const QModelIndex &index) const; |
170 | const QModelIndex &index) const; |
169 | 171 | ||
170 | void updateEditorGeometry(QWidget *editor, |
172 | void updateEditorGeometry(QWidget *editor, |
171 | const QStyleOptionViewItem &option, const QModelIndex &index) const; |
173 | const QStyleOptionViewItem &option, const QModelIndex &index) const; |
172 | 174 | ||
173 | 175 | ||
174 | 176 | ||
175 | void setClassID(QString newClassID); |
177 | void setClassID(QString newClassID); |
176 | void getItems(); // ïîëó÷àåì ñâÿçàííûé ñïèñîê |
178 | void getItems(); // ïîëó÷àåì ñâÿçàííûé ñïèñîê |
177 | 179 | ||
178 | 180 | ||
179 | 181 | ||
180 | 182 | ||
181 | private: |
183 | private: |
182 | 184 | ||
183 | 185 | ||
184 | QString class_id; // òàáëèöà-õðàíèëèùå, îòêóäà áóäåì áðàòü ñïèñîê |
186 | QString class_id; // òàáëèöà-õðàíèëèùå, îòêóäà áóäåì áðàòü ñïèñîê |
185 | QMap <QString, QString> items; // çäåñü áóäåì õðàíèòü ñâÿçàííûé ñïèñîê èìåò îáúåêòîâ è èõ èäåíòèôèêàòîðîâ ID |
187 | QMap <QString, QString> items; // çäåñü áóäåì õðàíèòü ñâÿçàííûé ñïèñîê èìåò îáúåêòîâ è èõ èäåíòèôèêàòîðîâ ID |
186 | }; |
188 | }; |
187 | 189 | ||
188 | 190 | ||
189 | 191 | ||
190 | 192 | ||
191 | 193 | ||
192 | 194 | ||
193 | 195 | ||
194 | 196 | ||
195 | //! [0]
|
197 | //! [0]
|
196 | 198 | ||
197 | class MyDEDelegate : public QItemDelegate { |
199 | class MyDEDelegate : public QItemDelegate { |
198 | Q_OBJECT |
200 | Q_OBJECT |
199 | public: |
201 | public: |
200 | MyDEDelegate(bool calpopup = true, |
202 | MyDEDelegate(bool calpopup = true, |
201 | QObject *parent = 0); |
203 | QObject *parent = 0); |
202 | QWidget *createEditor( |
204 | QWidget *createEditor( |
203 | QWidget *parent,
|
205 | QWidget *parent,
|
204 | const QStyleOptionViewItem &option, |
206 | const QStyleOptionViewItem &option, |
205 | const QModelIndex &index) const; |
207 | const QModelIndex &index) const; |
206 | void setEditorData(QWidget *editor, |
208 | void setEditorData(QWidget *editor, |
207 | const QModelIndex &index) const; |
209 | const QModelIndex &index) const; |
208 | void setModelData(QWidget *editor, |
210 | void setModelData(QWidget *editor, |
209 | QAbstractItemModel *model,
|
211 | QAbstractItemModel *model,
|
210 | const QModelIndex &index) const; |
212 | const QModelIndex &index) const; |
211 | void updateEditorGeometry( |
213 | void updateEditorGeometry( |
212 | QWidget *editor,
|
214 | QWidget *editor,
|
213 | const QStyleOptionViewItem &option, |
215 | const QStyleOptionViewItem &option, |
214 | const QModelIndex &index) const; |
216 | const QModelIndex &index) const; |
215 | private: |
217 | private: |
216 | bool m_calpopup; |
218 | bool m_calpopup; |
217 | }; |
219 | }; |
218 | 220 | ||
219 | 221 | ||
220 | class CPictureDelegate : public QItemDelegate |
222 | class CPictureDelegate : public QItemDelegate |
221 | {
|
223 | {
|
222 | mutable QPixmap m_pxPicture;
|
224 | mutable QPixmap m_pxPicture;
|
223 | public: |
225 | public: |
224 | CPictureDelegate( QObject *parent ); |
226 | CPictureDelegate( QObject *parent ); |
225 | 227 | ||
226 | void paint(QPainter *painter, const QStyleOptionViewItem &option, |
228 | void paint(QPainter *painter, const QStyleOptionViewItem &option, |
227 | const QModelIndex &index) const; |
229 | const QModelIndex &index) const; |
228 | 230 | ||
229 | //QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
|
231 | //QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
|
230 | }; |
232 | }; |
231 | 233 | ||
232 | 234 | ||
233 | class IconDelegate : public QItemDelegate |
235 | class IconDelegate : public QItemDelegate |
234 | {
|
236 | {
|
235 | mutable QPixmap m_pxPicture;
|
237 | mutable QPixmap m_pxPicture;
|
236 | private: |
238 | private: |
237 | QTableView *tblView; |
239 | QTableView *tblView; |
238 | 240 | ||
239 | public: |
241 | public: |
240 | IconDelegate ( QObject *parent ); |
242 | IconDelegate ( QObject *parent ); |
241 | 243 | ||
242 | QWidget *createEditor( |
244 | QWidget *createEditor( |
243 | QWidget *parent,
|
245 | QWidget *parent,
|
244 | const QStyleOptionViewItem &option, |
246 | const QStyleOptionViewItem &option, |
245 | const QModelIndex &index) const; |
247 | const QModelIndex &index) const; |
246 | 248 | ||
247 | void setEditorData(QWidget *editor, |
249 | void setEditorData(QWidget *editor, |
248 | const QModelIndex &index) const; |
250 | const QModelIndex &index) const; |
249 | 251 | ||
250 | void setModelData(QWidget *editor, |
252 | void setModelData(QWidget *editor, |
251 | QAbstractItemModel *model,
|
253 | QAbstractItemModel *model,
|
252 | const QModelIndex &index) const; |
254 | const QModelIndex &index) const; |
253 | 255 | ||
254 | 256 | ||
255 | void updateEditorGeometry( |
257 | void updateEditorGeometry( |
256 | QWidget *editor,
|
258 | QWidget *editor,
|
257 | const QStyleOptionViewItem &option, |
259 | const QStyleOptionViewItem &option, |
258 | const QModelIndex &index) const; |
260 | const QModelIndex &index) const; |
259 | 261 | ||
260 | void paint(QPainter *painter, const QStyleOptionViewItem &option, |
262 | void paint(QPainter *painter, const QStyleOptionViewItem &option, |
261 | const QModelIndex &index) const; |
263 | const QModelIndex &index) const; |
262 | 264 | ||
263 | void setTableView(QTableView* table); |
265 | void setTableView(QTableView* table); |
264 | 266 | ||
265 | 267 | ||
266 | //QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
|
268 | //QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
|
267 | }; |
269 | }; |
268 | 270 | ||
269 | class FileDelegate : public QItemDelegate |
271 | class FileDelegate : public QItemDelegate |
270 | {
|
272 | {
|
271 | mutable QByteArray m_Data;
|
273 | mutable QByteArray m_Data;
|
272 | private: |
274 | private: |
273 | // QTableView *tblView;
|
275 | // QTableView *tblView;
|
274 | 276 | ||
275 | public: |
277 | public: |
276 | FileDelegate ( QObject *parent ); |
278 | FileDelegate ( QObject *parent ); |
277 | 279 | ||
278 | QWidget *createEditor( |
280 | QWidget *createEditor( |
279 | QWidget *parent,
|
281 | QWidget *parent,
|
280 | const QStyleOptionViewItem &option, |
282 | const QStyleOptionViewItem &option, |
281 | const QModelIndex &index) const; |
283 | const QModelIndex &index) const; |
282 | 284 | ||
283 | void setEditorData(QWidget *editor, |
285 | void setEditorData(QWidget *editor, |
284 | const QModelIndex &index) const; |
286 | const QModelIndex &index) const; |
285 | 287 | ||
286 | void setModelData(QWidget *editor, |
288 | void setModelData(QWidget *editor, |
287 | QAbstractItemModel *model,
|
289 | QAbstractItemModel *model,
|
288 | const QModelIndex &index) const; |
290 | const QModelIndex &index) const; |
289 | 291 | ||
290 | 292 | ||
291 | void updateEditorGeometry( |
293 | void updateEditorGeometry( |
292 | QWidget *editor,
|
294 | QWidget *editor,
|
293 | const QStyleOptionViewItem &option, |
295 | const QStyleOptionViewItem &option, |
294 | const QModelIndex &index) const; |
296 | const QModelIndex &index) const; |
295 | 297 | ||
296 | /*
|
298 | /*
|
297 | void paint(QPainter *painter, const QStyleOptionViewItem &option,
|
299 | void paint(QPainter *painter, const QStyleOptionViewItem &option,
|
298 | const QModelIndex &index) const;
|
300 | const QModelIndex &index) const;
|
299 | */
|
301 | */
|
300 | 302 | ||
301 | 303 | ||
302 | 304 | ||
303 | // void setTableView(QTableView* table);
|
305 | // void setTableView(QTableView* table);
|
304 | 306 | ||
305 | 307 | ||
306 | //QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
|
308 | //QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
|
307 | }; |
309 | }; |
308 | 310 | ||
309 | class TimeEditDelegate : public QItemDelegate |
311 | class TimeEditDelegate : public QItemDelegate |
310 | {
|
312 | {
|
311 | Q_OBJECT |
313 | Q_OBJECT |
312 | 314 | ||
313 | public: |
315 | public: |
314 | TimeEditDelegate(const QString timeFormat = "dd.MM.yyyy hh:mm:ss",QObject *parent = 0) : QItemDelegate(parent) {this->timeformat = timeFormat;}; |
316 | TimeEditDelegate(const QString timeFormat = "dd.MM.yyyy hh:mm:ss",QObject *parent = 0) : QItemDelegate(parent) {this->timeformat = timeFormat;}; |
315 | void paint(QPainter *painter, const QStyleOptionViewItem &option, |
317 | void paint(QPainter *painter, const QStyleOptionViewItem &option, |
316 | const QModelIndex &index) const; |
318 | const QModelIndex &index) const; |
317 | 319 | ||
318 | private: |
320 | private: |
319 | QString timeformat;
|
321 | QString timeformat;
|
320 | }; |
322 | }; |
321 | 323 | ||
322 | 324 | ||
323 | #endif // DELEGATE_H
|
325 | #endif // DELEGATE_H
|
324 | 326 |