From d16ed39dbecd71acd8a7a2697c14b76e1e15121c Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Fri, 20 Jul 2012 13:42:14 +0200 Subject: [PATCH] * Fixed cover retrieval via DeclarativeCoverArtProvider. --- src/libtomahawk/Query.cpp | 4 ++++ src/libtomahawk/playlist/PlayableItem.cpp | 11 +++++++--- src/libtomahawk/playlist/PlayableModel.cpp | 3 ++- .../widgets/DeclarativeCoverArtProvider.cpp | 20 +++++++++++-------- 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/src/libtomahawk/Query.cpp b/src/libtomahawk/Query.cpp index 49e3ec54d..525870cdf 100644 --- a/src/libtomahawk/Query.cpp +++ b/src/libtomahawk/Query.cpp @@ -356,8 +356,12 @@ Query::coverId() const if ( m_albumPtr->coverLoaded() ) { if ( !m_albumPtr->cover( QSize( 0, 0 ) ).isNull() ) + { + tDebug() << "Returning cover from album:" << m_albumPtr->coverId(); return m_albumPtr->coverId(); + } + tDebug() << "Returning cover from artist:" << m_artistPtr->uniqueId(); return m_artistPtr->uniqueId(); } return QString(); diff --git a/src/libtomahawk/playlist/PlayableItem.cpp b/src/libtomahawk/playlist/PlayableItem.cpp index 8b45639fd..0fe265afa 100644 --- a/src/libtomahawk/playlist/PlayableItem.cpp +++ b/src/libtomahawk/playlist/PlayableItem.cpp @@ -152,13 +152,18 @@ PlayableItem::init( PlayableItem* parent, int row ) void PlayableItem::onResultsChanged() { - if ( !m_query->results().isEmpty() ) { + if ( !m_query->results().isEmpty() ) + { m_result = m_query->results().first(); - if ( m_query->displayQuery()->coverLoaded() ) { + if ( m_query->displayQuery()->coverLoaded() ) + { emit coverChanged(); } + + connect( m_query->displayQuery().data(), SIGNAL( coverChanged() ), SIGNAL( dataChanged() ) ); connect( m_query->displayQuery().data(), SIGNAL( coverChanged() ), SIGNAL( coverChanged() ) ); - } else + } + else m_result = result_ptr(); emit dataChanged(); diff --git a/src/libtomahawk/playlist/PlayableModel.cpp b/src/libtomahawk/playlist/PlayableModel.cpp index c708c6e17..6c0ed5274 100644 --- a/src/libtomahawk/playlist/PlayableModel.cpp +++ b/src/libtomahawk/playlist/PlayableModel.cpp @@ -169,7 +169,8 @@ PlayableModel::queryData( const query_ptr& query, int column, int role ) const if ( role == CoverIDRole ) { tDebug() << "Cover role for:" << query->toString(); - return query->displayQuery()->id(); + query->displayQuery()->cover( QSize( 0, 0 ) ); + return query->displayQuery()->coverId(); } if ( role != Qt::DisplayRole ) // && role != Qt::ToolTipRole ) diff --git a/src/libtomahawk/widgets/DeclarativeCoverArtProvider.cpp b/src/libtomahawk/widgets/DeclarativeCoverArtProvider.cpp index af5a14ff0..a42cbe69b 100644 --- a/src/libtomahawk/widgets/DeclarativeCoverArtProvider.cpp +++ b/src/libtomahawk/widgets/DeclarativeCoverArtProvider.cpp @@ -42,17 +42,21 @@ QPixmap DeclarativeCoverArtProvider::requestPixmap(const QString &id, QSize *siz // } tDebug() << "Getting by id:" << id; - album_ptr album = Album::getByCoverId(id); - if ( !album.isNull() ) { - return album->cover(requestedSize); + album_ptr album = Album::getByCoverId( id ); + if ( !album.isNull() ) + { + tDebug() << "Returning album cover:" << album->cover( requestedSize ).isNull(); + return album->cover( requestedSize ); } - artist_ptr artist = Artist::getByUniqueId(id); - if ( !artist.isNull() ) { - return artist->cover(requestedSize); + artist_ptr artist = Artist::getByUniqueId( id ); + if ( !artist.isNull() ) + { + tDebug() << "Returning artist cover:" << artist->cover( requestedSize ).isNull(); + return artist->cover( requestedSize ); } -/* query_ptr query = Query::getByCoverId(id); +/* query_ptr query = Query::getByCoverId( id ); if ( !query.isNull() ) { - return query->cover(requestedSize); + return query->cover( requestedSize ); }*/ // TODO: create default cover art image