Author: mir3x
Date: Wed Oct  1 09:47:16 2014
New Revision: 26641

URL: http://svn.gna.org/viewcvs/freeciv?rev=26641&view=rev
Log:
Visual changes to report dialogs
Units report:
- updated total upgradable units to int, instead checkbox 
Cities report: 
- changed font for city name to capitalized 
- added red color to production surplus if negative 
- menu is displayed only is there are any selected cities

See patch #5290


Modified:
    branches/S2_5/client/gui-qt/cityrep.cpp
    branches/S2_5/client/gui-qt/plrdlg.cpp
    branches/S2_5/client/gui-qt/repodlgs.cpp

Modified: branches/S2_5/client/gui-qt/cityrep.cpp
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_5/client/gui-qt/cityrep.cpp?rev=26641&r1=26640&r2=26641&view=diff
==============================================================================
--- branches/S2_5/client/gui-qt/cityrep.cpp     (original)
+++ branches/S2_5/client/gui-qt/cityrep.cpp     Wed Oct  1 09:47:16 2014
@@ -27,7 +27,9 @@
 static bool can_city_sell_universal(const struct city *pcity,
                                     struct universal target);
 
-
+/***************************************************************************
+  Overriden compare for sorting items
+***************************************************************************/
 bool city_sort_model::lessThan(const QModelIndex &left,
                                const QModelIndex &right) const
 {
@@ -63,11 +65,37 @@
 /***************************************************************************
   City item delgate paint event
 ***************************************************************************/
-void city_item_delegate::paint(QPainter *painter, 
-                               const QStyleOptionViewItem &option, 
+void city_item_delegate::paint(QPainter *painter,
+                               const QStyleOptionViewItem &option,
                                const QModelIndex &index) const
 {
-  QItemDelegate::paint(painter, option, index);
+  QStyleOptionViewItemV3 opt = QItemDelegate::setOptions(index, option);
+  QString txt;
+  QFont font;
+  QPalette palette;
+  struct city_report_spec *spec;
+  spec = city_report_specs + index.column();
+  txt = spec->tagname;
+  if (txt == "cityname") {
+    font.setCapitalization(QFont::SmallCaps);
+    font.setBold(true);
+    opt.font = font;
+  }
+  if (txt == "hstate_verbose") {
+    font.setItalic(true);
+    opt.font = font;
+  }
+  if (txt == "prodplus") {
+    txt = index.data().toString();
+    if (txt.toInt() < 0) {
+      font.setBold(true);
+      palette.setColor(QPalette::Text, QColor(255, 0, 0));
+      opt.font = font;
+      opt.palette = palette;
+    }
+  }
+
+  QItemDelegate::paint(painter, opt, index);
 }
 
 /***************************************************************************
@@ -78,7 +106,7 @@
 {
   QSize s = QItemDelegate::sizeHint(option, index);
 
-  s.setHeight(item_height);
+  s.setHeight(item_height + 4);
   return s;
 }
 
@@ -123,7 +151,6 @@
   spec = city_report_specs+column;
   fc_snprintf(buf, sizeof(buf), "%*s", NEG_VAL(spec->width),
                 spec->func(i_city, spec->data));
-
   return QString(buf);
 }
 
@@ -197,6 +224,10 @@
                 NEG_VAL(spec->width), spec->title1 ? spec->title1 : "",
                 NEG_VAL(spec->width), spec->title2 ? spec->title2 : "");
       return QString(buf);
+    }
+    if (role == Qt::ToolTipRole) {
+      spec = city_report_specs + section;
+      return QString(spec->explanation);
     }
   }
   return QVariant();
@@ -442,6 +473,9 @@
   QAction cty_view(style()->standardIcon(QStyle::SP_CommandLink),
                    Q_("?verb:View"), 0);
   sell_gold = 0;
+  if (selected_cities.isEmpty()) {
+    return;
+  }
   foreach (pcity, selected_cities) {
     sell_gold = sell_gold + city_production_buy_gold_cost(pcity);
   }

Modified: branches/S2_5/client/gui-qt/plrdlg.cpp
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_5/client/gui-qt/plrdlg.cpp?rev=26641&r1=26640&r2=26641&view=diff
==============================================================================
--- branches/S2_5/client/gui-qt/plrdlg.cpp      (original)
+++ branches/S2_5/client/gui-qt/plrdlg.cpp      Wed Oct  1 09:47:16 2014
@@ -285,6 +285,7 @@
   setSelectionMode(QAbstractItemView::SingleSelection);
   setItemsExpandable(false);
   setAutoScroll(true);
+  setAlternatingRowColors(true);
   header()->setContextMenuPolicy(Qt::CustomContextMenu);
   hide_columns();
   connect(header(), SIGNAL(customContextMenuRequested(const QPoint &)),

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=26641&r1=26640&r2=26641&view=diff
==============================================================================
--- branches/S2_5/client/gui-qt/repodlgs.cpp    (original)
+++ branches/S2_5/client/gui-qt/repodlgs.cpp    Wed Oct  1 09:47:16 2014
@@ -434,6 +434,7 @@
                                                    ResizeToContents);
   units_widget->verticalHeader()->setVisible(false);
   units_widget->setSelectionMode(QAbstractItemView::SingleSelection);
+  units_widget->setAlternatingRowColors(true);
   find_button->setEnabled(false);
   upgrade_button->setText(_("Upgrade"));
   upgrade_button->setEnabled(false);
@@ -454,7 +455,7 @@
           SLOT(selection_changed(const QItemSelection &,
                                  const QItemSelection &)));
   setLayout(units_layout);
-  len = units_widget->horizontalHeader()->length() + 3;
+  len = units_widget->horizontalHeader()->length() + 4;
   units_widget->setFixedWidth(len);
   find_button->setFixedWidth(len / 3);
   upgrade_button->setFixedWidth(len / 3);
@@ -498,6 +499,8 @@
   struct urd_info unit_array[utype_count()];
   struct urd_info unit_totals;
   struct urd_info *info;
+  int total_upgradable_count = 0;
+  bool upgradable;
   QVariant qvar;
   QPixmap *pix;
   QPixmap pix_scaled;
@@ -544,7 +547,8 @@
   unit_type_iterate(utype) {
     utype_id = utype_index(utype);
     info = unit_array + utype_id;
-
+    upgradable = client_has_player()
+                 && NULL != can_upgrade_unittype(client_player(), utype);
     if (0 == info->active_count && 0 == info->building_count) {
       continue;                 /* We don't need a row for this type. */
     }
@@ -554,7 +558,7 @@
       unit_item->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
       switch (column) {
       case 0:
-        unit_item->setTextAlignment(Qt::AlignLeft);
+        unit_item->setTextAlignment(Qt::AlignLeft | Qt::AlignVCenter);
         unit_item->setText(utype_name_translation(utype));
         qvar = utype_id;
         unit_item->setData(Qt::UserRole, qvar);
@@ -575,7 +579,7 @@
         } else {
           unit_item->setCheckState(Qt::Unchecked);
         }
-        unit_item->setFlags(Qt::ItemIsSelectable);
+        unit_item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
         break;
       case 2:
         unit_item->setText(QString::number(info->building_count));
@@ -601,22 +605,23 @@
       unit_totals.upkeep[output] += info->upkeep[output];
     }
     unit_totals.building_count += info->building_count;
-
+    if (upgradable) {
+      total_upgradable_count += info->active_count;
+    }
     row++;
   } unit_type_iterate_end;
   row++;
   units_widget->setRowCount(row);
   for (column = 0; column < 7; column++) {
     unit_item = new QTableWidgetItem;
-    unit_item->setTextAlignment(Qt::AlignHCenter);
+    unit_item->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
     switch (column) {
     case 0:
-      unit_item->setTextAlignment(Qt::AlignLeft);
+      unit_item->setTextAlignment(Qt::AlignLeft | Qt::AlignVCenter);
       unit_item->setText(_("Totals:"));
       break;
     case 1:
-      unit_item->setCheckState(Qt::Unchecked);
-      unit_item->setFlags(Qt::ItemIsSelectable);
+      unit_item->setText(QString::number(total_upgradable_count));
       break;
     case 2:
       unit_item->setText(QString::number(unit_totals.building_count));
@@ -637,7 +642,7 @@
     units_widget->setItem(row - 1, column, unit_item);
   }
   units_widget->resizeColumnsToContents();
-  len = units_widget->horizontalHeader()->length() + 3;
+  len = units_widget->horizontalHeader()->length() + 4;
   units_widget->setFixedWidth(len);
   find_button->setFixedWidth(len / 3);
   upgrade_button->setFixedWidth(len / 3);


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

Reply via email to