diff --git a/modules/gui/qt4/components/playlist/playlist.cpp b/modules/gui/qt4/components/playlist/playlist.cpp index 32b0ea9254..7d04d12f8e 100644 --- a/modules/gui/qt4/components/playlist/playlist.cpp +++ b/modules/gui/qt4/components/playlist/playlist.cpp @@ -112,13 +112,6 @@ PlaylistWidget::PlaylistWidget( intf_thread_t *_p_i, QWidget *_par ) layout->addLayout( topbarLayout, 0, 1 ); topbarLayout->setSpacing( 10 ); - /* Button to clear playlist */ - QToolButton *clearPlaylistButton = new QToolButton( this ); - clearPlaylistButton->setIcon( style()->standardIcon( QStyle::SP_TrashIcon ) ); - clearPlaylistButton->setToolTip( qtr("Clear playlist") ); - topbarLayout->addWidget( clearPlaylistButton ); - CONNECT( clearPlaylistButton, clicked(), this, clearPlaylist() ); - /* Button to switch views */ QToolButton *viewButton = new QToolButton( this ); viewButton->setIcon( style()->standardIcon( QStyle::SP_FileDialogDetailedView ) ); @@ -262,16 +255,7 @@ void PlaylistWidget::changeView( const QModelIndex& index ) void PlaylistWidget::clearPlaylist() { - PLModel *model = PLModel::getPLModel( p_intf ); - if( model->rowCount() < 1 ) return; - - QModelIndexList* l = new QModelIndexList(); - for( int i = 0; i < model->rowCount(); i++) - { - QModelIndex indexrecord = model->index( i, 0, QModelIndex() ); - l->append( indexrecord ); - } - model->doDelete(*l); + PLModel::getPLModel( p_intf )->clearPlaylist(); } #include #include diff --git a/modules/gui/qt4/components/playlist/playlist_model.cpp b/modules/gui/qt4/components/playlist/playlist_model.cpp index 8b3e089282..4e69d3c851 100644 --- a/modules/gui/qt4/components/playlist/playlist_model.cpp +++ b/modules/gui/qt4/components/playlist/playlist_model.cpp @@ -888,6 +888,19 @@ void PLModel::search( const QString& search_text, const QModelIndex & idx, bool rebuild(); } +void PLModel::clearPlaylist() +{ + if( rowCount() < 1 ) return; + + QModelIndexList l; + for( int i = 0; i < rowCount(); i++) + { + QModelIndex indexrecord = index( i, 0, QModelIndex() ); + l.append( indexrecord ); + } + doDelete(l); +} + /*********** Popup *********/ bool PLModel::popup( const QModelIndex & index, const QPoint &point, const QModelIndexList &list ) { @@ -964,6 +977,10 @@ bool PLModel::popup( const QModelIndex & index, const QPoint &point, const QMode } menu.addSeparator(); + + menu.addAction( QIcon( ":/toolbar/clear" ), qtr("Clear playlist"), + this, SLOT( clearPlaylist() ) ); + /* Playlist sorting */ if( !sortingMenu ) { diff --git a/modules/gui/qt4/components/playlist/playlist_model.hpp b/modules/gui/qt4/components/playlist/playlist_model.hpp index 6c66c7e9e3..ea3bfb263f 100644 --- a/modules/gui/qt4/components/playlist/playlist_model.hpp +++ b/modules/gui/qt4/components/playlist/playlist_model.hpp @@ -120,7 +120,7 @@ signals: public slots: virtual void activateItem( const QModelIndex &index ); - + void clearPlaylist(); private: /* General */ PLItem *rootItem;