mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-05 21:57:41 +02:00
* Properly drag Artists / Albums from QueryLabel.
This commit is contained in:
@@ -697,37 +697,40 @@ QueryLabel::startDrag()
|
|||||||
if ( m_query.isNull() )
|
if ( m_query.isNull() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
QByteArray queryData;
|
QDrag *drag = new QDrag( this );
|
||||||
QDataStream queryStream( &queryData, QIODevice::WriteOnly );
|
QByteArray data;
|
||||||
|
QDataStream dataStream( &data, QIODevice::WriteOnly );
|
||||||
QMimeData* mimeData = new QMimeData();
|
QMimeData* mimeData = new QMimeData();
|
||||||
mimeData->setText( text() );
|
mimeData->setText( text() );
|
||||||
|
|
||||||
queryStream << qlonglong( &m_query );
|
switch( m_hoverType )
|
||||||
|
|
||||||
mimeData->setData( "application/tomahawk.query.list", queryData );
|
|
||||||
|
|
||||||
if ( m_hoverType != None )
|
|
||||||
{
|
{
|
||||||
QString extra;
|
|
||||||
switch( m_hoverType )
|
|
||||||
{
|
|
||||||
case Artist:
|
case Artist:
|
||||||
extra = "artist";
|
{
|
||||||
|
dataStream << m_query->artist();
|
||||||
|
mimeData->setData( "application/tomahawk.metadata.artist", data );
|
||||||
|
drag->setPixmap( TomahawkUtils::createDragPixmap( TomahawkUtils::MediaTypeArtist ) );
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case Album:
|
case Album:
|
||||||
extra = "album";
|
{
|
||||||
break;
|
dataStream << m_query->artist();
|
||||||
case Track:
|
dataStream << m_query->album();
|
||||||
extra = "track";
|
mimeData->setData( "application/tomahawk.metadata.album", data );
|
||||||
|
drag->setPixmap( TomahawkUtils::createDragPixmap( TomahawkUtils::MediaTypeAlbum ) );
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
{
|
||||||
|
dataStream << qlonglong( &m_query );
|
||||||
|
mimeData->setData( "application/tomahawk.query.list", data );
|
||||||
|
drag->setPixmap( TomahawkUtils::createDragPixmap( TomahawkUtils::MediaTypeTrack ) );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
mimeData->setData( "application/tomahawk.dragsource.type", extra.toUtf8() );
|
|
||||||
}
|
}
|
||||||
QDrag *drag = new QDrag( this );
|
|
||||||
drag->setMimeData( mimeData );
|
drag->setMimeData( mimeData );
|
||||||
drag->setPixmap( TomahawkUtils::createDragPixmap( TomahawkUtils::MediaTypeTrack ) );
|
|
||||||
|
|
||||||
// QPoint hotSpot = event->pos() - child->pos();
|
// QPoint hotSpot = event->pos() - child->pos();
|
||||||
// drag->setHotSpot( hotSpot );
|
// drag->setHotSpot( hotSpot );
|
||||||
|
Reference in New Issue
Block a user