Rev 129 | Rev 159 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 129 | Rev 158 | ||
---|---|---|---|
Line 21... | Line 21... | ||
21 | if ((index.column() == 3) || (index.column() == 0)) flags &= ~Qt::ItemIsEditable; // çàïðåùàåì ðåäàêòèðîâàíèå òðåòüåãî ñòîëáöà
|
21 | if ((index.column() == 3) || (index.column() == 0)) flags &= ~Qt::ItemIsEditable; // çàïðåùàåì ðåäàêòèðîâàíèå òðåòüåãî ñòîëáöà
|
22 | }
|
22 | }
|
23 | 23 | ||
24 | *************************************************/
|
24 | *************************************************/
|
25 | 25 | ||
- | 26 | if (bolleans_list.indexOf(index.column()) != -1) |
|
- | 27 | {
|
|
- | 28 | flags |= Qt::ItemIsUserCheckable; // åñëè â ñòîëáöå òèï "BOOL", äåëàåì åãî âèáèðàåìûì |
|
- | 29 | flags &= ~Qt::ItemIsEditable; |
|
- | 30 | }
|
|
- | 31 | ||
- | 32 | return flags; // òåêóùèé ñòîëáåö |
|
26 | 33 | ||
27 | 34 | ||
28 | return flags; |
- | |
29 | }
|
35 | }
|
30 | 36 | ||
31 | 37 | ||
32 | bool MyModel::setData(const QModelIndex &index, const QVariant &value, int role) { |
38 | bool MyModel::setData(const QModelIndex &index, const QVariant &value, int role) { |
33 | //// if (index.column()==3) return false; // â òðåòüåé êîëîíêå íå äàåì ïîìåíÿòü çíà÷åíèå
|
39 | //// if (index.column()==3) return false; // â òðåòüåé êîëîíêå íå äàåì ïîìåíÿòü çíà÷åíèå
|
Line 45... | Line 51... | ||
45 | if (index.column()==0) { // åñëè ìåíÿåì èìÿ êëàññà
|
51 | if (index.column()==0) { // åñëè ìåíÿåì èìÿ êëàññà
|
46 | str_tmp = value.toString(); // òî ïîìåíÿåì è èìÿ òàáëèöû
|
52 | str_tmp = value.toString(); // òî ïîìåíÿåì è èìÿ òàáëèöû
|
47 | str_tmp.append(tr("_instance"));
|
53 | str_tmp.append(tr("_instance"));
|
48 | }
|
54 | }
|
49 | */
|
55 | */
|
50 | lResult = QSqlTableModel::setData(index, value, role); |
- | |
51 | 56 | ||
52 | 57 | ||
- | 58 | // MyModel::record(index.row());
|
|
53 | 59 | ||
54 | /*****************************************************8
|
- | |
55 | 60 | ||
56 | if (lResult) {
|
- | |
57 | QModelIndex newindex;
|
- | |
58 | QSqlRecord rec = record(index.row());
|
- | |
59 | 61 | ||
- | 62 | if (bolleans_list.indexOf(index.column()) != -1) { |
|
- | 63 | // QModelIndex newindex;
|
|
- | 64 | // QSqlRecord rec = record(index.row());
|
|
- | 65 | // bool chk = (value.toInt()==Qt::Checked);
|
|
- | 66 | // rec.setValue(index.column(),chk);
|
|
60 | rec.setValue(index.column(), value);
|
67 | // rec.setValue(index.column(), value);
|
61 | rec.setGenerated(index.column(), true);
|
68 | // rec.setGenerated(index.column(), true);
|
62 | 69 | ||
- | 70 | //lResult = QSqlTableModel::setData(index, value, role);
|
|
63 | 71 | ||
- | 72 | // lResult = updateRowInTable(index.row(), rec);
|
|
- | 73 | // lResult = setRecord(index.row(),rec); // âåðíåì ðåçóëüòàò îá óñòàíîâêå
|
|
64 | 74 | ||
- | 75 | /*
|
|
65 | lResult = updateRowInTable(index.row(), rec);
|
76 | QStandardItem* item = static_cast<QStandardItem*>(index.internalPointer());
|
66 | /// QSqlTableModel::setData(newindex, QVariant(str_tmp), Qt::EditRole);
|
77 | Qt::CheckState state = (value.toInt() == 2) ? Qt::Checked : Qt::Unchecked;
|
- | 78 | item->setCheckState(state);
|
|
67 | 79 | ||
- | 80 | */
|
|
68 | 81 | ||
69 | }
|
- | |
70 | **********************************************/
|
- | |
71 | 82 | ||
- | 83 | lResult = QSqlTableModel::setData(index, value, Qt::EditRole); |
|
- | 84 | // emit MyModel::dataChanged(index, index);
|
|
72 | 85 | ||
- | 86 | // MyModel::reset();
|
|
- | 87 | // lResult = QSqlTableModel::setData(index, value, Qt::DisplayRole);
|
|
- | 88 | // QSqlTableModel::setData(index, value, Qt::CheckStateRole);
|
|
- | 89 | MyModel::submitAll(); |
|
- | 90 | ////// // MyModel::select();
|
|
- | 91 | // MyModel::data(index, Qt::DisplayRole);
|
|
- | 92 | }
|
|
- | 93 | ||
- | 94 | else
|
|
- | 95 | {
|
|
- | 96 | lResult = QSqlTableModel::setData(index, value, role); |
|
- | 97 | }
|
|
73 | 98 | ||
74 | 99 | ||
75 | return lResult; |
100 | return lResult; |
76 | 101 | ||
77 | 102 | ||
78 | 103 | ||
79 | 104 | ||
80 | 105 | ||
Line 82... | Line 107... | ||
82 | 107 | ||
83 | 108 | ||
84 | 109 | ||
85 | QVariant MyModel::data(const QModelIndex &index, int role) const { |
110 | QVariant MyModel::data(const QModelIndex &index, int role) const { |
86 | 111 | ||
- | 112 | QHash<int, bool> check; |
|
87 | QVariant value = QSqlTableModel::data(index, role); |
113 | QVariant value = QSqlTableModel::data(index, role); |
88 | QList <int> keys; |
114 | QList <int> keys; |
89 | QStringList values;
|
115 | QStringList values;
|
90 | keys = pointers_map.keys(); // ñïèñîê ñòîëáöîâ ñ óêàçàòåëÿìè |
116 | keys = pointers_map.keys(); // ñïèñîê ñòîëáöîâ ñ óêàçàòåëÿìè |
91 | values = pointers_map.values(); // ñïèñîê òàáëèö-õðàíèëèù îáúåêòîâ ðîäèòåëüñêèõ êëàññîâ |
117 | values = pointers_map.values(); // ñïèñîê òàáëèö-õðàíèëèù îáúåêòîâ ðîäèòåëüñêèõ êëàññîâ |
92 | 118 | ||
93 | switch (role) { |
119 | switch (role) { |
94 | case Qt::DisplayRole: |
120 | case Qt::DisplayRole: |
95 | {
|
121 | {
|
- | 122 | //if (check.contains(index.column()) && check.value(index.column()))
|
|
- | 123 | // return value.toInt() != 0 ? tr("Yes") : tr("No");
|
|
- | 124 | if (bolleans_list.indexOf(index.column()) != -1) |
|
- | 125 | {
|
|
- | 126 | return value.toInt() != 0 ? tr("Äà") : tr("Íåò"); // äëÿ êîëîíîê ñ òèïîì "BOOL" |
|
- | 127 | }
|
|
96 | int index_of_list; |
128 | int index_of_list; |
97 | index_of_list = keys.indexOf(index.column()); |
129 | index_of_list = keys.indexOf(index.column()); |
98 | 130 | ||
99 | if (index_of_list == -1) return value; |
131 | if (index_of_list == -1) return value; |
100 | else { |
132 | else { |
101 | QString parentInctance;
|
133 | QString parentInctance;
|
Line 128... | Line 160... | ||
128 | }
|
160 | }
|
129 | // if (index.column() == 1)
|
161 | // if (index.column() == 1)
|
130 | // return value.toString().prepend(tr("¹ "));
|
162 | // return value.toString().prepend(tr("¹ "));
|
131 | 163 | ||
132 | 164 | ||
133 | case Qt::EditRole: return value; |
165 | case Qt::EditRole: |
- | 166 | if (bolleans_list.indexOf(index.column()) == -1) return value; // òåêóùèé ñòîëáåö |
|
- | 167 | ||
- | 168 | else { |
|
- | 169 | return value.toInt() != 0 ? tr("Äà") : tr("Íåò"); |
|
- | 170 | ||
- | 171 | }
|
|
- | 172 | ///return value;
|
|
134 | // if (index.column() == 1)
|
173 | // if (index.column() == 1)
|
135 | // return value.toString().prepend(tr("¹ "));
|
174 | // return value.toString().prepend(tr("¹ "));
|
136 | 175 | ||
- | 176 | ||
- | 177 | ||
- | 178 | ||
137 | case Qt::TextColorRole: |
179 | case Qt::TextColorRole: |
138 | if(index.column() == 1) |
180 | if(index.column() == 1) |
139 | return qVariantFromValue(QColor(Qt::blue)); |
181 | return qVariantFromValue(QColor(Qt::blue)); |
140 | else
|
182 | else
|
141 | return value; |
183 | return value; |
Line 157... | Line 199... | ||
157 | return value; |
199 | return value; |
158 | }
|
200 | }
|
159 | 201 | ||
160 | 202 | ||
161 | 203 | ||
162 | case Qt::CheckStateRole: return value; |
204 | case Qt::CheckStateRole: |
- | 205 | {
|
|
- | 206 | ||
- | 207 | if (bolleans_list.indexOf(index.column()) == -1) return value; // òåêóùèé ñòîëáåö |
|
- | 208 | ||
- | 209 | else
|
|
- | 210 | {
|
|
- | 211 | return (QSqlQueryModel::data(index).toInt() != 0) ? Qt::Checked : Qt::Unchecked; |
|
- | 212 | }
|
|
- | 213 | }
|
|
163 | 214 | ||
164 | case Qt::SizeHintRole:return value; |
215 | case Qt::SizeHintRole:return value; |
165 | 216 | ||
166 | }
|
217 | }
|
167 | return value; |
218 | return value; |