Author: mir3x Date: Wed Aug 27 16:43:57 2014 New Revision: 26085 URL: http://svn.gna.org/viewcvs/freeciv?rev=26085&view=rev Log: Added check for NULL displayed sprites. Also unit sprites are scaled now to fit in cells.
See patch #5087 Modified: branches/S2_5/client/gui-qt/repodlgs.cpp Modified: branches/S2_5/client/gui-qt/repodlgs.cpp URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_5/client/gui-qt/repodlgs.cpp?rev=26085&r1=26084&r2=26085&view=diff ============================================================================== --- branches/S2_5/client/gui-qt/repodlgs.cpp (original) +++ branches/S2_5/client/gui-qt/repodlgs.cpp Wed Aug 27 16:43:57 2014 @@ -814,7 +814,10 @@ int h; QFontMetrics fm(f); h = fm.height() + 6; + QPixmap *pix; QPixmap pix_scaled; + struct sprite *sprite; + eco_widget->setRowCount(0); eco_widget->clearContents(); get_economy_report_data(building_entries, &entries_used, @@ -822,8 +825,17 @@ for (i = 0; i < entries_used; i++) { struct improvement_entry *pentry = building_entries + i; struct impr_type *pimprove = pentry->type; - QPixmap *pix = get_building_sprite(tileset, pimprove)->pm; - pix_scaled = pix->scaledToHeight(h); + + pix = NULL; + sprite = get_building_sprite(tileset, pimprove); + if (sprite != NULL){ + pix = sprite->pm; + } + if (pix != NULL){ + pix_scaled = pix->scaledToHeight(h); + } else { + pix_scaled.fill(); + } cid cid = cid_encode_building(pimprove); eco_widget->insertRow(i); @@ -860,8 +872,13 @@ for (i = 0; i < entries_used; i++) { struct unit_entry *pentry = unit_entries + i; struct unit_type *putype = pentry->type; - QPixmap *pix = get_unittype_sprite(tileset, putype, - direction8_invalid(), true)->pm; + + pix = NULL; + sprite = get_unittype_sprite(tileset, putype, + direction8_invalid(), true); + if (sprite != NULL){ + pix = sprite->pm; + } cid cid = cid_encode_unit(putype); eco_widget->insertRow(i + max_row); @@ -870,7 +887,10 @@ item->setTextAlignment(Qt::AlignHCenter); switch (j) { case 0: - item->setData(Qt::DecorationRole, *pix); + if (pix != NULL){ + pix_scaled = pix->scaledToHeight(h); + item->setData(Qt::DecorationRole, pix_scaled); + } item->setData(Qt::UserRole, cid); break; case 1: _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits