From d78ad452f2fe3938b18d14b6711a73e643310a4b Mon Sep 17 00:00:00 2001 From: David Sansome Date: Sun, 2 Jan 2011 18:58:52 +0000 Subject: [PATCH] Make the "No cover" image the same size as the cover art when showing cover art in the library. Thanks markwatkinson. Fixes issue #785. --- src/library/librarymodel.cpp | 12 +++++++++--- src/library/librarymodel.h | 4 ++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/library/librarymodel.cpp b/src/library/librarymodel.cpp index e58ca10f9..78e4a61c3 100644 --- a/src/library/librarymodel.cpp +++ b/src/library/librarymodel.cpp @@ -62,6 +62,7 @@ LibraryModel::LibraryModel(LibraryBackend* backend, QObject* parent) no_cover_icon_(":nocover.png"), playlists_dir_icon_(IconLoader::Load("folder-sound")), playlist_icon_(":/icons/22x22/x-clementine-albums.png"), + pretty_cover_size_(32, 32), use_pretty_covers_(false) { root_->lazy_loaded = true; @@ -69,6 +70,11 @@ LibraryModel::LibraryModel(LibraryBackend* backend, QObject* parent) group_by_[0] = GroupBy_Artist; group_by_[1] = GroupBy_Album; group_by_[2] = GroupBy_None; + + no_cover_icon_pretty_ = QImage(":nocover.png").scaled(pretty_cover_size_, + Qt::KeepAspectRatio, + Qt::SmoothTransformation); + } LibraryModel::~LibraryModel() { @@ -352,7 +358,7 @@ QVariant LibraryModel::AlbumIcon(const QModelIndex& index, int role) const { // Cache the art in the item's metadata field LibraryItem* item = IndexToItem(index); if (!item) - return album_icon_; + return no_cover_icon_pretty_; if (!item->metadata.image().isNull()) return item->metadata.image(); @@ -364,12 +370,12 @@ QVariant LibraryModel::AlbumIcon(const QModelIndex& index, int role) const { if (!pixmap.isNull()) { QImage image = pixmap.toImage().scaled( - 32, 32, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); + pretty_cover_size_, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); item->metadata.set_image(image); return image; } } - return album_icon_; + return no_cover_icon_pretty_; } QVariant LibraryModel::data(const QModelIndex& index, int role) const { diff --git a/src/library/librarymodel.h b/src/library/librarymodel.h index ed0e57da4..35ef05cfd 100644 --- a/src/library/librarymodel.h +++ b/src/library/librarymodel.h @@ -243,10 +243,14 @@ class LibraryModel : public SimpleTreeModel { QIcon artist_icon_; QIcon album_icon_; + // used as a generic icon to show when no cover art is found, + // fixed to the same size as the artwork (32x32) + QImage no_cover_icon_pretty_; QIcon no_cover_icon_; QIcon playlists_dir_icon_; QIcon playlist_icon_; + QSize pretty_cover_size_; bool use_pretty_covers_; };