diff --git a/src/libtomahawk/playlist/dynamic/widgets/DynamicQmlWidget.cpp b/src/libtomahawk/playlist/dynamic/widgets/DynamicQmlWidget.cpp index 4d3b1f87a..cb543e38f 100644 --- a/src/libtomahawk/playlist/dynamic/widgets/DynamicQmlWidget.cpp +++ b/src/libtomahawk/playlist/dynamic/widgets/DynamicQmlWidget.cpp @@ -4,7 +4,9 @@ #include "playlist/PlayableProxyModel.h" #include "utils/TomahawkUtilsGui.h" #include "dynamic/DynamicModel.h" +#include "dynamic/GeneratorInterface.h" #include "PlayableItem.h" +#include "Source.h" #include #include @@ -33,6 +35,9 @@ DynamicQmlWidget::DynamicQmlWidget( const dynplaylist_ptr& playlist, QWidget* pa m_model->loadPlaylist( m_playlist ); m_model->startOnDemand(); + m_playlist->generator()->generate( 20 ); + m_playlist->resolve(); + rootContext()->setContextProperty( "dynamicModel", m_proxyModel ); currentItemChanged( m_model->currentItem() ); @@ -42,6 +47,9 @@ DynamicQmlWidget::DynamicQmlWidget( const dynplaylist_ptr& playlist, QWidget* pa setSource( QUrl( "qrc" RESPATH "qml/StationScene.qml" ) ); connect( m_model, SIGNAL( currentItemChanged( QPersistentModelIndex ) ), SLOT( currentItemChanged( QPersistentModelIndex ) ) ); + connect( m_playlist->generator().data(), SIGNAL( generated( QList ) ), this, SLOT( tracksGenerated( QList ) ) ); + connect( m_playlist.data(), SIGNAL( dynamicRevisionLoaded( Tomahawk::DynamicPlaylistRevision ) ), this, SLOT( onRevisionLoaded( Tomahawk::DynamicPlaylistRevision ) ) ); + } @@ -116,4 +124,27 @@ void DynamicQmlWidget::currentItemChanged( const QPersistentModelIndex ¤tI rootContext()->setContextProperty( "currentlyPlayedIndex", m_proxyModel->mapFromSource( currentIndex ).row() ); } +void +DynamicQmlWidget::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 ) +// { +// m_resolveOnNextLoad = true; +// } +// else if ( m_playlist->mode() == OnDemand ) +// { + limit = 5; +// } + + m_model->tracksGenerated( queries, limit ); + m_playlist->resolve(); + +} + +void DynamicQmlWidget::onRevisionLoaded(DynamicPlaylistRevision) +{ + m_playlist->resolve(); +} + } diff --git a/src/libtomahawk/playlist/dynamic/widgets/DynamicQmlWidget.h b/src/libtomahawk/playlist/dynamic/widgets/DynamicQmlWidget.h index 17902a861..d050d8ff5 100644 --- a/src/libtomahawk/playlist/dynamic/widgets/DynamicQmlWidget.h +++ b/src/libtomahawk/playlist/dynamic/widgets/DynamicQmlWidget.h @@ -55,7 +55,8 @@ public: private slots: void currentItemChanged( const QPersistentModelIndex ¤tIndex ); - + void tracksGenerated( const QList< Tomahawk::query_ptr>& queries ); + void onRevisionLoaded( Tomahawk::DynamicPlaylistRevision ); private: DynamicModel* m_model; PlayableProxyModel* m_proxyModel;