From 225d5764e733101dcf77ef40fa827ae1abc64dcd Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Mon, 20 Oct 2014 02:49:11 +0200 Subject: [PATCH] CollectionViewPage should do all the grunt work. Pass the collection_ptr to its ctor. --- src/libtomahawk/ViewManager.cpp | 15 +-------------- .../viewpages/CollectionViewPage.cpp | 17 ++++++++++++++++- src/libtomahawk/viewpages/CollectionViewPage.h | 4 +++- 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/libtomahawk/ViewManager.cpp b/src/libtomahawk/ViewManager.cpp index f4b0a8190..ee3890777 100644 --- a/src/libtomahawk/ViewManager.cpp +++ b/src/libtomahawk/ViewManager.cpp @@ -264,20 +264,7 @@ ViewManager::show( const Tomahawk::collection_ptr& collection ) CollectionViewPage* view; if ( !m_collectionViews.contains( collection ) || m_collectionViews.value( collection ).isNull() ) { - view = new CollectionViewPage(); - - view->columnView()->proxyModel()->setStyle( PlayableProxyModel::Collection ); - TreeModel* model = new TreeModel(); - PlayableModel* flatModel = new PlayableModel(); - PlayableModel* albumModel = new PlayableModel(); - - view->setTreeModel( model ); - view->setFlatModel( flatModel ); - view->setAlbumModel( albumModel ); - - model->addCollection( collection ); - flatModel->appendTracks( collection ); - albumModel->appendAlbums( collection ); + view = new CollectionViewPage( collection ); setPage( view ); diff --git a/src/libtomahawk/viewpages/CollectionViewPage.cpp b/src/libtomahawk/viewpages/CollectionViewPage.cpp index 6200a2150..ba420f7ee 100644 --- a/src/libtomahawk/viewpages/CollectionViewPage.cpp +++ b/src/libtomahawk/viewpages/CollectionViewPage.cpp @@ -40,7 +40,7 @@ using namespace Tomahawk; -CollectionViewPage::CollectionViewPage( QWidget* parent ) +CollectionViewPage::CollectionViewPage( const Tomahawk::collection_ptr& collection, QWidget* parent ) : QWidget( parent ) , m_header( new FilterHeader( this ) ) , m_columnView( new ColumnView() ) @@ -48,6 +48,7 @@ CollectionViewPage::CollectionViewPage( QWidget* parent ) , m_albumView( new GridView() ) , m_model( 0 ) , m_flatModel( 0 ) + , m_collection( collection ) , m_temporary( false ) { qRegisterMetaType< CollectionViewPageMode >( "CollectionViewPageMode" ); @@ -55,6 +56,8 @@ CollectionViewPage::CollectionViewPage( QWidget* parent ) m_header->setBackground( ImageRegistry::instance()->pixmap( RESPATH "images/collection_background.png", QSize( 0, 0 ) ), false ); setPixmap( TomahawkUtils::defaultPixmap( TomahawkUtils::DefaultCollection, TomahawkUtils::Original, QSize( 256, 256 ) ) ); + m_columnView->proxyModel()->setStyle( PlayableProxyModel::Collection ); + m_trackView->setColumnHidden( PlayableModel::Composer, true ); m_trackView->setColumnHidden( PlayableModel::Origin, true ); m_trackView->setColumnHidden( PlayableModel::Score, true ); @@ -108,6 +111,18 @@ CollectionViewPage::CollectionViewPage( QWidget* parent ) m_stack->addWidget( m_albumView ); m_stack->addWidget( m_trackView ); + TreeModel* model = new TreeModel(); + PlayableModel* flatModel = new PlayableModel(); + PlayableModel* albumModel = new PlayableModel(); + + setTreeModel( model ); + setFlatModel( flatModel ); + setAlbumModel( albumModel ); + + model->addCollection( collection ); + flatModel->appendTracks( collection ); + albumModel->appendAlbums( collection ); + connect( m_header, SIGNAL( filterTextChanged( QString ) ), SLOT( setFilter( QString ) ) ); } diff --git a/src/libtomahawk/viewpages/CollectionViewPage.h b/src/libtomahawk/viewpages/CollectionViewPage.h index 26ca42e26..1bd50fb05 100644 --- a/src/libtomahawk/viewpages/CollectionViewPage.h +++ b/src/libtomahawk/viewpages/CollectionViewPage.h @@ -42,7 +42,7 @@ public: enum CollectionViewPageMode { Columns = 0, Albums = 1, Flat = 2 }; - explicit CollectionViewPage( QWidget* parent = 0 ); + explicit CollectionViewPage( const Tomahawk::collection_ptr& collection, QWidget* parent = 0 ); ~CollectionViewPage(); virtual QWidget* widget() { return this; } @@ -96,6 +96,8 @@ private: PlayableModel* m_albumModel; QStackedWidget* m_stack; + Tomahawk::collection_ptr m_collection; + CollectionViewPageMode m_mode; bool m_temporary; };