297,16 → 297,30 |
|
if (icon_field_index != -1){ // åñëè èìååòñÿ ïîëå ñ èêîíêàìè |
QVariant data; |
QByteArray bytes; |
QPixmap pix; |
QIcon icn; |
data = q.record().value(icon_field_index); |
if (data.isValid() && (!data.isNull())) { |
|
pix.loadFromData(data.toByteArray()); |
QMap <QString, QPixmap> pixmap_map; |
QList <QString> id_list; |
QList <QPixmap> pixmap_list; |
pixmap_map = MainWindow::getObjectsIcon(inctance); |
if (!pixmap_map.isEmpty()) { |
id_list = pixmap_map.keys(); |
pixmap_list = pixmap_map.values(); |
} |
if (id_list.indexOf(ID_tmp) != -1) { |
pix = pixmap_list.at(id_list.indexOf(ID_tmp)); |
} |
// data = q.record().value(icon_field_index); |
// bytes = q.record().value(icon_field_index).toByteArray(); |
// if (data.isValid() && (!data.isNull())) { |
// if (!bytes.isEmpty()){ |
// pix.loadFromData(data.toByteArray()); |
// pix.loadFromData(bytes); |
if (pix.height() > 128) pix = pix.scaledToHeight(128); |
icn.addPixmap(pix); |
itm->setIcon(0, icn); |
} |
// } |
|
|
|
1158,3 → 1172,53 |
|
|
} |
|
|
|
|
QMap <QString, QPixmap> MainWindow::getObjectsIcon(QString inctance){ // ïîëó÷àåì ñïèñîê èêîíîê äëÿ îáúåêòîâ |
// â êà÷åñòâå êëþ÷à ïîëó÷èì ID îáúåêòà, à â êà÷åñòâå çíà÷åíèé - èçîáðàæåíèÿ èêîíîê |
QMap <QString, QPixmap> result_map; |
QSqlQuery q; |
QString sql_str; |
QString str_tmp; |
int field_id, field_icon; |
bool ok; |
sql_str = tr("select `ID`, `Icon` " |
" from `" //íàõîäèì âñå îáúåêòû êëàññà â òàáëèöå - õðàíèëèùå îáúåêòîâ êëàññà |
); |
sql_str.append(inctance); |
sql_str.append(tr("`")); |
|
q.prepare(sql_str); |
|
ok = q.exec(); |
if (!ok) { |
QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå. |
this, // Ðîäèòåëüñêèé âèäæåò. |
QObject::tr("Database Error"), // Çàãîëîâîê. |
q.lastError().text()); // Òåêñò ñîîáùåíèÿ. |
return result_map; |
} |
|
field_id = q.record().indexOf(tr("ID")); |
field_icon = q.record().indexOf(tr("Icon")); |
|
while(q.next()){ |
QString objectID; |
QByteArray loadimage = q.value(field_icon).toByteArray(); |
objectID = q.value(field_id).toString(); |
if( !loadimage.isEmpty() ) |
{ |
QPixmap pixmap; |
pixmap.loadFromData(loadimage); |
result_map.insert(objectID, pixmap); |
|
} |
else continue; |
|
|
|
} |
return result_map; |
} |