From 5812b2bec1cfafac7d689d114d3a24c03b345986 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20Lindstr=C3=B6m?= Date: Mon, 3 Oct 2011 10:14:18 +0200 Subject: [PATCH] Support dropping sources in pl and sourcetree. Append or create --- src/libtomahawk/playlist/playlistmodel.cpp | 6 ++++++ src/libtomahawk/utils/spotifyparser.cpp | 16 ++++++++++++---- src/sourcetree/sourcetreeview.cpp | 4 ++-- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/libtomahawk/playlist/playlistmodel.cpp b/src/libtomahawk/playlist/playlistmodel.cpp index 4684f02ed..94c990290 100644 --- a/src/libtomahawk/playlist/playlistmodel.cpp +++ b/src/libtomahawk/playlist/playlistmodel.cpp @@ -368,6 +368,12 @@ PlaylistModel::dropMimeData( const QMimeData* data, Qt::DropAction action, int r DropJob* dj = new DropJob(); + if ( !DropJob::acceptsMimeData( data, DropJob::Track | DropJob::Album | DropJob::Artist ) ) + return false; + + dj->setDropTypes( DropJob::Track | DropJob::Artist | DropJob::Album ); + dj->setDropAction( DropJob::Append ); + // On mac, drags from outside the app are still Qt::MoveActions instead of Qt::CopyAction by default // so check if the drag originated in this playlist to determine whether or not to copy #ifdef Q_WS_MAC diff --git a/src/libtomahawk/utils/spotifyparser.cpp b/src/libtomahawk/utils/spotifyparser.cpp index c21fc2bde..72981b7b7 100644 --- a/src/libtomahawk/utils/spotifyparser.cpp +++ b/src/libtomahawk/utils/spotifyparser.cpp @@ -69,16 +69,24 @@ SpotifyParser::lookupUrl( const QString& link ) { if( link.contains( "track" ) ) { + qDebug() << "Loooking up track" << link; m_trackMode = true; lookupTrack( link ); } else if( link.contains( "playlist" ) || link.contains( "album" ) || link.contains( "artist" ) ) { - if( !m_createNewPlaylist ) - m_trackMode = true; - else - m_trackMode = false; + qDebug() << "Loooking up browse" << link; + + if( !m_createNewPlaylist ){ + + qDebug() << "Do not create new pl!"; + m_trackMode = true; + }else{ + + qDebug() << "create new pl!"; + m_trackMode = false; + } lookupSpotifyBrowse( link ); } else diff --git a/src/sourcetree/sourcetreeview.cpp b/src/sourcetree/sourcetreeview.cpp index 9ed0283c0..762c2b74b 100644 --- a/src/sourcetree/sourcetreeview.cpp +++ b/src/sourcetree/sourcetreeview.cpp @@ -417,7 +417,7 @@ SourceTreeView::dragEnterEvent( QDragEnterEvent* event ) qDebug() << Q_FUNC_INFO; QTreeView::dragEnterEvent( event ); - if ( DropJob::acceptsMimeData( event->mimeData(), DropJob::Track | DropJob::Playlist, DropJob::Create ) ) + if ( DropJob::acceptsMimeData( event->mimeData(), DropJob::Track | DropJob::Artist | DropJob::Album | DropJob::Playlist, DropJob::Create ) ) { m_dragging = true; m_dropRect = QRect(); @@ -491,7 +491,7 @@ SourceTreeView::dragMoveEvent( QDragMoveEvent* event ) event->ignore(); } } - else if ( DropJob::acceptsMimeData( event->mimeData(), DropJob::Playlist, DropJob::Create ) ) + else if ( DropJob::acceptsMimeData( event->mimeData(), DropJob::Playlist | DropJob::Artist | DropJob::Album, DropJob::Create ) ) { event->setDropAction( Qt::CopyAction ); event->accept();