void PlaylistModel::append( const Tomahawk::artist_ptr& artist ) { if ( artist.isNull() ) return; connect( artist.data(), SIGNAL( tracksAdded( QList<Tomahawk::query_ptr> ) ), SLOT( append( QList<Tomahawk::query_ptr> ) ) ); if ( rowCount( QModelIndex() ) == 0 ) { setTitle( artist->name() ); setDescription( tr( "All tracks by %1" ).arg( artist->name() ) ); m_isTemporary = true; } append( artist->playlistInterface()->tracks() ); }
void AudioEngine::playItem( const Tomahawk::artist_ptr& artist ) { playlistinterface_ptr pli = artist->playlistInterface( Mixed ); if ( pli->isFinished() ) { if ( !pli->tracks().count() ) { JobStatusView::instance()->model()->addJob( new ErrorStatusMessage( tr( "Sorry, Tomahawk couldn't find the artist '%1'" ).arg( artist->name() ), 15 ) ); if ( isStopped() ) emit stopped(); // we do this so the original caller knows we couldn't find this track } else playItem( pli, pli->tracks().first() ); } else { NewClosure( artist.data(), SIGNAL( tracksAdded( QList<Tomahawk::query_ptr>, Tomahawk::ModelMode, Tomahawk::collection_ptr ) ), const_cast<AudioEngine*>(this), SLOT( playItem( Tomahawk::artist_ptr ) ), artist ); pli->tracks(); } }