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

Reply via email to