From c35d77891bdd53e7489a556721e2007ee9594318 Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Thu, 24 Mar 2011 14:50:47 +0100 Subject: [PATCH] * This should fix stations ignoring playable but not perfectly solved queries. --- .../playlist/dynamic/DynamicModel.cpp | 38 ++++++++----------- .../playlist/dynamic/DynamicModel.h | 1 - 2 files changed, 15 insertions(+), 24 deletions(-) diff --git a/src/libtomahawk/playlist/dynamic/DynamicModel.cpp b/src/libtomahawk/playlist/dynamic/DynamicModel.cpp index 89f3cd36c..43fceeaac 100644 --- a/src/libtomahawk/playlist/dynamic/DynamicModel.cpp +++ b/src/libtomahawk/playlist/dynamic/DynamicModel.cpp @@ -81,7 +81,6 @@ DynamicModel::newTrackGenerated( const Tomahawk::query_ptr& query ) { if( m_onDemandRunning ) { connect( query.data(), SIGNAL( resolvingFinished( bool ) ), this, SLOT( trackResolveFinished( bool ) ) ); - connect( query.data(), SIGNAL( solvedStateChanged( bool ) ), this, SLOT( trackResolved( bool ) ) ); append( query ); } @@ -106,31 +105,12 @@ DynamicModel::changeStation() m_playlist->generator()->startOnDemand(); } - -void -DynamicModel::trackResolved( bool resolved ) -{ - if( !resolved ) - return; - - Query* q = qobject_cast(sender()); - qDebug() << "Got successful resolved track:" << q->track() << q->artist() << m_lastResolvedRow << m_currentAttempts; - - if( m_currentAttempts > 0 ) { - qDebug() << "EMITTING AN ASK FOR COLLAPSE:" << m_lastResolvedRow << m_currentAttempts; - emit collapseFromTo( m_lastResolvedRow, m_currentAttempts ); - } - m_currentAttempts = 0; - m_searchingForNext = false; - - emit checkForOverflow(); -} - void DynamicModel::trackResolveFinished( bool success ) { - if( !success ) { // if it was successful, we've already gotten a trackResolved() signal - Query* q = qobject_cast(sender()); + Query* q = qobject_cast(sender()); + + if( !q->playable() ) { qDebug() << "Got not resolved track:" << q->track() << q->artist() << m_lastResolvedRow << m_currentAttempts; m_currentAttempts++; @@ -143,6 +123,18 @@ DynamicModel::trackResolveFinished( bool success ) emit trackGenerationFailure( tr( "Could not find a playable track.\n\nPlease change the filters or try again." ) ); } } + else { + qDebug() << "Got successful resolved track:" << q->track() << q->artist() << m_lastResolvedRow << m_currentAttempts; + + if( m_currentAttempts > 0 ) { + qDebug() << "EMITTING AN ASK FOR COLLAPSE:" << m_lastResolvedRow << m_currentAttempts; + emit collapseFromTo( m_lastResolvedRow, m_currentAttempts ); + } + m_currentAttempts = 0; + m_searchingForNext = false; + + emit checkForOverflow(); + } } diff --git a/src/libtomahawk/playlist/dynamic/DynamicModel.h b/src/libtomahawk/playlist/dynamic/DynamicModel.h index 1b8a0fade..a3cdc5f65 100644 --- a/src/libtomahawk/playlist/dynamic/DynamicModel.h +++ b/src/libtomahawk/playlist/dynamic/DynamicModel.h @@ -66,7 +66,6 @@ private slots: void newTrackGenerated( const Tomahawk::query_ptr& query ); void trackResolveFinished( bool ); - void trackResolved( bool ); void newTrackLoading(); void filteringTrackResolved( bool successful );