1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-04-01 14:42:25 +02:00

* Properly drag Artists / Albums from QueryLabel.

This commit is contained in:
Christian Muehlhaeuser 2012-06-29 03:29:32 +02:00
parent 6ec80761eb
commit b25b611685

View File

@ -697,37 +697,40 @@ QueryLabel::startDrag()
if ( m_query.isNull() )
return;
QByteArray queryData;
QDataStream queryStream( &queryData, QIODevice::WriteOnly );
QDrag *drag = new QDrag( this );
QByteArray data;
QDataStream dataStream( &data, QIODevice::WriteOnly );
QMimeData* mimeData = new QMimeData();
mimeData->setText( text() );
queryStream << qlonglong( &m_query );
mimeData->setData( "application/tomahawk.query.list", queryData );
if ( m_hoverType != None )
switch( m_hoverType )
{
QString extra;
switch( m_hoverType )
{
case Artist:
extra = "artist";
{
dataStream << m_query->artist();
mimeData->setData( "application/tomahawk.metadata.artist", data );
drag->setPixmap( TomahawkUtils::createDragPixmap( TomahawkUtils::MediaTypeArtist ) );
break;
}
case Album:
extra = "album";
break;
case Track:
extra = "track";
{
dataStream << m_query->artist();
dataStream << m_query->album();
mimeData->setData( "application/tomahawk.metadata.album", data );
drag->setPixmap( TomahawkUtils::createDragPixmap( TomahawkUtils::MediaTypeAlbum ) );
break;
}
default:
{
dataStream << qlonglong( &m_query );
mimeData->setData( "application/tomahawk.query.list", data );
drag->setPixmap( TomahawkUtils::createDragPixmap( TomahawkUtils::MediaTypeTrack ) );
break;
}
mimeData->setData( "application/tomahawk.dragsource.type", extra.toUtf8() );
}
}
QDrag *drag = new QDrag( this );
drag->setMimeData( mimeData );
drag->setPixmap( TomahawkUtils::createDragPixmap( TomahawkUtils::MediaTypeTrack ) );
// QPoint hotSpot = event->pos() - child->pos();
// drag->setHotSpot( hotSpot );