diff --git a/src/libtomahawk/playlist/dynamic/DynamicModel.h b/src/libtomahawk/playlist/dynamic/DynamicModel.h index ff1523141..c234ad003 100644 --- a/src/libtomahawk/playlist/dynamic/DynamicModel.h +++ b/src/libtomahawk/playlist/dynamic/DynamicModel.h @@ -57,6 +57,9 @@ public: using PlaylistModel::loadPlaylist; + bool ignoreRevision( const QString& revisionguid ) const { return waitForRevision( revisionguid ); } + void removeRevisionFromIgnore( const QString& revisionguid ) { removeFromWaitList( revisionguid ); } + signals: void collapseFromTo( int startRow, int num ); void checkForOverflow(); diff --git a/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.cpp b/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.cpp index e1b218bfc..dffcdbf49 100644 --- a/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.cpp +++ b/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.cpp @@ -185,6 +185,12 @@ DynamicWidget::onRevisionLoaded( const Tomahawk::DynamicPlaylistRevision& rev ) { Q_UNUSED( rev ); qDebug() << "DynamicWidget::onRevisionLoaded"; + if ( m_model->ignoreRevision( rev.revisionguid ) ) + { + m_model->removeRevisionFromIgnore( rev.revisionguid ); + return; + } + loadDynamicPlaylist( m_playlist ); if( m_resolveOnNextLoad || !m_playlist->author()->isLocal() ) { @@ -351,12 +357,16 @@ void DynamicWidget::tracksGenerated( const QList< query_ptr >& queries ) { int limit = -1; // only limit the "preview" of a station - if( m_playlist->author()->isLocal() && m_playlist->mode() == Static ) { + if ( m_playlist->author()->isLocal() && m_playlist->mode() == Static ) + { m_resolveOnNextLoad = true; - } else if( m_playlist->mode() == OnDemand ) + } + else if( m_playlist->mode() == OnDemand ) + { limit = 5; + } - if( m_playlist->mode() != OnDemand ) + if ( m_playlist->mode() != OnDemand ) m_loading->fadeOut(); m_model->tracksGenerated( queries, limit ); } diff --git a/src/libtomahawk/playlist/playlistmodel.h b/src/libtomahawk/playlist/playlistmodel.h index 1313cea2a..95d4dddaf 100644 --- a/src/libtomahawk/playlist/playlistmodel.h +++ b/src/libtomahawk/playlist/playlistmodel.h @@ -81,6 +81,10 @@ signals: void playlistDeleted(); void playlistChanged(); +protected: + bool waitForRevision( const QString& revisionguid ) const { return m_waitForRevision.contains( revisionguid ); } + void removeFromWaitList( const QString& revisionguid ) { m_waitForRevision.removeAll( revisionguid ); } + private slots: void onDataChanged(); void onRevisionLoaded( Tomahawk::PlaylistRevision revision );