1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-07 22:56:42 +02:00

* This should fix stations ignoring playable but not perfectly solved queries.

This commit is contained in:
Christian Muehlhaeuser
2011-03-24 14:50:47 +01:00
parent ae879aff93
commit c35d77891b
2 changed files with 15 additions and 24 deletions

View File

@@ -81,7 +81,6 @@ DynamicModel::newTrackGenerated( const Tomahawk::query_ptr& query )
{ {
if( m_onDemandRunning ) { if( m_onDemandRunning ) {
connect( query.data(), SIGNAL( resolvingFinished( bool ) ), this, SLOT( trackResolveFinished( bool ) ) ); connect( query.data(), SIGNAL( resolvingFinished( bool ) ), this, SLOT( trackResolveFinished( bool ) ) );
connect( query.data(), SIGNAL( solvedStateChanged( bool ) ), this, SLOT( trackResolved( bool ) ) );
append( query ); append( query );
} }
@@ -106,31 +105,12 @@ DynamicModel::changeStation()
m_playlist->generator()->startOnDemand(); m_playlist->generator()->startOnDemand();
} }
void
DynamicModel::trackResolved( bool resolved )
{
if( !resolved )
return;
Query* q = qobject_cast<Query*>(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 void
DynamicModel::trackResolveFinished( bool success ) DynamicModel::trackResolveFinished( bool success )
{ {
if( !success ) { // if it was successful, we've already gotten a trackResolved() signal Query* q = qobject_cast<Query*>(sender());
Query* q = qobject_cast<Query*>(sender());
if( !q->playable() ) {
qDebug() << "Got not resolved track:" << q->track() << q->artist() << m_lastResolvedRow << m_currentAttempts; qDebug() << "Got not resolved track:" << q->track() << q->artist() << m_lastResolvedRow << m_currentAttempts;
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." ) ); 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();
}
} }

View File

@@ -66,7 +66,6 @@ private slots:
void newTrackGenerated( const Tomahawk::query_ptr& query ); void newTrackGenerated( const Tomahawk::query_ptr& query );
void trackResolveFinished( bool ); void trackResolveFinished( bool );
void trackResolved( bool );
void newTrackLoading(); void newTrackLoading();
void filteringTrackResolved( bool successful ); void filteringTrackResolved( bool successful );