diff --git a/src/libtomahawk/collection/Collection.cpp b/src/libtomahawk/collection/Collection.cpp index 693b6049f..520970f3c 100644 --- a/src/libtomahawk/collection/Collection.cpp +++ b/src/libtomahawk/collection/Collection.cpp @@ -24,6 +24,7 @@ #include "utils/Logger.h" #include "playlist/PlaylistUpdaterInterface.h" #include "utils/ImageRegistry.h" +#include "accounts/AccountManager.h" #include #include @@ -231,12 +232,25 @@ Collection::setPlaylists( const QList& plists ) // qDebug() << "Batch inserting playlist:" << p->guid(); m_playlists.insert( p->guid(), p ); if ( !m_source.isNull() && m_source->isLocal() ) - PlaylistUpdaterInterface::loadForPlaylist( p ); + { + if ( Tomahawk::Accounts::AccountManager::instance()->isReady() ) + doLoadPlaylistUpdater( p ); + else + NewClosure( Tomahawk::Accounts::AccountManager::instance(), SIGNAL( ready() ), + this, SLOT( doLoadPlaylistUpdater( playlist_ptr ) ), p ); + } } emit playlistsAdded( plists ); } +void +Collection::doLoadPlaylistUpdater( const playlist_ptr& p ) +{ + PlaylistUpdaterInterface::loadForPlaylist( p ); +} + + void Collection::setAutoPlaylists( const QList< Tomahawk::dynplaylist_ptr >& plists ) { diff --git a/src/libtomahawk/collection/Collection.h b/src/libtomahawk/collection/Collection.h index 574dce637..0fa2b52bc 100644 --- a/src/libtomahawk/collection/Collection.h +++ b/src/libtomahawk/collection/Collection.h @@ -129,6 +129,7 @@ protected: private slots: void onSynced(); + void doLoadPlaylistUpdater( const playlist_ptr& p ); private: bool m_changed;