From ac90129e229621a3bf681a0e644515a3e19a8792 Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Mon, 18 Aug 2014 03:53:07 +0200 Subject: [PATCH] * Update dashboard header image instantly. --- src/libtomahawk/playlist/ContextView.cpp | 18 ++++++++++++++++-- src/libtomahawk/playlist/ContextView.h | 3 +++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/libtomahawk/playlist/ContextView.cpp b/src/libtomahawk/playlist/ContextView.cpp index 144c1a0c6..587844b0e 100644 --- a/src/libtomahawk/playlist/ContextView.cpp +++ b/src/libtomahawk/playlist/ContextView.cpp @@ -153,10 +153,24 @@ ContextView::setCaption( const QString& caption ) void ContextView::onQuerySelected( const Tomahawk::query_ptr& query ) { - if ( query->track()->cover( QSize( 0, 0 ) ).isNull() ) + if ( m_query ) + { + disconnect( m_query->track().data(), SIGNAL( updated() ), this, SLOT( onCoverUpdated() ) ); + } + + m_query = query; + connect( m_query->track().data(), SIGNAL( updated() ), SLOT( onCoverUpdated() ) ); + onCoverUpdated(); +} + + +void +ContextView::onCoverUpdated() +{ + if ( m_query->track()->cover( QSize( 0, 0 ) ).isNull() ) return; - m_pixmap = query->track()->cover( QSize( 0, 0 ) ); + m_pixmap = m_query->track()->cover( QSize( 0, 0 ) ); emit pixmapChanged( m_pixmap ); } diff --git a/src/libtomahawk/playlist/ContextView.h b/src/libtomahawk/playlist/ContextView.h index 8a1d5304f..5d8610268 100644 --- a/src/libtomahawk/playlist/ContextView.h +++ b/src/libtomahawk/playlist/ContextView.h @@ -82,6 +82,7 @@ private slots: void onWidgetDestroyed( QWidget* widget ); void onQuerySelected( const Tomahawk::query_ptr& query ); + void onCoverUpdated(); private: FilterHeader* m_header; @@ -94,6 +95,8 @@ private: PlayableModel* m_model; QStackedWidget* m_stack; + Tomahawk::query_ptr m_query; + bool m_temporary; };