diff --git a/src/libtomahawk/infosystem/infoplugins/generic/chartsplugin.cpp b/src/libtomahawk/infosystem/infoplugins/generic/chartsplugin.cpp index 8c719f021..02eff8d12 100644 --- a/src/libtomahawk/infosystem/infoplugins/generic/chartsplugin.cpp +++ b/src/libtomahawk/infosystem/infoplugins/generic/chartsplugin.cpp @@ -453,7 +453,7 @@ ChartsPlugin::chartReturned() QVariantList chartResponse = res.value( "list" ).toList(); QList< Tomahawk::InfoSystem::InfoStringHash > top_tracks; QList< Tomahawk::InfoSystem::InfoStringHash > top_albums; - QList< Tomahawk::InfoSystem::InfoStringHash > top_artists; + QStringList top_artists; /// Deside what type, we need to handle it differently /// @todo: We allready know the type, append it to breadcrumb hash @@ -528,9 +528,7 @@ ChartsPlugin::chartReturned() } else { - Tomahawk::InfoSystem::InfoStringHash artistHash; - artistHash["artist"] = artist; - top_artists.append( artistHash ); + top_artists.append( artist ); } } @@ -540,7 +538,7 @@ ChartsPlugin::chartReturned() if( chartType() == Artist ) { tDebug() << "ChartsPlugin:" << "\tgot " << top_artists.size() << " artists"; - returnedData[ "artists" ] = QVariant::fromValue< QList< Tomahawk::InfoSystem::InfoStringHash > >( top_artists ); + returnedData[ "artists" ] = QVariant::fromValue< QStringList >( top_artists ); returnedData[ "type" ] = "artists"; } diff --git a/src/libtomahawk/widgets/ChartDataLoader.cpp b/src/libtomahawk/widgets/ChartDataLoader.cpp index 9816b5f60..a786aa199 100644 --- a/src/libtomahawk/widgets/ChartDataLoader.cpp +++ b/src/libtomahawk/widgets/ChartDataLoader.cpp @@ -45,8 +45,9 @@ ChartDataLoader::go() { QList< artist_ptr > artist_ptrs; - foreach ( const Tomahawk::InfoSystem::InfoStringHash& artistname, m_data ) { - artist_ptrs << Artist::get( artistname[ "artist" ], false ); + foreach ( const QString& artistname, m_artists ) + { + artist_ptrs << Artist::get( artistname, false ); } emit artists( this, artist_ptrs ); diff --git a/src/libtomahawk/widgets/ChartDataLoader.h b/src/libtomahawk/widgets/ChartDataLoader.h index 001cacc52..3fbb4cae7 100644 --- a/src/libtomahawk/widgets/ChartDataLoader.h +++ b/src/libtomahawk/widgets/ChartDataLoader.h @@ -47,6 +47,7 @@ public: void setType( DataType type ) { m_type = type; } void setData( const QList< InfoSystem::InfoStringHash >& data ) { m_data = data; } + void setData( const QStringList& artists ) { m_artists = artists; } public slots: void go(); @@ -60,6 +61,7 @@ signals: private: DataType m_type; QList m_data; + QStringList m_artists; }; } diff --git a/src/libtomahawk/widgets/whatshotwidget.cpp b/src/libtomahawk/widgets/whatshotwidget.cpp index 264b1187f..cb0d947f4 100644 --- a/src/libtomahawk/widgets/whatshotwidget.cpp +++ b/src/libtomahawk/widgets/whatshotwidget.cpp @@ -253,7 +253,7 @@ WhatsHotWidget::infoSystemInfo( Tomahawk::InfoSystem::InfoRequestData requestDat if ( type == "artists" ) { loader->setType( ChartDataLoader::Artist ); - loader->setData( returnedData[ "artists" ].value< QList< Tomahawk::InfoSystem::InfoStringHash > >() ); + loader->setData( returnedData[ "artists" ].value< QStringList >() ); connect( loader, SIGNAL( artists( Tomahawk::ChartDataLoader*, QList< Tomahawk::artist_ptr > ) ), this, SLOT( chartArtistsLoaded( Tomahawk::ChartDataLoader*, QList< Tomahawk::artist_ptr > ) ) ); @@ -479,10 +479,12 @@ WhatsHotWidget::chartArtistsLoaded( ChartDataLoader* loader, const QList< artist QString chartId = loader->property( "chartid" ).toString(); Q_ASSERT( m_artistModels.contains( chartId ) ); - if ( !m_artistModels.contains( chartId ) ) + if ( m_artistModels.contains( chartId ) ) { foreach( const artist_ptr& artist, artists ) + { m_artistModels[ chartId ]->addArtists( artist ); + } } loader->deleteLater();