Редакция 193 | Редакция 200 | К новейшей редакции | Весь файл | Не учитывать пробелы | Содержимое файла | Авторство | Последнее изменение | Открыть журнал | RSS
Редакция 193 | Редакция 195 | ||
---|---|---|---|
Строка 295... | Строка 295... | ||
295 | itm->setText(2, ID_tmp); |
295 | itm->setText(2, ID_tmp); |
296 | 296 | ||
297 | 297 | ||
298 | if (icon_field_index != -1){ // åñëè èìååòñÿ ïîëå ñ èêîíêàìè |
298 | if (icon_field_index != -1){ // åñëè èìååòñÿ ïîëå ñ èêîíêàìè |
299 | QVariant data;
|
299 | QVariant data;
|
- | 300 | QByteArray bytes;
|
|
300 | QPixmap pix;
|
301 | QPixmap pix;
|
301 | QIcon icn;
|
302 | QIcon icn;
|
- | 303 | QMap <QString, QPixmap> pixmap_map; |
|
- | 304 | QList <QString> id_list; |
|
- | 305 | QList <QPixmap> pixmap_list; |
|
- | 306 | pixmap_map = MainWindow::getObjectsIcon(inctance); |
|
- | 307 | if (!pixmap_map.isEmpty()) { |
|
- | 308 | id_list = pixmap_map.keys(); |
|
- | 309 | pixmap_list = pixmap_map.values(); |
|
- | 310 | }
|
|
- | 311 | if (id_list.indexOf(ID_tmp) != -1) { |
|
- | 312 | pix = pixmap_list.at(id_list.indexOf(ID_tmp)); |
|
- | 313 | }
|
|
302 | data = q.record().value(icon_field_index); |
314 | // data = q.record().value(icon_field_index);
|
- | 315 | // bytes = q.record().value(icon_field_index).toByteArray();
|
|
303 | if (data.isValid() && (!data.isNull())) { |
316 | // if (data.isValid() && (!data.isNull())) {
|
304 | - | ||
- | 317 | // if (!bytes.isEmpty()){
|
|
305 | pix.loadFromData(data.toByteArray()); |
318 | // pix.loadFromData(data.toByteArray());
|
- | 319 | // pix.loadFromData(bytes);
|
|
306 | if (pix.height() > 128) pix = pix.scaledToHeight(128); |
320 | if (pix.height() > 128) pix = pix.scaledToHeight(128); |
307 | icn.addPixmap(pix); |
321 | icn.addPixmap(pix); |
308 | itm->setIcon(0, icn); |
322 | itm->setIcon(0, icn); |
309 | }
|
323 | // }
|
310 | 324 | ||
311 | 325 | ||
312 | 326 | ||
313 | }
|
327 | }
|
314 | 328 | ||
Строка 1156... | Строка 1170... | ||
1156 | 1170 | ||
1157 | return result_map; |
1171 | return result_map; |
1158 | 1172 | ||
1159 | 1173 | ||
1160 | }
|
1174 | }
|
- | 1175 | ||
- | 1176 | ||
- | 1177 | ||
- | 1178 | ||
- | 1179 | QMap <QString, QPixmap> MainWindow::getObjectsIcon(QString inctance){ // ïîëó÷àåì ñïèñîê èêîíîê äëÿ îáúåêòîâ |
|
- | 1180 | // â êà÷åñòâå êëþ÷à ïîëó÷èì ID îáúåêòà, à â êà÷åñòâå çíà÷åíèé - èçîáðàæåíèÿ èêîíîê
|
|
- | 1181 | QMap <QString, QPixmap> result_map; |
|
- | 1182 | QSqlQuery q;
|
|
- | 1183 | QString sql_str;
|
|
- | 1184 | QString str_tmp;
|
|
- | 1185 | int field_id, field_icon; |
|
- | 1186 | bool ok; |
|
- | 1187 | sql_str = tr("select `ID`, `Icon` " |
|
- | 1188 | " from `" //íàõîäèì âñå îáúåêòû êëàññà â òàáëèöå - õðàíèëèùå îáúåêòîâ êëàññà |
|
- | 1189 | ); |
|
- | 1190 | sql_str.append(inctance); |
|
- | 1191 | sql_str.append(tr("`")); |
|
- | 1192 | ||
- | 1193 | q.prepare(sql_str); |
|
- | 1194 | ||
- | 1195 | ok = q.exec(); |
|
- | 1196 | if (!ok) { |
|
- | 1197 | QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå. |
|
- | 1198 | this, // Ðîäèòåëüñêèé âèäæåò. |
|
- | 1199 | QObject::tr("Database Error"), // Çàãîëîâîê. |
|
- | 1200 | q.lastError().text()); // Òåêñò ñîîáùåíèÿ. |
|
- | 1201 | return result_map; |
|
- | 1202 | }
|
|
- | 1203 | ||
- | 1204 | field_id = q.record().indexOf(tr("ID")); |
|
- | 1205 | field_icon = q.record().indexOf(tr("Icon")); |
|
- | 1206 | ||
- | 1207 | while(q.next()){ |
|
- | 1208 | QString objectID;
|
|
- | 1209 | QByteArray loadimage = q.value(field_icon).toByteArray(); |
|
- | 1210 | objectID = q.value(field_id).toString(); |
|
- | 1211 | if( !loadimage.isEmpty() ) |
|
- | 1212 | {
|
|
- | 1213 | QPixmap pixmap;
|
|
- | 1214 | pixmap.loadFromData(loadimage); |
|
- | 1215 | result_map.insert(objectID, pixmap); |
|
- | 1216 | ||
- | 1217 | }
|
|
- | 1218 | else continue; |
|
- | 1219 | ||
- | 1220 | ||
- | 1221 | ||
- | 1222 | }
|
|
- | 1223 | return result_map; |
|
- | 1224 | }
|