Author: mir3x
Date: Fri Sep 12 10:15:21 2014
New Revision: 26361

URL: http://svn.gna.org/viewcvs/freeciv?rev=26361&view=rev
Log:
Updated units report: 
- updated layout 
- added icons to units and buttons 

See patch #5215


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

Modified: trunk/client/gui-qt/repodlgs.cpp
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-qt/repodlgs.cpp?rev=26361&r1=26360&r2=26361&view=diff
==============================================================================
--- trunk/client/gui-qt/repodlgs.cpp    (original)
+++ trunk/client/gui-qt/repodlgs.cpp    Fri Sep 12 10:15:21 2014
@@ -404,10 +404,18 @@
 **************************************************************************/
 units_report::units_report(): QWidget()
 {
+  QLabel *empty1, *empty2;
+  int len;
+
   QGridLayout *units_layout= new QGridLayout;
   units_widget = new QTableWidget;
-  find_button = new QPushButton;
-  upgrade_button = new QPushButton;
+  find_button = new QPushButton(style()->standardIcon(
+                          QStyle::SP_ToolBarHorizontalExtensionButton),
+                          _("Find Nearest"));
+  upgrade_button = new QPushButton(style()->standardIcon(
+                          QStyle::SP_FileDialogToParent),_("Upgrade"));
+  empty1 = new QLabel;
+  empty2 = new QLabel;
   QStringList slist;
   slist << _("Unit Type") << Q_("?Upgradable unit [short]:U") << _("In-Prog") 
         << _("Active") << _("Shield") << _("Food") << _("Gold");
@@ -420,13 +428,17 @@
                                                    ResizeToContents);
   units_widget->verticalHeader()->setVisible(false);
   units_widget->setSelectionMode(QAbstractItemView::SingleSelection);
-  find_button->setText(_("Find _Nearest"));
   find_button->setEnabled(false);
   upgrade_button->setText(_("Upgrade"));
   upgrade_button->setEnabled(false);
-  units_layout->addWidget(units_widget, 1, 0, 5, 5);
-  units_layout->addWidget(find_button, 0, 0, 1, 1);
-  units_layout->addWidget(upgrade_button, 0, 1, 1, 1);
+  units_layout->addWidget(empty1, 0, 0, 1, 1);
+  units_layout->addWidget(units_widget, 0, 1, 1, 2);
+  units_layout->addWidget(find_button, 1, 2, 1, 1, Qt::AlignRight);
+  units_layout->addWidget(upgrade_button, 1, 1, 1, 1);
+  units_layout->addWidget(empty2, 0, 3, 1, 1);
+  units_layout->setColumnStretch(0, 1);
+  units_layout->setColumnStretch(1, 10);
+  units_layout->setColumnStretch(3, 1);
 
   connect(find_button, SIGNAL(pressed()), SLOT(find_units()));
   connect(upgrade_button, SIGNAL(pressed()), SLOT(upgrade_units()));
@@ -436,6 +448,10 @@
           SLOT(selection_changed(const QItemSelection &,
                                  const QItemSelection &)));
   setLayout(units_layout);
+  len = units_widget->horizontalHeader()->length() + 3;
+  units_widget->setFixedWidth(len);
+  find_button->setFixedWidth(len / 3);
+  upgrade_button->setFixedWidth(len / 3);
 }
 
 
@@ -477,6 +493,14 @@
   struct urd_info unit_totals;
   struct urd_info *info;
   QVariant qvar;
+  QPixmap *pix;
+  QPixmap pix_scaled;
+  struct sprite *sprite;
+  QFont f = QApplication::font();
+  int h;
+  int len;
+  QFontMetrics fm(f);
+  h = fm.height() + 6;
 
   units_widget->setRowCount(0);
   units_widget->clearContents();
@@ -521,13 +545,22 @@
     units_widget->setRowCount(row + 1);
     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->setText(utype_name_translation(utype));
         qvar = utype_id;
         unit_item->setData(Qt::UserRole, qvar);
+        sprite = get_unittype_sprite(tileset, utype, direction8_invalid(),
+                                     true);
+        if (sprite != NULL) {
+          pix = sprite->pm;
+          pix_scaled = pix->scaledToHeight(h);
+        } else {
+          pix_scaled.fill();
+        }
+        unit_item->setData(Qt::DecorationRole, pix_scaled);
         break;
       case 1:
         if ((client_has_player()
@@ -536,6 +569,7 @@
         } else {
           unit_item->setCheckState(Qt::Unchecked);
         }
+        unit_item->setFlags(Qt::ItemIsSelectable);
         break;
       case 2:
         unit_item->setText(QString::number(info->building_count));
@@ -576,6 +610,7 @@
       break;
     case 1:
       unit_item->setCheckState(Qt::Unchecked);
+      unit_item->setFlags(Qt::ItemIsSelectable);
       break;
     case 2:
       unit_item->setText(QString::number(unit_totals.building_count));
@@ -595,7 +630,11 @@
     }
     units_widget->setItem(row - 1, column, unit_item);
   }
-  units_widget->resizeRowsToContents();
+  units_widget->resizeColumnsToContents();
+  len = units_widget->horizontalHeader()->length() + 3;
+  units_widget->setFixedWidth(len);
+  find_button->setFixedWidth(len / 3);
+  upgrade_button->setFixedWidth(len / 3);
   max_row = row - 1;
 }
 


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

Reply via email to