#include "fileviewlist.h" #include #include #include #include FileViewList::FileViewList(QWidget* parent) : QListView(parent), menu_(new QMenu(this)) { menu_->addAction(QIcon(":media-playback-start.png"), "Add to playlist", this, SLOT(AddToPlaylistSlot())); menu_->addSeparator(); menu_->addAction(QIcon(":copy.png"), "Copy to library...", this, SLOT(CopyToLibrarySlot())); menu_->addAction(QIcon(":move.png"),"Move to library...", this, SLOT(MoveToLibrarySlot())); } void FileViewList::contextMenuEvent(QContextMenuEvent* e) { menu_selection_ = selectionModel()->selection(); menu_->popup(e->globalPos()); e->accept(); } QList FileViewList::UrlListFromSelection() const { QList urls; foreach (const QModelIndex& index, menu_selection_.indexes()) { if (index.column() == 0) urls << QUrl::fromLocalFile( static_cast(model())->filePath(index)); } return urls; } void FileViewList::AddToPlaylistSlot() { emit AddToPlaylist(UrlListFromSelection()); } void FileViewList::CopyToLibrarySlot() { emit CopyToLibrary(UrlListFromSelection()); } void FileViewList::MoveToLibrarySlot() { emit MoveToLibrary(UrlListFromSelection()); }