Add playlist right click option to copy URL
This commit is contained in:
@@ -68,6 +68,7 @@
|
|||||||
#include <QStackedWidget>
|
#include <QStackedWidget>
|
||||||
#include <QTabBar>
|
#include <QTabBar>
|
||||||
#include <QToolButton>
|
#include <QToolButton>
|
||||||
|
#include <QClipboard>
|
||||||
|
|
||||||
#include "core/logging.h"
|
#include "core/logging.h"
|
||||||
#include "core/closure.h"
|
#include "core/closure.h"
|
||||||
@@ -646,6 +647,7 @@ MainWindow::MainWindow(Application *app, SystemTrayIcon *tray_icon, OSD *osd, co
|
|||||||
playlist_open_in_browser_ = playlist_menu_->addAction(IconLoader::Load("document-open-folder"), tr("Show in file browser..."), this, SLOT(PlaylistOpenInBrowser()));
|
playlist_open_in_browser_ = playlist_menu_->addAction(IconLoader::Load("document-open-folder"), tr("Show in file browser..."), this, SLOT(PlaylistOpenInBrowser()));
|
||||||
playlist_open_in_browser_->setVisible(false);
|
playlist_open_in_browser_->setVisible(false);
|
||||||
playlist_show_in_collection_ = playlist_menu_->addAction(IconLoader::Load("edit-find"), tr("Show in collection..."), this, SLOT(ShowInCollection()));
|
playlist_show_in_collection_ = playlist_menu_->addAction(IconLoader::Load("edit-find"), tr("Show in collection..."), this, SLOT(ShowInCollection()));
|
||||||
|
playlist_copy_url_ = playlist_menu_->addAction(IconLoader::Load("edit-copy"), tr("Copy URL(s)..."), this, SLOT(PlaylistCopyUrl()));
|
||||||
playlist_menu_->addSeparator();
|
playlist_menu_->addSeparator();
|
||||||
playlistitem_actions_separator_ = playlist_menu_->addSeparator();
|
playlistitem_actions_separator_ = playlist_menu_->addSeparator();
|
||||||
playlist_menu_->addAction(ui_->action_clear_playlist);
|
playlist_menu_->addAction(ui_->action_clear_playlist);
|
||||||
@@ -1705,6 +1707,8 @@ void MainWindow::PlaylistRightClick(const QPoint &global_pos, const QModelIndex
|
|||||||
#endif
|
#endif
|
||||||
playlist_organize_->setVisible(false);
|
playlist_organize_->setVisible(false);
|
||||||
|
|
||||||
|
playlist_copy_url_->setVisible(selected > 0);
|
||||||
|
|
||||||
if (selected < 1) {
|
if (selected < 1) {
|
||||||
playlist_queue_->setVisible(false);
|
playlist_queue_->setVisible(false);
|
||||||
playlist_queue_play_next_->setVisible(false);
|
playlist_queue_play_next_->setVisible(false);
|
||||||
@@ -2373,6 +2377,25 @@ void MainWindow::PlaylistOpenInBrowser() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::PlaylistCopyUrl() {
|
||||||
|
|
||||||
|
QList<QUrl> urls;
|
||||||
|
for (const QModelIndex &proxy_index : ui_->playlist->view()->selectionModel()->selectedRows()) {
|
||||||
|
const QModelIndex source_index = app_->playlist_manager()->current()->proxy()->mapToSource(proxy_index);
|
||||||
|
if (!source_index.isValid()) continue;
|
||||||
|
PlaylistItemPtr item = app_->playlist_manager()->current()->item_at(source_index.row());
|
||||||
|
if (!item) continue;
|
||||||
|
urls << item->StreamUrl();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (urls.count() > 0) {
|
||||||
|
QMimeData *mime_data = new QMimeData;
|
||||||
|
mime_data->setUrls(urls);
|
||||||
|
QApplication::clipboard()->setMimeData(mime_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::PlaylistQueue() {
|
void MainWindow::PlaylistQueue() {
|
||||||
|
|
||||||
QModelIndexList indexes;
|
QModelIndexList indexes;
|
||||||
|
|||||||
@@ -170,6 +170,7 @@ class MainWindow : public QMainWindow, public PlatformInterface {
|
|||||||
void PlaylistCopyToDevice();
|
void PlaylistCopyToDevice();
|
||||||
void PlaylistOrganizeSelected(const bool copy);
|
void PlaylistOrganizeSelected(const bool copy);
|
||||||
void PlaylistOpenInBrowser();
|
void PlaylistOpenInBrowser();
|
||||||
|
void PlaylistCopyUrl();
|
||||||
void ShowInCollection();
|
void ShowInCollection();
|
||||||
|
|
||||||
void ChangeCollectionQueryMode(QAction *action);
|
void ChangeCollectionQueryMode(QAction *action);
|
||||||
@@ -338,6 +339,7 @@ class MainWindow : public QMainWindow, public PlatformInterface {
|
|||||||
QAction *playlist_copy_to_device_;
|
QAction *playlist_copy_to_device_;
|
||||||
#endif
|
#endif
|
||||||
QAction *playlist_open_in_browser_;
|
QAction *playlist_open_in_browser_;
|
||||||
|
QAction *playlist_copy_url_;
|
||||||
QAction *playlist_queue_;
|
QAction *playlist_queue_;
|
||||||
QAction* playlist_queue_play_next_;
|
QAction* playlist_queue_play_next_;
|
||||||
QAction *playlist_skip_;
|
QAction *playlist_skip_;
|
||||||
|
|||||||
Reference in New Issue
Block a user