From 23c8271fbc7efd6b809f5c3a0d60f023d2575f3e Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 11 Jan 2013 18:10:55 +0100 Subject: [PATCH] CoverArtBox: preserve cover art aspect ratio on drawing Cover is now placed correctly over the cover shadow, aspect ratio is preserved. --- picard/ui/coverartbox.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/picard/ui/coverartbox.py b/picard/ui/coverartbox.py index 1bffbe9a3..f3f5ac9d9 100644 --- a/picard/ui/coverartbox.py +++ b/picard/ui/coverartbox.py @@ -101,10 +101,15 @@ class CoverArtBox(QtGui.QGroupBox): pixmap = QtGui.QPixmap() pixmap.loadFromData(self.data["data"]) if not pixmap.isNull(): + offx, offy, w, h = (1, 1, 121, 121) cover = QtGui.QPixmap(self.shadow) - pixmap = pixmap.scaled(121, 121, QtCore.Qt.IgnoreAspectRatio, QtCore.Qt.SmoothTransformation) + pixmap = pixmap.scaled(w, h, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation) painter = QtGui.QPainter(cover) - painter.drawPixmap(1, 1, pixmap) + bgcolor = QtGui.QColor.fromRgb(0, 0, 0, 128) + painter.fillRect(QtCore.QRectF(offx, offy, w, h), bgcolor) + x = offx + (w - pixmap.width()) / 2 + y = offy + (h - pixmap.height()) / 2 + painter.drawPixmap(x, y, pixmap) painter.end() self.coverArt.setPixmap(cover)