diff --git a/src/gui/search/searchjobwidget.cpp b/src/gui/search/searchjobwidget.cpp index 18c94de05..a9c41b21c 100644 --- a/src/gui/search/searchjobwidget.cpp +++ b/src/gui/search/searchjobwidget.cpp @@ -370,6 +370,28 @@ void SearchJobWidget::showFilterContextMenu(const QPoint &) menu->popup(QCursor::pos()); } +void SearchJobWidget::contextMenuEvent(QContextMenuEvent *event) +{ + auto *menu = new QMenu(this); + menu->setAttribute(Qt::WA_DeleteOnClose); + + const QAction *downloadAction = menu->addAction( + GuiIconProvider::instance()->getIcon("download"), tr("Download")); + connect(downloadAction, &QAction::triggered, this, &SearchJobWidget::downloadTorrents); + + menu->addSeparator(); + + const QAction *openDescriptionAction = menu->addAction( + GuiIconProvider::instance()->getIcon("application-x-mswinurl"), tr("Go to description page")); + connect(openDescriptionAction, &QAction::triggered, this, &SearchJobWidget::openTorrentPages); + + const QAction *copyDescriptionAction = menu->addAction( + GuiIconProvider::instance()->getIcon("edit-copy"), tr("Copy description page URL")); + connect(copyDescriptionAction, &QAction::triggered, this, &SearchJobWidget::copyTorrentURLs); + + menu->popup(event->globalPos()); +} + QString SearchJobWidget::statusText(SearchJobWidget::Status st) { switch (st) { diff --git a/src/gui/search/searchjobwidget.h b/src/gui/search/searchjobwidget.h index 88f4c1a3f..673ecdb55 100644 --- a/src/gui/search/searchjobwidget.h +++ b/src/gui/search/searchjobwidget.h @@ -99,6 +99,7 @@ private: void updateFilter(); void filterSearchResults(const QString &name); void showFilterContextMenu(const QPoint &); + void contextMenuEvent(QContextMenuEvent *event) override; void displayToggleColumnsMenu(const QPoint &); void onItemDoubleClicked(const QModelIndex &index); void searchFinished(bool cancelled);