From 46f3f4377a2530783debceef2526301dabf28890 Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Sat, 12 Feb 2011 21:48:21 -0500 Subject: [PATCH 1/2] handle failing stations Show setup when station is over --- .../playlist/dynamic/widgets/DynamicWidget.cpp | 14 +++++++++++++- .../playlist/dynamic/widgets/DynamicWidget.h | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.cpp b/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.cpp index 98a802bae..bdcdac9e2 100644 --- a/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.cpp +++ b/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.cpp @@ -65,7 +65,7 @@ DynamicWidget::DynamicWidget( const Tomahawk::dynplaylist_ptr& playlist, QWidget m_layout->addWidget( m_view, 1 ); connect( m_model, SIGNAL( collapseFromTo( int, int ) ), m_view, SLOT( collapseEntries( int, int ) ) ); - connect( m_model, SIGNAL( trackGenerationFailure( QString ) ), m_view, SLOT( showMessage( QString ) ) ); + connect( m_model, SIGNAL( trackGenerationFailure( QString ) ), this, SLOT( stationFailed( QString ) ) ); m_setup = new DynamicSetupWidget( playlist, this ); @@ -227,6 +227,17 @@ DynamicWidget::generate( int num ) } } +void +DynamicWidget::stationFailed( const QString& msg ) +{ + m_view->showMessage( msg ); + + if( m_runningOnDemand ) { + stopStation(); + } +} + + void DynamicWidget::pausePressed() { @@ -256,6 +267,7 @@ DynamicWidget::stopStation() // TODO until i add a qwidget interface QMetaObject::invokeMethod( m_steering, "fadeOut", Qt::DirectConnection ); + m_setup->fadeIn(); } void diff --git a/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.h b/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.h index 30469c813..4cb0778f6 100644 --- a/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.h +++ b/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.h @@ -81,6 +81,7 @@ public slots: void playPressed(); void pausePressed(); + void stationFailed( const QString& ); private slots: void generate( int = -1 ); From 9238dcccaa3b536bf99e507b65b3e6d7b91f5612 Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Sat, 12 Feb 2011 22:30:32 -0500 Subject: [PATCH 2/2] don't stop playing if a station fails, but stop station --- src/libtomahawk/playlist/dynamic/DynamicModel.cpp | 5 +++-- src/libtomahawk/playlist/dynamic/DynamicModel.h | 2 +- .../playlist/dynamic/widgets/DynamicWidget.cpp | 9 +++------ src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.h | 2 +- 4 files changed, 8 insertions(+), 10 deletions(-) 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();