From 46f3f4377a2530783debceef2526301dabf28890 Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Sat, 12 Feb 2011 21:48:21 -0500 Subject: [PATCH] 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 );