Author: mir3x Date: Wed Nov 30 08:50:53 2016 New Revision: 34659 URL: http://svn.gna.org/viewcvs/freeciv?rev=34659&view=rev Log: Qt client - show move points in unit label more prominent
See patch #8033 Modified: branches/S2_6/client/gui-qt/hudwidget.cpp branches/S2_6/client/gui-qt/sidebar.cpp Modified: branches/S2_6/client/gui-qt/hudwidget.cpp URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/gui-qt/hudwidget.cpp?rev=34659&r1=34658&r2=34659&view=diff ============================================================================== --- branches/S2_6/client/gui-qt/hudwidget.cpp (original) +++ branches/S2_6/client/gui-qt/hudwidget.cpp Wed Nov 30 08:50:53 2016 @@ -572,16 +572,18 @@ { int num; int wwidth; + int font_width; QFont font = *fc_font::instance()->get_font(fonts::notify_label); QFontMetrics *fm; QImage cropped_img; QImage img; QPainter p; QPixmap pix, pix2; - QRect crop; + QRect crop, bounding_rect; QString mp; QString snum; - QString text_str; + QChar fraction1, fraction2; + QString text_str, move_pt_text; struct canvas *tile_pixmap; struct canvas *unit_pixmap; struct city *pcity; @@ -665,6 +667,45 @@ p.end(); pix = pix2; } + /* Draw movement points */ + move_pt_text = move_points_text(punit->moves_left, false); + if (move_pt_text.contains('/')) { + fraction1 = move_pt_text[move_pt_text.count() - 3]; + fraction2 = move_pt_text[move_pt_text.count() - 1]; + move_pt_text.remove(move_pt_text.count() - 3, 3); + } + crop = QRect(5, 5, pix.width() - 5, pix.height() - 5); + font.setCapitalization(QFont::Capitalize); + font.setPointSize((pix.height() * 2) / 5); + p.begin(&pix); + p.setFont(font); + p.setPen(Qt::white); + p.drawText(crop, Qt::AlignLeft | Qt::AlignBottom, move_pt_text); + if (move_pt_text.isEmpty()) { + move_pt_text = " "; + } + bounding_rect = p.boundingRect(crop, Qt::AlignLeft | Qt::AlignBottom, + move_pt_text); + font.setPointSize(pix.height() / 5); + fm = new QFontMetrics(font); + font_width = (fm->width(move_pt_text) * 3) / 5; + delete fm; + p.setFont(font); + if (fraction1.isNull() == false) { + int t = 2 * font.pointSize(); + crop = QRect(bounding_rect.right() - font_width, + bounding_rect.top(), t, (t / 5) * 4); + p.drawText(crop, Qt::AlignLeft | Qt::AlignBottom, fraction1); + crop = QRect(bounding_rect.right() - font_width, + (bounding_rect.bottom() + bounding_rect.top()) / 2, + t, (t / 5) * 4); + p.drawText(crop, Qt::AlignLeft | Qt::AlignTop, fraction2); + crop = QRect(bounding_rect.right() - font_width, + (bounding_rect.bottom() + bounding_rect.top()) / 2 - t / 16, + (t * 2) / 5, t / 8); + p.fillRect(crop, Qt::white); + } + p.end(); wwidth = 2 * 3 + pix.width(); unit_label.setPixmap(pix); if (tileset_is_isometric(tileset)) { Modified: branches/S2_6/client/gui-qt/sidebar.cpp URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/gui-qt/sidebar.cpp?rev=34659&r1=34658&r2=34659&view=diff ============================================================================== --- branches/S2_6/client/gui-qt/sidebar.cpp (original) +++ branches/S2_6/client/gui-qt/sidebar.cpp Wed Nov 30 08:50:53 2016 @@ -80,11 +80,6 @@ sfont->setItalic(true); info_font = new QFont(*sfont); info_font->setBold(true); - if (sfont->pointSize() < 0) { - info_font->setPixelSize(sfont->pixelSize() + 2); - } else { - info_font->setPointSize(sfont->pointSize() + 2); - } info_font->setItalic(false); connect(timer, SIGNAL(timeout()), this, SLOT(sblink())); } _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits