Subversion Repositories OpenInventory

Rev

Rev 226 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 226 Rev 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