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