From 357d9b13d5dfa48a3a2add1f797e48c452466bf5 Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Thu, 13 Jun 2013 10:18:36 +0200 Subject: [PATCH] * Emit a signal when the currentTrackPlaylist changes in AudioEngine. --- src/libtomahawk/audio/AudioEngine.cpp | 25 +++++++++++++++++++++---- src/libtomahawk/audio/AudioEngine.h | 2 ++ 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/libtomahawk/audio/AudioEngine.cpp b/src/libtomahawk/audio/AudioEngine.cpp index 7f0ebb5b9..1a1073712 100644 --- a/src/libtomahawk/audio/AudioEngine.cpp +++ b/src/libtomahawk/audio/AudioEngine.cpp @@ -688,7 +688,7 @@ AudioEngine::loadPreviousTrack() if ( d->playlist.data()->previousResult() ) { result = d->playlist.data()->setSiblingResult( -1 ); - d->currentTrackPlaylist = d->playlist; + setCurrentTrackPlaylist( d->playlist ); } if ( !result.isNull() ) @@ -731,7 +731,7 @@ AudioEngine::loadNextTrack() if ( d->playlist.data()->nextResult() ) { result = d->playlist.data()->setSiblingResult( 1 ); - d->currentTrackPlaylist = d->playlist; + setCurrentTrackPlaylist( d->playlist ); } } @@ -763,9 +763,13 @@ AudioEngine::playItem( Tomahawk::playlistinterface_ptr playlist, const Tomahawk: setPlaylist( playlist ); if ( playlist.isNull() && !fromQuery.isNull() ) - d->currentTrackPlaylist = playlistinterface_ptr( new SingleTrackPlaylistInterface( fromQuery ) ); + { + setCurrentTrackPlaylist( playlistinterface_ptr( new SingleTrackPlaylistInterface( fromQuery ) ) ); + } else - d->currentTrackPlaylist = playlist; + { + setCurrentTrackPlaylist( playlist ); + } if ( !result.isNull() ) { @@ -1210,3 +1214,16 @@ AudioEngine::onVolumeChanged( qreal volume ) { emit volumeChanged( volume * 100 ); } + + +void +AudioEngine::setCurrentTrackPlaylist( const playlistinterface_ptr& playlist ) +{ + Q_D( AudioEngine ); + + if ( d->currentTrackPlaylist != playlist ) + { + d->currentTrackPlaylist = playlist; + emit currentTrackPlaylistChanged( d->currentTrackPlaylist ); + } +} diff --git a/src/libtomahawk/audio/AudioEngine.h b/src/libtomahawk/audio/AudioEngine.h index 0e052f0a7..0544fe120 100644 --- a/src/libtomahawk/audio/AudioEngine.h +++ b/src/libtomahawk/audio/AudioEngine.h @@ -117,6 +117,7 @@ signals: void timerPercentage( unsigned int percentage ); void playlistChanged( Tomahawk::playlistinterface_ptr playlist ); + void currentTrackPlaylistChanged( Tomahawk::playlistinterface_ptr playlist ); void error( AudioEngine::AudioErrorCode errorCode ); @@ -143,6 +144,7 @@ private: void checkStateQueue(); void queueState( AudioState state ); void setState( AudioState state ); + void setCurrentTrackPlaylist( const Tomahawk::playlistinterface_ptr& playlist ); Q_DECLARE_PRIVATE( AudioEngine ); AudioEnginePrivate* d_ptr;