From 6ee7df95144f1942d3e5f03c356cdcc9212fd8f6 Mon Sep 17 00:00:00 2001
From: Leo Franchi <lfranchi@kde.org>
Date: Mon, 17 Oct 2011 12:36:56 -0400
Subject: [PATCH] Resolve top-down

---
 src/libtomahawk/playlist/playlistmodel.cpp | 6 ++++++
 src/libtomahawk/playlist/playlistmodel.h   | 2 ++
 src/libtomahawk/widgets/whatshotwidget.cpp | 8 ++++++--
 3 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/libtomahawk/playlist/playlistmodel.cpp b/src/libtomahawk/playlist/playlistmodel.cpp
index df734bf24..c8a2b61dc 100644
--- a/src/libtomahawk/playlist/playlistmodel.cpp
+++ b/src/libtomahawk/playlist/playlistmodel.cpp
@@ -186,6 +186,12 @@ PlaylistModel::clear()
     }
 }
 
+void
+PlaylistModel::append( const QList< query_ptr >& queries )
+{
+    onTracksAdded( queries );
+}
+
 
 void
 PlaylistModel::append( const Tomahawk::query_ptr& query )
diff --git a/src/libtomahawk/playlist/playlistmodel.h b/src/libtomahawk/playlist/playlistmodel.h
index 288f97e0d..4f4b031fd 100644
--- a/src/libtomahawk/playlist/playlistmodel.h
+++ b/src/libtomahawk/playlist/playlistmodel.h
@@ -66,6 +66,8 @@ public:
     void append( const Tomahawk::album_ptr& album );
     void append( const Tomahawk::artist_ptr& artist );
 
+    void append( const QList< Tomahawk::query_ptr >& queries );
+
     void insert( unsigned int row, const Tomahawk::query_ptr& query );
 
     void remove( unsigned int row, bool moreToCome = false );
diff --git a/src/libtomahawk/widgets/whatshotwidget.cpp b/src/libtomahawk/widgets/whatshotwidget.cpp
index f3477bc6c..e3174cf2b 100644
--- a/src/libtomahawk/widgets/whatshotwidget.cpp
+++ b/src/libtomahawk/widgets/whatshotwidget.cpp
@@ -37,6 +37,7 @@
 #include "utils/tomahawkutils.h"
 #include "utils/logger.h"
 #include <dynamic/GeneratorInterface.h>
+#include <pipeline.h>
 
 #define HISTORY_TRACK_ITEMS 25
 #define HISTORY_PLAYLIST_ITEMS 10
@@ -224,11 +225,14 @@ WhatsHotWidget::infoSystemInfo( Tomahawk::InfoSystem::InfoRequestData requestDat
 
                 PlaylistModel* trackModel = new PlaylistModel( ui->tracksViewLeft );
                 trackModel->setStyle( TrackModel::Short );
+                QList<query_ptr> tracklist;
                 foreach ( const Tomahawk::InfoSystem::ArtistTrackPair& track, tracks )
                 {
-                    query_ptr query = Query::get( track.artist, track.track, QString(), uuid() );
-                    trackModel->append( query );
+                    query_ptr query = Query::get( track.artist, track.track, QString(), uuid(), false );
+                    tracklist << query;
                 }
+                Pipeline::instance()->resolve( tracklist );
+                trackModel->append( tracklist );
 
                 const QString chartId = requestData.input.value< Tomahawk::InfoSystem::InfoCriteriaHash >().value( "chart_id" );
                 m_trackModels[ chartId ] = trackModel;