mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-04-07 17:42:35 +02:00
make stations behave
This commit is contained in:
parent
ebd66b1105
commit
eec2c3a9bf
@ -26,6 +26,7 @@ DynamicModel::DynamicModel( QObject* parent )
|
||||
, m_startOnResolved( false )
|
||||
, m_onDemandRunning( false )
|
||||
, m_changeOnNext( false )
|
||||
, m_searchingForNext( false )
|
||||
, m_filterUnresolvable( true )
|
||||
, m_currentAttempts( 0 )
|
||||
, m_lastResolvedRow( 0 )
|
||||
@ -78,7 +79,7 @@ DynamicModel::newTrackGenerated( const Tomahawk::query_ptr& query )
|
||||
{
|
||||
if( m_onDemandRunning ) {
|
||||
connect( query.data(), SIGNAL( resolvingFinished( bool ) ), this, SLOT( trackResolveFinished( bool ) ) );
|
||||
connect( query.data(), SIGNAL( resultsAdded( QList<Tomahawk::result_ptr> ) ), this, SLOT( trackResolved() ) );
|
||||
connect( query.data(), SIGNAL( solvedStateChanged( bool ) ), this, SLOT( trackResolved( bool ) ) );
|
||||
|
||||
append( query );
|
||||
}
|
||||
@ -105,8 +106,11 @@ DynamicModel::changeStation()
|
||||
|
||||
|
||||
void
|
||||
DynamicModel::trackResolved()
|
||||
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_startOnResolved ) { // on first start
|
||||
@ -119,6 +123,7 @@ DynamicModel::trackResolved()
|
||||
emit collapseFromTo( m_lastResolvedRow, m_currentAttempts );
|
||||
}
|
||||
m_currentAttempts = 0;
|
||||
m_searchingForNext = false;
|
||||
|
||||
emit checkForOverflow();
|
||||
}
|
||||
@ -131,6 +136,7 @@ DynamicModel::trackResolveFinished( bool success )
|
||||
qDebug() << "Got not resolved track:" << q->track() << q->artist() << m_lastResolvedRow << m_currentAttempts;
|
||||
m_currentAttempts++;
|
||||
if( m_currentAttempts < 20 ) {
|
||||
qDebug() << "FETCHING MORE!";
|
||||
m_playlist->generator()->fetchNext();
|
||||
} else {
|
||||
emit trackGenerationFailure( tr( "Could not find a playable track.\n\nPlease change the filters or try again." ) );
|
||||
@ -142,11 +148,15 @@ DynamicModel::trackResolveFinished( bool success )
|
||||
void
|
||||
DynamicModel::newTrackLoading()
|
||||
{
|
||||
qDebug() << "Got NEW TRACK LOADING signal";
|
||||
if( m_changeOnNext ) { // reset instead of getting the next one
|
||||
m_lastResolvedRow = rowCount( QModelIndex() );
|
||||
m_searchingForNext = true;
|
||||
m_playlist->generator()->startOnDemand();
|
||||
} else if( m_onDemandRunning && m_currentAttempts == 0 ) { // if we're in dynamic mode and we're also currently idle
|
||||
} else if( m_onDemandRunning && m_currentAttempts == 0 && !m_searchingForNext ) { // if we're in dynamic mode and we're also currently idle
|
||||
m_lastResolvedRow = rowCount( QModelIndex() );
|
||||
m_searchingForNext = true;
|
||||
qDebug() << "IDLE fetching new track!";
|
||||
m_playlist->generator()->fetchNext();
|
||||
}
|
||||
}
|
||||
|
@ -64,7 +64,7 @@ private slots:
|
||||
void newTrackGenerated( const Tomahawk::query_ptr& query );
|
||||
|
||||
void trackResolveFinished( bool );
|
||||
void trackResolved();
|
||||
void trackResolved( bool );
|
||||
void newTrackLoading();
|
||||
|
||||
void filteringTrackResolved( bool successful );
|
||||
|
Loading…
x
Reference in New Issue
Block a user