diff --git a/src/library/libraryview.cpp b/src/library/libraryview.cpp index 21e1945a2..516f6710d 100644 --- a/src/library/libraryview.cpp +++ b/src/library/libraryview.cpp @@ -497,14 +497,6 @@ void LibraryView::keyPressEvent(QKeyEvent* e) { QTreeView::keyPressEvent(e); } -void LibraryView::mousePressEvent(QMouseEvent* e) { - QTreeView::mousePressEvent(e); - - //enqueue to playlist with middleClick - if (e->button() == Qt::MidButton) - AddToPlaylistEnqueue(); -} - void LibraryView::DeleteFinished(const SongList& songs_with_errors) { if (songs_with_errors.isEmpty()) return; diff --git a/src/library/libraryview.h b/src/library/libraryview.h index 6f85de464..15328ed93 100644 --- a/src/library/libraryview.h +++ b/src/library/libraryview.h @@ -92,7 +92,6 @@ class LibraryView : public AutoExpandingTreeView { void mouseReleaseEvent(QMouseEvent* e); void contextMenuEvent(QContextMenuEvent* e); void keyPressEvent(QKeyEvent* e); - void mousePressEvent(QMouseEvent* e); private slots: void Load(); diff --git a/src/playlist/songloaderinserter.cpp b/src/playlist/songloaderinserter.cpp index a52cc4c3b..076f344ca 100644 --- a/src/playlist/songloaderinserter.cpp +++ b/src/playlist/songloaderinserter.cpp @@ -42,6 +42,7 @@ void SongLoaderInserter::Load(Playlist *destination, destination_ = destination; row_ = row; play_now_ = play_now; + enqueue_ = enqueue; connect(destination, SIGNAL(destroyed()), SLOT(DestinationDestroyed())); diff --git a/src/widgets/autoexpandingtreeview.cpp b/src/widgets/autoexpandingtreeview.cpp index ba845d40e..efbe91b67 100644 --- a/src/widgets/autoexpandingtreeview.cpp +++ b/src/widgets/autoexpandingtreeview.cpp @@ -102,4 +102,13 @@ void AutoExpandingTreeView::mousePressEvent(QMouseEvent* event) { } QTreeView::mousePressEvent(event); + + //enqueue to playlist with middleClick + if (event->button() == Qt::MidButton) { + QMimeData* data = model()->mimeData(selectedIndexes()); + if (MimeData* mime_data = qobject_cast(data)) { + mime_data->enqueue_now_ = true; + } + emit AddToPlaylistSignal(data); + } } diff --git a/src/widgets/fileviewlist.cpp b/src/widgets/fileviewlist.cpp index 1636cecfd..6e42ce5de 100644 --- a/src/widgets/fileviewlist.cpp +++ b/src/widgets/fileviewlist.cpp @@ -119,3 +119,18 @@ void FileViewList::CopyToDeviceSlot() { void FileViewList::DeleteSlot() { emit Delete(FilenamesFromSelection()); } + +void FileViewList::mousePressEvent(QMouseEvent* e) { + QListView::mousePressEvent(e); + + //enqueue to playlist with middleClick + if (e->button() == Qt::MidButton) { + //we need to update the menu selection + menu_selection_ = selectionModel()->selection(); + + MimeData* data = new MimeData; + data->setUrls(UrlListFromSelection()); + data->enqueue_now_ = true; + emit AddToPlaylist(data); + } +} diff --git a/src/widgets/fileviewlist.h b/src/widgets/fileviewlist.h index ca8f1c8e8..e1f4f780a 100644 --- a/src/widgets/fileviewlist.h +++ b/src/widgets/fileviewlist.h @@ -29,6 +29,8 @@ class FileViewList : public QListView { public: FileViewList(QWidget* parent = 0); + void mousePressEvent(QMouseEvent* e); + signals: void AddToPlaylist(QMimeData* data); void CopyToLibrary(const QList& urls);