void AudioEngine::playItem( Tomahawk::playlistinterface_ptr playlist, const Tomahawk::query_ptr& query ) { if ( query->resolvingFinished() ) { if ( query->numResults() && query->results().first()->isOnline() ) { playItem( playlist, query->results().first() ); return; } JobStatusView::instance()->model()->addJob( new ErrorStatusMessage( tr( "Sorry, Tomahawk couldn't find the track '%1' by %2" ).arg( query->track() ).arg( query->artist() ), 15 ) ); if ( isStopped() ) emit stopped(); // we do this so the original caller knows we couldn't find this track } else { Pipeline::instance()->resolve( query ); NewClosure( query.data(), SIGNAL( resolvingFinished( bool ) ), const_cast<AudioEngine*>(this), SLOT( playItem( Tomahawk::playlistinterface_ptr, Tomahawk::query_ptr ) ), playlist, query ); } }
void PlaylistModel::append( const Tomahawk::query_ptr& query ) { if ( query.isNull() ) return; if ( !query->resolvingFinished() ) Pipeline::instance()->resolve( query ); TrackModel::append( query ); }