From a40a511642ff9cd0e56c91e0a470f1253db12e0a Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Kempf Date: Sun, 22 May 2011 18:40:33 +0200 Subject: [PATCH] Qt: add popupAddToPlaylist Close #4341 --- .../gui/qt4/components/playlist/playlist_model.cpp | 22 +++++++++++++++++++--- .../gui/qt4/components/playlist/playlist_model.hpp | 1 + 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/modules/gui/qt4/components/playlist/playlist_model.cpp b/modules/gui/qt4/components/playlist/playlist_model.cpp index c2b8141280..ebec0bb5ef 100644 --- a/modules/gui/qt4/components/playlist/playlist_model.cpp +++ b/modules/gui/qt4/components/playlist/playlist_model.cpp @@ -944,6 +944,8 @@ bool PLModel::popup( const QModelIndex & index, const QPoint &point, const QMode } if( i_popup_item > -1 ) { + if( rootItem->id() != THEPL->p_playing->i_id ) + menu.addAction( qtr( "Add to playlist"), this, SLOT( popupAddToPlaylist() ) ); menu.addAction( QIcon( ":/buttons/playlist/playlist_remove" ), qtr(I_POP_DEL), this, SLOT( popupDel() ) ); menu.addSeparator(); @@ -990,6 +992,22 @@ void PLModel::popupPlay() PL_UNLOCK; } +void PLModel::popupAddToPlaylist() +{ + playlist_Lock( THEPL ); + + foreach( QModelIndex currentIndex, current_selection ) + { + playlist_item_t *p_item = playlist_ItemGetById( THEPL, getId( currentIndex ) ); + if( !p_item ) continue; + + playlist_NodeAddCopy( THEPL, p_item, + THEPL->p_playing, + PLAYLIST_END ); + } + playlist_Unlock( THEPL ); +} + void PLModel::popupInfo() { PL_LOCK; @@ -1014,7 +1032,6 @@ void PLModel::popupStream() QStringList mrls = selectedURIs(); if( !mrls.isEmpty() ) THEDP->streamingDialog( NULL, mrls[0], false ); - } void PLModel::popupSave() @@ -1027,8 +1044,7 @@ void PLModel::popupSave() void PLModel::popupExplore() { PL_LOCK; - playlist_item_t *p_item = playlist_ItemGetById( p_playlist, - i_popup_item ); + playlist_item_t *p_item = playlist_ItemGetById( p_playlist, i_popup_item ); if( p_item ) { input_item_t *p_input = p_item->p_input; diff --git a/modules/gui/qt4/components/playlist/playlist_model.hpp b/modules/gui/qt4/components/playlist/playlist_model.hpp index db3a29ba8f..925b129852 100644 --- a/modules/gui/qt4/components/playlist/playlist_model.hpp +++ b/modules/gui/qt4/components/playlist/playlist_model.hpp @@ -161,6 +161,7 @@ private slots: void popupSave(); void popupExplore(); void popupAddNode(); + void popupAddToPlaylist(); void popupSort( int column ); void processInputItemUpdate( input_item_t *); void processInputItemUpdate( input_thread_t* p_input ); -- 2.11.4.GIT