Author: mir3x
Date: Thu Jan 12 11:12:57 2017
New Revision: 34820

URL: http://svn.gna.org/viewcvs/freeciv?rev=34820&view=rev
Log:
Qt client - use city_improvement_upkeep to calculate upkeep in city dialog
Reported by Gogo Gugelhupf <gogo>

See bug #25422


Modified:
    trunk/client/gui-qt/citydlg.cpp
    trunk/client/gui-qt/citydlg.h
    trunk/client/gui-qt/repodlgs.cpp

Modified: trunk/client/gui-qt/citydlg.cpp
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-qt/citydlg.cpp?rev=34820&r1=34819&r2=34820&view=diff
==============================================================================
--- trunk/client/gui-qt/citydlg.cpp     (original)
+++ trunk/client/gui-qt/citydlg.cpp     Thu Jan 12 11:12:57 2017
@@ -299,7 +299,7 @@
 
   setFixedWidth(impr_pixmap->map_pixmap.width() + 4);
   setFixedHeight(impr_pixmap->map_pixmap.height());
-  setToolTip(get_tooltip_improvement(building).trimmed());
+  setToolTip(get_tooltip_improvement(building, city).trimmed());
 }
 
 /****************************************************************************
@@ -3105,8 +3105,8 @@
 
     fc_assert_action(VUT_IMPROVEMENT == target.kind, continue);
     sprite = get_building_sprite(tileset, target.value.building);
-    upkeep = upkeep + target.value.building->upkeep;
-    if (sprite != NULL) {
+    upkeep = upkeep + city_improvement_upkeep(pcity, target.value.building);
+    if (sprite != nullptr) {
       pix = sprite->pm;
       pix_scaled = pix->scaledToHeight(h);
     }
@@ -3522,16 +3522,22 @@
 /***************************************************************************
   Returns improvement properties to append in tooltip
 ***************************************************************************/
-QString get_tooltip_improvement(impr_type *building)
+QString get_tooltip_improvement(impr_type *building, struct city *pcity)
 {
   QString def_str;
-
+  QString upkeep;
+
+  if (pcity !=  nullptr) {
+    upkeep = QString::number(city_improvement_upkeep(pcity, building));
+  } else {
+    upkeep = QString::number(building->upkeep);
+  }
   def_str = "<p style='white-space:pre'><b>"
             + QString(improvement_name_translation(building))
             + "</b>\n";
   def_str += QString(_("Cost: %1, Upkeep: %2\n\n"))
              .arg(impr_build_shield_cost(building))
-             .arg(building->upkeep);
+             .arg(upkeep);
   return def_str;
 }
 

Modified: trunk/client/gui-qt/citydlg.h
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-qt/citydlg.h?rev=34820&r1=34819&r2=34820&view=diff
==============================================================================
--- trunk/client/gui-qt/citydlg.h       (original)
+++ trunk/client/gui-qt/citydlg.h       Thu Jan 12 11:12:57 2017
@@ -60,7 +60,8 @@
 class QImage;
 
 QString get_tooltip(QVariant qvar);
-QString get_tooltip_improvement(impr_type *building);
+QString get_tooltip_improvement(impr_type *building,
+                                struct city *pcity = nullptr);
 QString get_tooltip_unit(struct unit_type *unit);
 QString bold(QString text);
 

Modified: trunk/client/gui-qt/repodlgs.cpp
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-qt/repodlgs.cpp?rev=34820&r1=34819&r2=34820&view=diff
==============================================================================
--- trunk/client/gui-qt/repodlgs.cpp    (original)
+++ trunk/client/gui-qt/repodlgs.cpp    Thu Jan 12 11:12:57 2017
@@ -57,7 +57,8 @@
 
 extern QString split_text(QString text, bool cut);
 extern QString cut_helptext(QString text);
-extern QString get_tooltip_improvement(impr_type *building);
+extern QString get_tooltip_improvement(impr_type *building,
+                                       struct city *pcity);
 extern QString get_tooltip_unit(struct unit_type *unit);
 extern QApplication *qapp;
 /****************************************************************************
@@ -328,7 +329,7 @@
                   + QString(advance_name_translation(
                             advance_by_number(rttp->tech_id))) + "</b>\n";
       } else if (rttp->timpr != nullptr) {
-        def_str = get_tooltip_improvement(rttp->timpr);
+        def_str = get_tooltip_improvement(rttp->timpr, nullptr);
         tt_text = helptext_building(buffer, sizeof(buffer),
                                      client.conn.playing, NULL, rttp->timpr);
         tt_text = cut_helptext(tt_text);


_______________________________________________
Freeciv-commits mailing list
Freeciv-commits@gna.org
https://mail.gna.org/listinfo/freeciv-commits

Reply via email to