From 288da2be796674d09cec465384fc3b8ee07cdfff Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Wed, 9 Mar 2011 20:28:34 -0500 Subject: [PATCH] fix not getting more tracks when restarting a failed station --- src/libtomahawk/playlist/dynamic/DynamicModel.cpp | 11 ++++------- src/libtomahawk/playlist/dynamic/DynamicModel.h | 2 +- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/libtomahawk/playlist/dynamic/DynamicModel.cpp b/src/libtomahawk/playlist/dynamic/DynamicModel.cpp index 9ac378410..923acb449 100644 --- a/src/libtomahawk/playlist/dynamic/DynamicModel.cpp +++ b/src/libtomahawk/playlist/dynamic/DynamicModel.cpp @@ -23,11 +23,11 @@ using namespace Tomahawk; DynamicModel::DynamicModel( QObject* parent ) : PlaylistModel( parent ) - , m_startOnResolved( false ) , m_onDemandRunning( false ) , m_changeOnNext( false ) , m_searchingForNext( false ) , m_filterUnresolvable( true ) + , m_startingAfterFailed( false ) , m_currentAttempts( 0 ) , m_lastResolvedRow( 0 ) { @@ -69,7 +69,6 @@ DynamicModel::startOnDemand() m_playlist->generator()->startOnDemand(); m_onDemandRunning = true; - m_startOnResolved = false; // not anymore---user clicks a track to start it } void @@ -111,10 +110,6 @@ DynamicModel::trackResolved( bool resolved ) Query* q = qobject_cast(sender()); qDebug() << "Got successful resolved track:" << q->track() << q->artist() << m_lastResolvedRow << m_currentAttempts; - if( m_startOnResolved ) { // on first start - m_startOnResolved = false; - AudioEngine::instance()->play(); - } if( m_currentAttempts > 0 ) { qDebug() << "EMITTING AN ASK FOR COLLAPSE:" << m_lastResolvedRow << m_currentAttempts; @@ -133,7 +128,9 @@ DynamicModel::trackResolveFinished( bool success ) Query* q = qobject_cast(sender()); qDebug() << "Got not resolved track:" << q->track() << q->artist() << m_lastResolvedRow << m_currentAttempts; m_currentAttempts++; - if( m_currentAttempts < 20 ) { + + int curAttempts = m_startingAfterFailed ? m_currentAttempts - 20 : m_currentAttempts; // if we just failed, m_currentAttempts includes those failures + if( curAttempts < 20 ) { qDebug() << "FETCHING MORE!"; m_playlist->generator()->fetchNext(); } else { diff --git a/src/libtomahawk/playlist/dynamic/DynamicModel.h b/src/libtomahawk/playlist/dynamic/DynamicModel.h index 1a42d765a..780042dee 100644 --- a/src/libtomahawk/playlist/dynamic/DynamicModel.h +++ b/src/libtomahawk/playlist/dynamic/DynamicModel.h @@ -78,12 +78,12 @@ private: QList< query_ptr > m_toResolveList; QList< query_ptr > m_resolvedList; - bool m_startOnResolved; bool m_onDemandRunning; bool m_changeOnNext; bool m_searchingForNext; bool m_firstTrackGenerated; bool m_filterUnresolvable; + bool m_startingAfterFailed; int m_currentAttempts; int m_lastResolvedRow; };