From 525fcc650efd85637e4f451e90472e0ebc5784a5 Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Mon, 24 Nov 2014 18:46:45 +0100 Subject: [PATCH] Use a closure to handle tracks async. --- src/libtomahawk/playlist/TreeModel.cpp | 24 ++++----------------- src/libtomahawk/playlist/TreeModel.h | 3 +-- src/libtomahawk/viewpages/AlbumViewPage.cpp | 2 +- 3 files changed, 6 insertions(+), 23 deletions(-) diff --git a/src/libtomahawk/playlist/TreeModel.cpp b/src/libtomahawk/playlist/TreeModel.cpp index bc7838181..a009e75f2 100644 --- a/src/libtomahawk/playlist/TreeModel.cpp +++ b/src/libtomahawk/playlist/TreeModel.cpp @@ -33,6 +33,7 @@ #include "AlbumPlaylistInterface.h" #include "PlayableItem.h" #include "utils/TomahawkUtilsGui.h" +#include "utils/Closure.h" #include "utils/Logger.h" using namespace Tomahawk; @@ -207,14 +208,12 @@ TreeModel::addAlbums( const QModelIndex& parent, const QList, Tomahawk::ModelMode, Tomahawk::collection_ptr ) ), - SLOT( onTracksFound( QList, Tomahawk::ModelMode, Tomahawk::collection_ptr ) ) ); + NewClosure( album.data(), SIGNAL( tracksAdded( QList, Tomahawk::ModelMode, Tomahawk::collection_ptr ) ), + const_cast(this), SLOT( addTracks( Tomahawk::album_ptr, QModelIndex ) ), album, parent ); onTracksAdded( album->tracks( m_mode, m_collection ), parent ); } @@ -324,21 +323,6 @@ TreeModel::onTracksAdded( const QList& tracks, const QModel } -void -TreeModel::onTracksFound( const QList& tracks, Tomahawk::ModelMode mode, Tomahawk::collection_ptr collection ) -{ - if ( mode != m_mode || collection != m_collection ) - return; - - Tomahawk::Album* album = qobject_cast( sender() ); - - tDebug() << Q_FUNC_INFO << "Adding album:" << album->artist()->name() << album->name() << album->id(); - QModelIndex idx = indexFromAlbum( album->weakRef().toStrongRef() ); - tDebug() << Q_FUNC_INFO << "Adding tracks" << tracks.count() << "to index:" << idx; - onTracksAdded( tracks, idx ); -} - - QModelIndex TreeModel::indexFromArtist( const Tomahawk::artist_ptr& artist ) const { diff --git a/src/libtomahawk/playlist/TreeModel.h b/src/libtomahawk/playlist/TreeModel.h index e0a64d617..6270f65c3 100644 --- a/src/libtomahawk/playlist/TreeModel.h +++ b/src/libtomahawk/playlist/TreeModel.h @@ -56,7 +56,6 @@ public: //void addFilteredCollection( const Tomahawk::collection_ptr& collection, unsigned int amount, DatabaseCommand_AllArtists::SortOrder order ); void addArtists( const Tomahawk::artist_ptr& artist ); - void addTracks( const Tomahawk::album_ptr& album, const QModelIndex& parent, bool autoRefetch = false ); void fetchAlbums( const Tomahawk::artist_ptr& artist ); void getCover( const QModelIndex& index ); @@ -70,6 +69,7 @@ public: public slots: void addAlbums( const QModelIndex& parent, const QList& albums ); + void addTracks( const Tomahawk::album_ptr& album, const QModelIndex& parent ); signals: void modeChanged( Tomahawk::ModelMode mode ); @@ -82,7 +82,6 @@ private slots: void onArtistsAdded( const QList& artists ); void onAlbumsFound( const QList& albums, Tomahawk::ModelMode mode ); void onTracksAdded( const QList& tracks, const QModelIndex& index ); - void onTracksFound( const QList& tracks, Tomahawk::ModelMode mode, Tomahawk::collection_ptr collection ); private: Tomahawk::ModelMode m_mode; diff --git a/src/libtomahawk/viewpages/AlbumViewPage.cpp b/src/libtomahawk/viewpages/AlbumViewPage.cpp index 0e3418f06..a890569d6 100644 --- a/src/libtomahawk/viewpages/AlbumViewPage.cpp +++ b/src/libtomahawk/viewpages/AlbumViewPage.cpp @@ -152,7 +152,7 @@ AlbumInfoWidget::load( const album_ptr& album ) m_headerWidget->setCaption( album->artist()->name() ); m_tracksModel->startLoading(); - m_tracksModel->addTracks( album, QModelIndex(), true ); + m_tracksModel->addTracks( album, QModelIndex() ); onAlbumImageUpdated(); }