diff options
Diffstat (limited to 'src/plugins/General/library/librarywidget.cpp')
| -rw-r--r-- | src/plugins/General/library/librarywidget.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/plugins/General/library/librarywidget.cpp b/src/plugins/General/library/librarywidget.cpp index 5b6f108e4..eea4ce983 100644 --- a/src/plugins/General/library/librarywidget.cpp +++ b/src/plugins/General/library/librarywidget.cpp @@ -19,6 +19,9 @@ ***************************************************************************/ #include <QSettings> +#include <QMenu> +#include <QContextMenuEvent> +#include <QIcon> #include <qmmp/qmmp.h> #include "librarymodel.h" #include "ui_librarywidget.h" @@ -43,6 +46,11 @@ LibraryWidget::LibraryWidget(bool dialog, QWidget *parent) : m_ui->buttonBox->hide(); } + m_menu = new QMenu(this); + m_menu->addAction(QIcon::fromTheme("list-add"), tr("&Add to Playlist"), this, SLOT(addSelected())); + m_menu->addSeparator(); + m_menu->addAction(QIcon::fromTheme("dialog-information"), tr("&View Track Details"), this, SLOT(showInformation())); + QSettings settings(Qmmp::configFile(), QSettings::IniFormat); m_ui->filterLineEdit->setVisible(settings.value("Library/quick_search_visible", true).toBool()); } @@ -58,6 +66,11 @@ void LibraryWidget::refresh() m_model->refresh(); } +void LibraryWidget::contextMenuEvent(QContextMenuEvent *e) +{ + m_menu->exec(mapToGlobal(e->pos())); +} + void LibraryWidget::on_filterLineEdit_textChanged(const QString &text) { m_model->setFilter(text); @@ -65,3 +78,13 @@ void LibraryWidget::on_filterLineEdit_textChanged(const QString &text) if(text.count() >= 3) m_ui->treeView->expandAll(); } + +void LibraryWidget::addSelected() +{ + m_model->add(m_ui->treeView->selectionModel()->selectedIndexes()); +} + +void LibraryWidget::showInformation() +{ + m_model->showInformation(m_ui->treeView->selectionModel()->selectedIndexes(), this); +} |
