aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/General/library/librarywidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/General/library/librarywidget.cpp')
-rw-r--r--src/plugins/General/library/librarywidget.cpp23
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);
+}