diff --git a/src/libtomahawk/utils/PixmapDelegateFader.cpp b/src/libtomahawk/utils/PixmapDelegateFader.cpp index b1f2bfa56..d31793eef 100644 --- a/src/libtomahawk/utils/PixmapDelegateFader.cpp +++ b/src/libtomahawk/utils/PixmapDelegateFader.cpp @@ -51,6 +51,7 @@ PixmapDelegateFader::PixmapDelegateFader( const artist_ptr& artist, const QSize& { connect( m_artist.data(), SIGNAL( updated() ), SLOT( artistChanged() ) ); connect( m_artist.data(), SIGNAL( coverChanged() ), SLOT( artistChanged() ) ); + m_currentReference = m_artist->cover( size, forceLoad ); } @@ -67,6 +68,7 @@ PixmapDelegateFader::PixmapDelegateFader( const album_ptr& album, const QSize& s { connect( m_album.data(), SIGNAL( updated() ), SLOT( albumChanged() ) ); connect( m_album.data(), SIGNAL( coverChanged() ), SLOT( albumChanged() ) ); + m_currentReference = m_album->cover( size, forceLoad ); } @@ -82,8 +84,10 @@ PixmapDelegateFader::PixmapDelegateFader( const query_ptr& track, const QSize& s if ( !m_track.isNull() ) { connect( m_track.data(), SIGNAL( updated() ), SLOT( trackChanged() ) ); - connect( m_track.data(), SIGNAL( coverChanged() ), SLOT( trackChanged() ) ); - m_currentReference = m_track->cover( size, forceLoad ); + connect( m_track.data(), SIGNAL( resultsChanged() ), SLOT( trackChanged() ) ); + connect( m_track->displayQuery().data(), SIGNAL( coverChanged() ), SLOT( trackChanged() ) ); + + m_currentReference = m_track->displayQuery()->cover( size, forceLoad ); } init(); @@ -144,7 +148,7 @@ PixmapDelegateFader::setSize( const QSize& size ) else if ( !m_artist.isNull() ) m_currentReference = m_artist->cover( m_size ); else if ( !m_track.isNull() ) - m_currentReference = m_track->cover( m_size ); + m_currentReference = m_track->displayQuery()->cover( m_size ); } emit repaintRequest(); @@ -177,7 +181,8 @@ PixmapDelegateFader::trackChanged() if ( m_track.isNull() ) return; - QMetaObject::invokeMethod( this, "setPixmap", Qt::QueuedConnection, Q_ARG( QPixmap, m_track->cover( m_size ) ) ); + connect( m_track->displayQuery().data(), SIGNAL( coverChanged() ), SLOT( trackChanged() ) ); + QMetaObject::invokeMethod( this, "setPixmap", Qt::QueuedConnection, Q_ARG( QPixmap, m_track->displayQuery()->cover( m_size ) ) ); }