From 67d75543e65da1d6823977b58b31866db78b7377 Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Fri, 13 Jul 2012 13:07:32 -0400 Subject: [PATCH] TWK-968: Fix PlayableModel/DropJob for mixed mimetype --- src/libtomahawk/DropJob.cpp | 8 +++++++- src/libtomahawk/playlist/PlayableModel.cpp | 9 +++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/libtomahawk/DropJob.cpp b/src/libtomahawk/DropJob.cpp index ee8b5f791..a7dce734d 100644 --- a/src/libtomahawk/DropJob.cpp +++ b/src/libtomahawk/DropJob.cpp @@ -425,12 +425,18 @@ DropJob::tracksFromMixedData( const QMimeData *data ) QDataStream singleStream( &singleData, QIODevice::WriteOnly ); QMimeData singleMimeData; - if ( mimeType == "application/tomahawk.query.list" || mimeType == "application/tomahawk.result.list" ) + if ( mimeType == "application/tomahawk.query.list" ) { qlonglong query; stream >> query; singleStream << query; } + else if ( mimeType == "application/tomahawk.result.list" ) + { + qlonglong result; + stream >> result; + singleStream << result; + } else if ( mimeType == "application/tomahawk.metadata.album" ) { QString artist; diff --git a/src/libtomahawk/playlist/PlayableModel.cpp b/src/libtomahawk/playlist/PlayableModel.cpp index c108a49d9..dbb4bcb99 100644 --- a/src/libtomahawk/playlist/PlayableModel.cpp +++ b/src/libtomahawk/playlist/PlayableModel.cpp @@ -508,6 +508,7 @@ PlayableModel::mimeData( const QModelIndexList &indexes ) const // Ok... we have to use mixed resultData.clear(); + QDataStream mixedStream( &resultData, QIODevice::WriteOnly ); foreach ( const QModelIndex& i, indexes ) { if ( i.column() > 0 || indexes.contains( i.parent() ) ) @@ -520,22 +521,22 @@ PlayableModel::mimeData( const QModelIndexList &indexes ) const if ( !item->artist().isNull() ) { const artist_ptr& artist = item->artist(); - resultStream << QString( "application/tomahawk.metadata.artist" ) << artist->name(); + mixedStream << QString( "application/tomahawk.metadata.artist" ) << artist->name(); } else if ( !item->album().isNull() ) { const album_ptr& album = item->album(); - resultStream << QString( "application/tomahawk.metadata.album" ) << album->artist()->name() << album->name(); + mixedStream << QString( "application/tomahawk.metadata.album" ) << album->artist()->name() << album->name(); } else if ( !item->result().isNull() ) { const result_ptr& result = item->result(); - resultStream << QString( "application/tomahawk.result.list" ) << qlonglong( &result ); + mixedStream << QString( "application/tomahawk.result.list" ) << qlonglong( &result ); } else if ( !item->query().isNull() ) { const query_ptr& query = item->query(); - resultStream << QString( "application/tomahawk.query.list" ) << qlonglong( &query ); + mixedStream << QString( "application/tomahawk.query.list" ) << qlonglong( &query ); } }