Хранилища Subversion OpenInventory

Сравнить редакции

Не учитывать пробелы Редакция 194 → Редакция 195

/trunk/DBViewer/database.cpp
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;
}