1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-03 20:57:52 +02:00

fix dropping of top 10 for albums and tracks

This commit is contained in:
Michael Zanetti
2011-08-27 17:24:12 +02:00
parent eaca242277
commit 16e77cb144
2 changed files with 51 additions and 28 deletions

View File

@@ -207,6 +207,12 @@ DropJob::tracksFromResultList( const QMimeData* data )
tDebug() << "Dropped result item:" << result->data()->artist()->name() << "-" << result->data()->track();
query_ptr q = result->data()->toQuery();
if ( m_top10 )
{
getTopTen( q->artist() );
}
else
{
if ( m_getWholeArtists )
{
queries << getArtist( q->artist() );
@@ -222,6 +228,7 @@ DropJob::tracksFromResultList( const QMimeData* data )
}
}
}
}
return queries;
}
@@ -240,11 +247,18 @@ DropJob::tracksFromAlbumMetaData( const QMimeData *data )
QString album;
stream >> album;
if ( m_top10 )
{
getTopTen( artist );
}
else
{
if ( m_getWholeArtists )
queries << getArtist( artist );
else
queries << getAlbum( artist, album );
}
}
return queries;
}
@@ -266,23 +280,7 @@ DropJob::tracksFromArtistMetaData( const QMimeData *data )
}
else
{
connect( Tomahawk::InfoSystem::InfoSystem::instance(),
SIGNAL( info( Tomahawk::InfoSystem::InfoRequestData, QVariant ) ),
SLOT( infoSystemInfo( Tomahawk::InfoSystem::InfoRequestData, QVariant ) ) );
Tomahawk::InfoSystem::InfoCriteriaHash artistInfo;
artistInfo["artist"] = artist;
Tomahawk::InfoSystem::InfoRequestData requestData;
requestData.caller = "changeme";
requestData.customData = QVariantMap();
requestData.input = QVariant::fromValue< Tomahawk::InfoSystem::InfoCriteriaHash >( artistInfo );
requestData.type = Tomahawk::InfoSystem::InfoArtistSongs;
Tomahawk::InfoSystem::InfoSystem::instance()->getInfo( requestData );
m_queryCount++;
getTopTen( artist );
}
}
return queries;
@@ -493,3 +491,26 @@ DropJob::getAlbum(const QString &artist, const QString &album)
else
return albumPtr->tracks();
}
void
DropJob::getTopTen( const QString &artist )
{
connect( Tomahawk::InfoSystem::InfoSystem::instance(),
SIGNAL( info( Tomahawk::InfoSystem::InfoRequestData, QVariant ) ),
SLOT( infoSystemInfo( Tomahawk::InfoSystem::InfoRequestData, QVariant ) ) );
Tomahawk::InfoSystem::InfoCriteriaHash artistInfo;
artistInfo["artist"] = artist;
Tomahawk::InfoSystem::InfoRequestData requestData;
requestData.caller = "changeme";
requestData.customData = QVariantMap();
requestData.input = QVariant::fromValue< Tomahawk::InfoSystem::InfoCriteriaHash >( artistInfo );
requestData.type = Tomahawk::InfoSystem::InfoArtistSongs;
Tomahawk::InfoSystem::InfoSystem::instance()->getInfo( requestData );
m_queryCount++;
}

View File

@@ -75,6 +75,8 @@ private:
QList< Tomahawk::query_ptr > getArtist( const QString& artist );
QList< Tomahawk::query_ptr > getAlbum( const QString& artist, const QString& album );
void getTopTen( const QString& artist );
void removeDuplicates();
void removeRemoteSources();