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