diff --git a/src/libtomahawk/playlist/TrackView.cpp b/src/libtomahawk/playlist/TrackView.cpp index 23bb85a4f..3f511f77c 100644 --- a/src/libtomahawk/playlist/TrackView.cpp +++ b/src/libtomahawk/playlist/TrackView.cpp @@ -102,8 +102,13 @@ TrackView::~TrackView() void TrackView::setGuid( const QString& guid ) { - m_guid = guid; - m_header->setGuid( guid ); + if ( !guid.isEmpty() ) + { + tDebug() << Q_FUNC_INFO << "Setting guid on header" << guid << "for a view with" << m_proxyModel->columnCount() << "columns"; + + m_guid = QString( "%1/%2" ).arg( guid ).arg( m_proxyModel->columnCount() ); + m_header->setGuid( m_guid ); + } } @@ -143,6 +148,7 @@ TrackView::setPlayableModel( PlayableModel* model ) setAcceptDrops( true ); m_header->setDefaultColumnWeights( m_proxyModel->columnWeights() ); + setGuid( m_proxyModel->guid() ); switch( m_proxyModel->style() ) { @@ -303,7 +309,7 @@ TrackView::tryToPlayItem( const QModelIndex& index ) if ( item && !item->query().isNull() ) { m_proxyModel->setCurrentIndex( index ); - AudioEngine::instance()->playItem( m_proxyModel->playlistInterface(), item->query() ); + AudioEngine::instance()->playItem( playlistInterface(), item->query() ); return true; } @@ -710,7 +716,19 @@ TrackView::mousePressEvent( QMouseEvent* event ) Tomahawk::playlistinterface_ptr TrackView::playlistInterface() const { - return proxyModel()->playlistInterface(); + if ( m_playlistInterface.isNull() ) + { + return proxyModel()->playlistInterface(); + } + + return m_playlistInterface; +} + + +void +TrackView::setPlaylistInterface( const Tomahawk::playlistinterface_ptr& playlistInterface ) +{ + m_playlistInterface = playlistInterface; } diff --git a/src/libtomahawk/playlist/TrackView.h b/src/libtomahawk/playlist/TrackView.h index 10c7be9bd..a9fdb09cb 100644 --- a/src/libtomahawk/playlist/TrackView.h +++ b/src/libtomahawk/playlist/TrackView.h @@ -64,6 +64,7 @@ public: virtual QWidget* widget() { return this; } virtual Tomahawk::playlistinterface_ptr playlistInterface() const; + void setPlaylistInterface( const Tomahawk::playlistinterface_ptr& playlistInterface ); virtual QString title() const; virtual QString description() const; @@ -123,7 +124,7 @@ private slots: void onCustomContextMenu( const QPoint& pos ); - void autoPlayResolveFinished( const Tomahawk::query_ptr& query, int row ); + void autoPlayResolveFinished( const Tomahawk::query_ptr& query, int row ); private: void startAutoPlay( const QModelIndex& index ); @@ -145,6 +146,7 @@ private: bool m_updateContextView; + Tomahawk::playlistinterface_ptr m_playlistInterface; QModelIndex m_hoveredIndex; QModelIndex m_contextMenuIndex;