1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-09-03 02:42:52 +02:00

Merge branch 'master' into qmlstation

This commit is contained in:
Christian Muehlhaeuser
2012-11-28 13:29:56 +01:00
3 changed files with 19 additions and 17 deletions

View File

@@ -162,12 +162,12 @@ PlaylistInterface::filterTracks( const QList<Tomahawk::query_ptr>& queries )
bool
PlaylistInterface::hasNextResult() const
{
return !( siblingResult( 1 ).isNull() );
return ( siblingResult( 1 ) );
}
bool
PlaylistInterface::hasPreviousResult() const
{
return !( siblingResult( -1 ).isNull() );
return ( siblingResult( -1 ) );
}

View File

@@ -141,7 +141,14 @@ AudioEngine::play()
sendNowPlayingNotification( Tomahawk::InfoSystem::InfoNowResumed );
}
else
next();
{
if ( !m_currentTrack && m_playlist && m_playlist->nextResult() )
{
loadNextTrack();
}
else
next();
}
}
@@ -220,11 +227,13 @@ AudioEngine::canGoNext()
return false;
if ( m_playlist.data()->skipRestrictions() == PlaylistModes::NoSkip ||
m_playlist.data()->skipRestrictions() == PlaylistModes::NoSkipForwards )
m_playlist.data()->skipRestrictions() == PlaylistModes::NoSkipForwards )
{
return false;
}
if ( !m_currentTrack.isNull() && !m_playlist->hasNextResult() &&
( m_playlist->currentItem().isNull() || ( m_currentTrack->id() == m_playlist->currentItem()->id() ) ) )
( m_playlist->currentItem().isNull() || ( m_currentTrack->id() == m_playlist->currentItem()->id() ) ) )
{
//For instance, when doing a catch-up while listening along, but the person
//you're following hasn't started a new track yet...don't do anything
@@ -232,7 +241,7 @@ AudioEngine::canGoNext()
return false;
}
return ( m_playlist.data()->hasNextResult() && m_playlist.data()->nextResult()->isOnline() );
return ( m_currentTrack && m_playlist.data()->hasNextResult() && m_playlist.data()->nextResult()->isOnline() );
}
@@ -246,7 +255,7 @@ AudioEngine::canGoPrevious()
m_playlist.data()->skipRestrictions() == PlaylistModes::NoSkipBackwards )
return false;
return ( m_playlist.data()->hasPreviousResult() && m_playlist.data()->previousResult()->isOnline() );
return ( m_currentTrack && m_playlist.data()->hasPreviousResult() && m_playlist.data()->previousResult()->isOnline() );
}
@@ -520,7 +529,7 @@ AudioEngine::loadPreviousTrack()
}
Tomahawk::result_ptr result;
if ( m_playlist.data()->hasPreviousResult() )
if ( m_playlist.data()->previousResult() )
{
result = m_playlist.data()->previousResult();
m_currentTrackPlaylist = m_playlist;
@@ -561,7 +570,7 @@ AudioEngine::loadNextTrack()
{
tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "Loading playlist's next item" << m_playlist.data() << m_playlist->shuffled();
if ( m_playlist.data()->hasNextResult() )
if ( m_playlist.data()->nextResult() )
{
result = m_playlist.data()->nextResult();
m_currentTrackPlaylist = m_playlist;

View File

@@ -195,9 +195,6 @@ PlayableProxyModelPlaylistInterface::siblingIndex( int itemsAway, qint64 rootInd
}
else
{
if ( !proxyModel->currentIndex().isValid() )
return -1;
// random mode is enabled
if ( m_shuffleCache.isValid() )
{
@@ -251,17 +248,13 @@ PlayableProxyModelPlaylistInterface::siblingIndex( int itemsAway, qint64 rootInd
idx = proxyModel->mapFromSource( pitem->index );
}
if ( idx.isValid() )
idx = proxyModel->index( idx.row() + itemsAway, 0 );
idx = proxyModel->index( idx.row() + itemsAway, 0 );
}
}
}
if ( !idx.isValid() && m_repeatMode == PlaylistModes::RepeatAll )
{
if ( !proxyModel->currentIndex().isValid() )
return -1;
// repeat all tracks
if ( itemsAway > 0 )
{