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() ); }
Album::Album( const QString& name, const Tomahawk::artist_ptr& artist ) : QObject() , m_waitingForId( true ) , m_name( name ) , m_artist( artist ) , m_coverLoaded( false ) , m_coverLoading( false ) #ifndef ENABLE_HEADLESS , m_cover( 0 ) #endif { tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "Creating album:" << name << artist->name(); m_sortname = DatabaseImpl::sortname( name ); }
inline QString albumCacheKey( const Tomahawk::artist_ptr& artist, const QString& albumName ) { return QString( "%1\t\t%2" ).arg( artist->name().toLower() ).arg( albumName.toLower() ); }
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(); } }