diff --git a/src/libtomahawk/playlist/dynamic/DynamicModel.cpp b/src/libtomahawk/playlist/dynamic/DynamicModel.cpp index ac64b2848..5b3182525 100644 --- a/src/libtomahawk/playlist/dynamic/DynamicModel.cpp +++ b/src/libtomahawk/playlist/dynamic/DynamicModel.cpp @@ -77,10 +77,11 @@ DynamicModel::newTrackGenerated( const Tomahawk::query_ptr& query ) } void -DynamicModel::stopOnDemand() +DynamicModel::stopOnDemand( bool stopPlaying ) { m_onDemandRunning = false; - AudioEngine::instance()->stop(); + if( stopPlaying ) + AudioEngine::instance()->stop(); disconnect( AudioEngine::instance(), SIGNAL( loading( Tomahawk::result_ptr ) ), this, SLOT( newTrackLoading() ) ); } diff --git a/src/libtomahawk/playlist/dynamic/DynamicModel.h b/src/libtomahawk/playlist/dynamic/DynamicModel.h index 2386d3fd2..53c9828ce 100644 --- a/src/libtomahawk/playlist/dynamic/DynamicModel.h +++ b/src/libtomahawk/playlist/dynamic/DynamicModel.h @@ -37,7 +37,7 @@ public: virtual ~DynamicModel(); void startOnDemand(); - void stopOnDemand(); + void stopOnDemand( bool stopPlaying = true ); void changeStation(); void loadPlaylist( const dynplaylist_ptr& playlist ); diff --git a/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.cpp b/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.cpp index bdcdac9e2..42c065896 100644 --- a/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.cpp +++ b/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.cpp @@ -233,7 +233,7 @@ DynamicWidget::stationFailed( const QString& msg ) m_view->showMessage( msg ); if( m_runningOnDemand ) { - stopStation(); + stopStation( false ); } } @@ -260,9 +260,9 @@ DynamicWidget::playPressed() void -DynamicWidget::stopStation() +DynamicWidget::stopStation( bool stopPlaying ) { - m_model->stopOnDemand(); + m_model->stopOnDemand( stopPlaying ); m_runningOnDemand = false; // TODO until i add a qwidget interface @@ -345,9 +345,6 @@ void DynamicWidget::generatorError( const QString& title, const QString& content ) { m_view->showMessageTimeout( title, content ); - - if( m_runningOnDemand ) - stopStation(); } void diff --git a/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.h b/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.h index 4cb0778f6..7db1a75c2 100644 --- a/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.h +++ b/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.h @@ -77,7 +77,7 @@ public slots: void playlistTypeChanged(QString); void startStation(); - void stopStation(); + void stopStation( bool stopPlaying = true ); void playPressed(); void pausePressed();