From 5d950bd1399cce2a9e43feda476e955f4917ad57 Mon Sep 17 00:00:00 2001 From: Dominik Schmidt Date: Mon, 18 Jan 2016 02:45:05 +0100 Subject: [PATCH] Add colum mapping to PlayableProxyModel --- src/libtomahawk/playlist/PlayableModel.cpp | 3 ++- src/libtomahawk/playlist/PlayableProxyModel.cpp | 11 +++++++++-- src/libtomahawk/playlist/PlayableProxyModel.h | 2 ++ src/libtomahawk/viewpages/CollectionViewPage.cpp | 8 ++++++++ 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/libtomahawk/playlist/PlayableModel.cpp b/src/libtomahawk/playlist/PlayableModel.cpp index a6278e034..df34ddee1 100644 --- a/src/libtomahawk/playlist/PlayableModel.cpp +++ b/src/libtomahawk/playlist/PlayableModel.cpp @@ -119,8 +119,9 @@ int PlayableModel::columnCount( const QModelIndex& parent ) const { Q_UNUSED( parent ); + Q_D( const PlayableModel ); - return 13; + return d->header.length(); } diff --git a/src/libtomahawk/playlist/PlayableProxyModel.cpp b/src/libtomahawk/playlist/PlayableProxyModel.cpp index 02a7a9a0e..d5119827d 100644 --- a/src/libtomahawk/playlist/PlayableProxyModel.cpp +++ b/src/libtomahawk/playlist/PlayableProxyModel.cpp @@ -614,11 +614,11 @@ PlayableProxyModel::columnCount( const QModelIndex& parent ) const break; case Collection: - return 10; + return m_headerStyle[ Collection ].length(); break; case Locker: - return 11; + return m_headerStyle[ Locker ].length(); break; case Detailed: @@ -733,6 +733,13 @@ PlayableProxyModel::setFilter( const QString& pattern ) } +int +PlayableProxyModel::mapSourceColumnToColumn( PlayableModel::Columns column ) +{ + return m_headerStyle[ m_style ].indexOf( column ); +} + + void PlayableProxyModel::setCurrentIndex( const QModelIndex& index ) { diff --git a/src/libtomahawk/playlist/PlayableProxyModel.h b/src/libtomahawk/playlist/PlayableProxyModel.h index 165f2988e..93656e3cc 100644 --- a/src/libtomahawk/playlist/PlayableProxyModel.h +++ b/src/libtomahawk/playlist/PlayableProxyModel.h @@ -98,6 +98,8 @@ public: virtual void setFilter( const QString& pattern ); virtual void updateDetailedInfo( const QModelIndex& index ); + int mapSourceColumnToColumn( PlayableModel::Columns column ); + signals: void filterChanged( const QString& filter ); diff --git a/src/libtomahawk/viewpages/CollectionViewPage.cpp b/src/libtomahawk/viewpages/CollectionViewPage.cpp index 9be885792..295fad1cf 100644 --- a/src/libtomahawk/viewpages/CollectionViewPage.cpp +++ b/src/libtomahawk/viewpages/CollectionViewPage.cpp @@ -62,6 +62,8 @@ CollectionViewPage::CollectionViewPage( const Tomahawk::collection_ptr& collecti m_columnView->proxyModel()->setStyle( PlayableProxyModel::SingleColumn ); + + PlayableProxyModel* trackViewProxyModel = m_trackView->proxyModel(); if ( collection->backendType() == Collection::ScriptCollectionType ) { m_trackView->proxyModel()->setStyle( PlayableProxyModel::Locker ); @@ -70,6 +72,12 @@ CollectionViewPage::CollectionViewPage( const Tomahawk::collection_ptr& collecti { m_trackView->proxyModel()->setStyle( PlayableProxyModel::Collection ); } + // mapSourceColumnToColumn depends on the just set PlayableProxyModel::PlayableItemStyle + m_trackView->setColumnHidden( trackViewProxyModel->mapSourceColumnToColumn( PlayableModel::Composer ), true ); + m_trackView->setColumnHidden( trackViewProxyModel->mapSourceColumnToColumn( PlayableModel::Origin ), true ); + m_trackView->setColumnHidden( trackViewProxyModel->mapSourceColumnToColumn( PlayableModel::Score ), true ); + m_trackView->setColumnHidden( trackViewProxyModel->mapSourceColumnToColumn( PlayableModel::Bitrate ), true ); + m_trackView->setGuid( QString( "trackview/flat" ) );