diff --git a/src/libtomahawk/globalactionmanager.cpp b/src/libtomahawk/globalactionmanager.cpp index 89f354d7b..bfccb918a 100644 --- a/src/libtomahawk/globalactionmanager.cpp +++ b/src/libtomahawk/globalactionmanager.cpp @@ -763,39 +763,38 @@ GlobalActionManager::tracksFromMimeData( const QMimeData* data ) { QString plainData = QString::fromUtf8( data->data( "text/plain" ).constData() ); tDebug() << "Got text/plain mime data:" << data->data( "text/plain" ) << "decoded to:" << plainData; - if ( plainData.contains( "open.spotify.com/track") || - plainData.contains( "spotify:track" ) ) - { - QStringList tracks = plainData.split( "\n" ); - - tDebug() << "Got a list of spotify urls!" << tracks; - SpotifyParser* spot = new SpotifyParser( tracks, this ); - connect( spot, SIGNAL( tracks( QList ) ), this, SIGNAL( tracks( QList ) ) ); - } else if ( plainData.contains( "bit.ly" ) || - plainData.contains( "j.mp" ) || - plainData.contains( "t.co" ) ) - { - QStringList tracks = plainData.split( "\n" ); - - tDebug() << "Got a list of shortened urls!" << tracks; - ShortenedLinkParser* parser = new ShortenedLinkParser( tracks, this ); - connect( parser, SIGNAL( urls( QStringList ) ), this, SLOT( expandedUrls( QStringList ) ) ); - } + handleTrackUrls ( plainData ); } } +void +GlobalActionManager::handleTrackUrls( const QString& urls ) +{ + if ( urls.contains( "open.spotify.com/track") || + urls.contains( "spotify:track" ) ) + { + QStringList tracks = urls.split( "\n" ); + + tDebug() << "Got a list of spotify urls!" << tracks; + SpotifyParser* spot = new SpotifyParser( tracks, this ); + connect( spot, SIGNAL( tracks( QList ) ), this, SIGNAL( tracks( QList ) ) ); + } else if ( urls.contains( "bit.ly" ) || + urls.contains( "j.mp" ) || + urls.contains( "t.co" ) ) + { + QStringList tracks = urls.split( "\n" ); + + tDebug() << "Got a list of shortened urls!" << tracks; + ShortenedLinkParser* parser = new ShortenedLinkParser( tracks, this ); + connect( parser, SIGNAL( urls( QStringList ) ), this, SLOT( expandedUrls( QStringList ) ) ); + } +} + + void GlobalActionManager::expandedUrls( QStringList urls ) { - QStringList spotifyUrls; - foreach ( const QString& url, urls ) - { - if( url.contains( "open.spotify.com/track") || url.contains( "spotify:track" ) ) - spotifyUrls << url; - } - - SpotifyParser* spot = new SpotifyParser( spotifyUrls, this ); - connect( spot, SIGNAL( tracks( QList ) ), this, SIGNAL( tracks( QList ) ) ); + handleTrackUrls( urls.join( "\n" ) ); } diff --git a/src/libtomahawk/globalactionmanager.h b/src/libtomahawk/globalactionmanager.h index ce18d7297..c8dd48a1f 100644 --- a/src/libtomahawk/globalactionmanager.h +++ b/src/libtomahawk/globalactionmanager.h @@ -94,6 +94,7 @@ private: bool doQueueAdd( const QStringList& parts, const QList< QPair< QString, QString > >& queryItems ); /// handle parsing mime data + void handleTrackUrls( const QString& urls ); QList< Tomahawk::query_ptr > tracksFromQueryList( const QMimeData* d ); QList< Tomahawk::query_ptr > tracksFromResultList( const QMimeData* d );