From 4db3ea8d36d08f22bea9c9297e7663e57ca81274 Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Mon, 3 Dec 2012 17:37:59 +0100 Subject: [PATCH] * Update control-states when queue changes. --- src/libtomahawk/audio/AudioEngine.cpp | 23 +++++++++++++++++++++-- src/libtomahawk/audio/AudioEngine.h | 2 +- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/libtomahawk/audio/AudioEngine.cpp b/src/libtomahawk/audio/AudioEngine.cpp index bb11d2770..ba3454fe2 100644 --- a/src/libtomahawk/audio/AudioEngine.cpp +++ b/src/libtomahawk/audio/AudioEngine.cpp @@ -832,6 +832,25 @@ AudioEngine::timerTriggered( qint64 time ) } +void +AudioEngine::setQueue( const playlistinterface_ptr& queue ) +{ + if ( m_queue ) + { + disconnect( m_queue.data(), SIGNAL( previousTrackAvailable() ), this, SIGNAL( controlStateChanged() ) ); + disconnect( m_queue.data(), SIGNAL( nextTrackAvailable() ), this, SIGNAL( controlStateChanged() ) ); + } + + m_queue = queue; + + if ( m_queue ) + { + connect( m_queue.data(), SIGNAL( previousTrackAvailable() ), SIGNAL( controlStateChanged() ) ); + connect( m_queue.data(), SIGNAL( nextTrackAvailable() ), SIGNAL( controlStateChanged() ) ); + } +} + + void AudioEngine::setPlaylist( Tomahawk::playlistinterface_ptr playlist ) { @@ -842,8 +861,8 @@ AudioEngine::setPlaylist( Tomahawk::playlistinterface_ptr playlist ) { if ( m_playlist.data() ) { - disconnect( m_playlist.data(), SIGNAL( previousTrackAvailable( bool ) ) ); - disconnect( m_playlist.data(), SIGNAL( nextTrackAvailable( bool ) ) ); + disconnect( m_playlist.data(), SIGNAL( previousTrackAvailable() ) ); + disconnect( m_playlist.data(), SIGNAL( nextTrackAvailable() ) ); } m_playlist.data()->reset(); diff --git a/src/libtomahawk/audio/AudioEngine.h b/src/libtomahawk/audio/AudioEngine.h index 6e1d7086f..65dea3856 100644 --- a/src/libtomahawk/audio/AudioEngine.h +++ b/src/libtomahawk/audio/AudioEngine.h @@ -94,7 +94,7 @@ public slots: void playItem( const Tomahawk::artist_ptr& artist ); void playItem( const Tomahawk::album_ptr& album ); void setPlaylist( Tomahawk::playlistinterface_ptr playlist ); - void setQueue( Tomahawk::playlistinterface_ptr queue ) { m_queue = queue; } + void setQueue( const Tomahawk::playlistinterface_ptr& queue ); void setStopAfterTrack( const Tomahawk::query_ptr& query );