Author: mir3x Date: Thu Nov 24 08:10:08 2016 New Revision: 34629 URL: http://svn.gna.org/viewcvs/freeciv?rev=34629&view=rev Log: Qt client - Current terrain could be scaled wrongly Reported by Marko Lindqvist <cazfi>
See bug #25333 Modified: branches/S2_6/client/gui-qt/hudwidget.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=34629&r1=34628&r2=34629&view=diff ============================================================================== --- branches/S2_6/client/gui-qt/hudwidget.cpp (original) +++ branches/S2_6/client/gui-qt/hudwidget.cpp Thu Nov 24 08:10:08 2016 @@ -576,7 +576,8 @@ QFontMetrics *fm; QImage cropped_img; QImage img; - QPixmap pix; + QPainter p; + QPixmap pix, pix2; QRect crop; QString mp; QString snum; @@ -654,6 +655,16 @@ cropped_img = img.copy(crop); img = cropped_img.scaledToHeight(height(), Qt::SmoothTransformation); pix = QPixmap::fromImage(img); + /* add transparent borders if image is too slim */ + if (pix.width() < tileset_unit_width(tileset)) { + int px = tileset_full_tile_width(tileset); + pix2 = QPixmap(px, pix.height()); + pix2.fill(Qt::transparent); + p.begin(&pix2); + p.drawPixmap(px / 2 - pix.width() / 2, 0, pix); + p.end(); + pix = pix2; + } wwidth = 2 * 3 + pix.width(); unit_label.setPixmap(pix); if (tileset_is_isometric(tileset)) { @@ -668,8 +679,13 @@ img = tile_pixmap->map_pixmap.toImage(); crop = zealous_crop_rect(img); cropped_img = img.copy(crop); - img = cropped_img.scaledToWidth(wwidth - 10, - Qt::SmoothTransformation); + if (cropped_img.height() > height() - 5 || + cropped_img.height() < height() / 3) { + img = cropped_img.scaledToHeight(height() - 5, + Qt::SmoothTransformation); + } else { + img = cropped_img; + } pix = QPixmap::fromImage(img); tile_label.setPixmap(pix); unit_label.setToolTip(popup_info_text(punit->tile)); _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits