From a7308cddcc1ecca12b82ce6c36da4fec809a3ae8 Mon Sep 17 00:00:00 2001 From: Leo Franchi <lfranchi@kde.org> Date: Fri, 22 Jul 2011 12:44:17 -0400 Subject: [PATCH] Scale pixmaps smoothly to avoid horrible jagged edges --- src/libtomahawk/playlist/albumitemdelegate.cpp | 6 +++--- src/libtomahawk/playlist/playlistitemdelegate.cpp | 2 +- src/libtomahawk/playlist/treeitemdelegate.cpp | 5 ++--- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/libtomahawk/playlist/albumitemdelegate.cpp b/src/libtomahawk/playlist/albumitemdelegate.cpp index 7871a7bc9..d56cea319 100644 --- a/src/libtomahawk/playlist/albumitemdelegate.cpp +++ b/src/libtomahawk/playlist/albumitemdelegate.cpp @@ -38,8 +38,7 @@ AlbumItemDelegate::AlbumItemDelegate( QAbstractItemView* parent, AlbumProxyModel , m_model( proxy ) { m_shadowPixmap = QPixmap( RESPATH "images/cover-shadow.png" ); - m_defaultCover = QPixmap( RESPATH "images/no-album-art-placeholder.png" ) - .scaled( QSize( 120, 120 ), Qt::IgnoreAspectRatio, Qt::SmoothTransformation ); + m_defaultCover = QPixmap( RESPATH "images/no-album-art-placeholder.png" ); } @@ -73,7 +72,8 @@ AlbumItemDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, // painter->drawPixmap( option.rect.adjusted( 4, 4, -4, -38 ), m_shadowPixmap ); QPixmap cover = item->cover.isNull() ? m_defaultCover : item->cover; - painter->drawPixmap( option.rect.adjusted( 6, 4, -6, -41 ), cover ); + QRect r = option.rect.adjusted( 6, 4, -6, -41 ); + painter->drawPixmap( r, cover.scaled( r.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation ) ); painter->setPen( opt.palette.color( QPalette::Text ) ); QTextOption to; diff --git a/src/libtomahawk/playlist/playlistitemdelegate.cpp b/src/libtomahawk/playlist/playlistitemdelegate.cpp index dca3c7c92..85137a35c 100644 --- a/src/libtomahawk/playlist/playlistitemdelegate.cpp +++ b/src/libtomahawk/playlist/playlistitemdelegate.cpp @@ -198,7 +198,7 @@ PlaylistItemDelegate::paintShort( QPainter* painter, const QStyleOptionViewItem& painter->setPen( opt.palette.text().color() ); QRect ir = r.adjusted( 4, 0, -option.rect.width() + option.rect.height() - 8 + r.left(), 0 ); - painter->drawPixmap( ir, pixmap ); + painter->drawPixmap( ir, pixmap.scaled( ir.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation ) ); //painter->drawPixmap( ir, item->cover ); QFont boldFont = opt.font; diff --git a/src/libtomahawk/playlist/treeitemdelegate.cpp b/src/libtomahawk/playlist/treeitemdelegate.cpp index 554f83c61..feb67ba38 100644 --- a/src/libtomahawk/playlist/treeitemdelegate.cpp +++ b/src/libtomahawk/playlist/treeitemdelegate.cpp @@ -40,8 +40,7 @@ TreeItemDelegate::TreeItemDelegate( ArtistView* parent, TreeProxyModel* proxy ) , m_model( proxy ) { m_nowPlayingIcon = QPixmap( RESPATH "images/now-playing-speaker.png" ); - m_defaultCover = QPixmap( RESPATH "images/no-album-art-placeholder.png" ) - .scaled( QSize( 120, 120 ), Qt::IgnoreAspectRatio, Qt::SmoothTransformation ); + m_defaultCover = QPixmap( RESPATH "images/no-album-art-placeholder.png" ); } @@ -135,7 +134,7 @@ TreeItemDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, // painter->drawPixmap( r, QPixmap( RESPATH "images/cover-shadow.png" ) ); QPixmap cover = item->cover.isNull() ? m_defaultCover : item->cover; - painter->drawPixmap( r, cover ); + painter->drawPixmap( r, cover.scaled( r.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation ) ); QTextOption to; to.setAlignment( Qt::AlignVCenter );