Хранилища Subversion OpenInventory

Редакция

Редакция 202 | Только различия | Не учитывать пробелы | Содержимое файла | Авторство | Последнее изменение | Открыть журнал | RSS

Редакция 202 Редакция 204
1
1
#include "mymodel.h"
2
2
3
3
MyModel::MyModel(QObject *parent) :
4
4
      QSqlTableModel(parent)
5
5
{
6
6
    setEditStrategy(QSqlTableModel::OnManualSubmit);
7
7
    icon_index = -1;
8
8
}
9
9
10
10
Qt::ItemFlags MyModel::flags(
11
11
         const QModelIndex &index) const {
12
12
Qt::ItemFlags flags = QSqlTableModel::flags(index);
13
13
14
14
15
15
16
16
17
17
/***********************************************
18
18

19
19
if ((index.column() != 3) && (index.column() != 0))
20
20
     flags |= Qt::ItemIsEditable;
21
21
//if (index.column() == 4)
22
22
//     flags |= Qt::ItemIsUserCheckable;
23
23
else
24
24
{
25
25
    if ((index.column() == 3) || (index.column() == 0)) flags &= ~Qt::ItemIsEditable; // çàïðåùàåì ðåäàêòèðîâàíèå òðåòüåãî ñòîëáöà
26
26
}
27
27

28
28
*************************************************/
29
29
30
30
 if (bolleans_list.indexOf(index.column()) != -1)
31
31
{
32
32
     flags |= Qt::ItemIsUserCheckable;         // åñëè â ñòîëáöå òèï "BOOL", äåëàåì åãî âèáèðàåìûì
33
33
     //flags |= Qt::ItemIsEnabled;
34
34
     flags &= ~Qt::ItemIsEditable;
35
35
 }
36
36
37
37
 return flags; // òåêóùèé ñòîëáåö
38
38
39
39
40
40
}
41
41
42
42
43
43
bool MyModel::setData(const QModelIndex &index, const QVariant &value, int role) {
44
-
 
45
44
     bool lResult = false;
-
 
45
    if (bolleans_list.indexOf(index.column()) != -1) {
46
46
47
-
 
48
-
 
49
-
 
50
47
        lResult = QSqlTableModel::setData(index, value, Qt::EditRole);
51
-
 
52
-
 
53
-
 
54
-
 
55
-
 
56
-
 
57
-
 
58
-
 
59
-
 
60
-
 
61
48
-
 
49
       MyModel::submitAll();
62
50
63
51
          }
64
52
65
53
66
54
67
-
 
68
-
 
69
-
 
70
-
 
71
-
 
72
-
 
73
-
 
74
-
 
75
-
 
76
-
 
77
-
 
78
-
 
79
-
 
80
-
 
81
-
 
82
-
 
83
-
 
84
55
85
-
 
86
56
87
57
-
 
58
else
-
 
59
    {
88
60
       lResult = QSqlTableModel::setData(index, value, role);
-
 
61
       if (lResult) {
-
 
62
           QModelIndex newindex;
-
 
63
           QSqlRecord rec = record(index.row());
89
64
90
65
           if (value.isNull()) {
91
66
           rec.setNull(index.column());
92
67
93
68
           }
94
69
           else rec.setValue(index.column(), value);
95
70
-
 
71
           rec.setGenerated(index.column(), true);
96
72
           lResult = updateRowInTable(index.row(), rec);
97
73
98
-
 
99
-
 
100
-
 
101
-
 
102
-
 
103
-
 
104
-
 
105
74
106
-
 
107
-
 
108
-
 
109
-
 
110
75
111
76
-
 
77
-
 
78
-
 
79
        }
-
 
80
       if (value.isNull()) {
-
 
81
                                select();
-
 
82
                                emit dataChanged(index, index);
-
 
83
                            }
-
 
84
-
 
85
   }
-
 
86
112
87
  return lResult;
-
 
88
-
 
89
-
 
90
-
 
91
-
 
92
-
 
93
}
-
 
94
-
 
95
-
 
96
-
 
97
QVariant MyModel::data(const QModelIndex &index, int role) const {
-
 
98
-
 
99
     QHash<int, bool> check;
-
 
100
     QVariant value = QSqlTableModel::data(index, role);
-
 
101
     QList <int> keys;
-
 
102
     QStringList values;
-
 
103
     QList <int> files_keys;
-
 
104
     QStringList files_values;
-
 
105
     keys = pointers_map.keys(); // ñïèñîê ñòîëáöîâ ñ óêàçàòåëÿìè
-
 
106
     values = pointers_map.values(); // ñïèñîê òàáëèö-õðàíèëèù îáúåêòîâ ðîäèòåëüñêèõ êëàññîâ
-
 
107
     files_keys = files_map.keys(); // ñïèñîê íîìåðîâ ñòîëáöîâ, õðàíÿùèõ ôàéëû
-
 
108
     files_values = files_map.values(); // ñïèñîê èìåò ñòîëáöîâ, õðàíÿùèõ ôàéëû
-
 
109
-
 
110
switch (role) {
-
 
111
        case Qt::DisplayRole:
-
 
112
            {
-
 
113
                //if (check.contains(index.column()) &&  check.value(index.column()))
-
 
114
                //    return value.toInt() != 0 ? tr("Yes") : tr("No");
-
 
115
                if (bolleans_list.indexOf(index.column()) != -1)
-
 
116
                    {
-
 
117
                        return value.toInt() != 0 ? tr("Äà") : tr("Íåò"); // äëÿ êîëîíîê ñ òèïîì "BOOL"
-
 
118
                    }
-
 
119
                int index_of_list;
-
 
120
               index_of_list = keys.
  

Работает на WebSVN 2.3.3 и Subversion 1.8.10     ✓ XHTML & CSS