diff --git a/src/libtomahawk/playlist/albumview.cpp b/src/libtomahawk/playlist/albumview.cpp index 6e4ba2ee9..a0a73dcb2 100644 --- a/src/libtomahawk/playlist/albumview.cpp +++ b/src/libtomahawk/playlist/albumview.cpp @@ -25,6 +25,7 @@ #include <qmath.h> #include "audio/audioengine.h" +#include "context/ContextWidget.h" #include "tomahawksettings.h" #include "artist.h" #include "albumitem.h" @@ -113,6 +114,20 @@ AlbumView::setAlbumModel( AlbumModel* model ) } +void +AlbumView::currentChanged( const QModelIndex& current, const QModelIndex& previous ) +{ + QListView::currentChanged( current, previous ); + + AlbumItem* item = m_model->itemFromIndex( m_proxyModel->mapToSource( current ) ); + if ( item ) + { + if ( !item->album().isNull() ) + ViewManager::instance()->context()->setAlbum( item->album() ); + } +} + + void AlbumView::onItemActivated( const QModelIndex& index ) { diff --git a/src/libtomahawk/playlist/albumview.h b/src/libtomahawk/playlist/albumview.h index 61cc14d43..80f38981b 100644 --- a/src/libtomahawk/playlist/albumview.h +++ b/src/libtomahawk/playlist/albumview.h @@ -71,6 +71,9 @@ protected: void paintEvent( QPaintEvent* event ); void resizeEvent( QResizeEvent* event ); +protected slots: + virtual void currentChanged( const QModelIndex& current, const QModelIndex& previous ); + private slots: void onItemCountChanged( unsigned int items ); diff --git a/src/libtomahawk/playlist/artistview.cpp b/src/libtomahawk/playlist/artistview.cpp index d2276b474..af00b8715 100644 --- a/src/libtomahawk/playlist/artistview.cpp +++ b/src/libtomahawk/playlist/artistview.cpp @@ -188,6 +188,7 @@ ArtistView::onScrollTimeout() } } + void ArtistView::currentChanged( const QModelIndex& current, const QModelIndex& previous ) {