From d85ff9e088f3e7158d0fb95e268f35077d8d475c Mon Sep 17 00:00:00 2001 From: Driim Date: Tue, 6 Nov 2012 23:03:19 +0400 Subject: [PATCH 1/3] Add feature: copy tracker URL --- src/properties/trackerlist.cpp | 27 +++++++++++++++++++++++++++ src/properties/trackerlist.h | 2 ++ 2 files changed, 29 insertions(+) diff --git a/src/properties/trackerlist.cpp b/src/properties/trackerlist.cpp index f7f63be37..e40d96142 100644 --- a/src/properties/trackerlist.cpp +++ b/src/properties/trackerlist.cpp @@ -297,6 +297,28 @@ void TrackerList::askForTrackers() { } } +// Copy tracker URL to clipboard +void TrackerList::copyTrackerUrl() { + qDebug()<<"Copy tracker URL to clipboard"; + QTorrentHandle h = properties->getCurrentTorrent(); + if (!h.is_valid()) { + clear(); + return; + } + QList selected_items = getSelectedTrackerItems(); + if (selected_items.isEmpty()) return; + QString urls_to_copy; + foreach (QTreeWidgetItem *item, selected_items) { + QString tracker_url = item->data(COL_URL, Qt::DisplayRole).toString(); + qDebug()<setText(urls_to_copy); + qDebug()<<"Tracker URL copied clipboard!"; +} + + void TrackerList::deleteSelectedTrackers() { QTorrentHandle h = properties->getCurrentTorrent(); if (!h.is_valid()) { @@ -336,6 +358,7 @@ void TrackerList::showTrackerListMenu(QPoint) { QMenu menu; // Add actions QAction *addAct = menu.addAction(IconProvider::instance()->getIcon("list-add"), tr("Add a new tracker...")); + QAction *copyAct = menu.addAction(IconProvider::instance()->getIcon("list-add"), tr("Copy tracker url...")); QAction *delAct = 0; if (!getSelectedTrackerItems().isEmpty()) { delAct = menu.addAction(IconProvider::instance()->getIcon("list-remove"), tr("Remove tracker")); @@ -348,6 +371,10 @@ void TrackerList::showTrackerListMenu(QPoint) { askForTrackers(); return; } + if (act == copyAct) { + copyTrackerUrl(); + return; + } if (act == delAct) { deleteSelectedTrackers(); return; diff --git a/src/properties/trackerlist.h b/src/properties/trackerlist.h index 15e3d05c6..d4923be22 100644 --- a/src/properties/trackerlist.h +++ b/src/properties/trackerlist.h @@ -33,6 +33,7 @@ #include #include +#include #include #include "qtorrenthandle.h" @@ -69,6 +70,7 @@ public slots: void loadStickyItems(const QTorrentHandle &h); void loadTrackers(); void askForTrackers(); + void copyTrackerUrl(); void deleteSelectedTrackers(); void showTrackerListMenu(QPoint); void loadSettings(); From 84322976ba5b4ecb6ec3901abd56acf713ff35e1 Mon Sep 17 00:00:00 2001 From: Driim Date: Thu, 15 Nov 2012 22:04:26 +0400 Subject: [PATCH 2/3] Copy tracker URL to the clipboard - code cleanup --- src/properties/trackerlist.cpp | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/src/properties/trackerlist.cpp b/src/properties/trackerlist.cpp index e40d96142..3a18ebf04 100644 --- a/src/properties/trackerlist.cpp +++ b/src/properties/trackerlist.cpp @@ -297,25 +297,16 @@ void TrackerList::askForTrackers() { } } -// Copy tracker URL to clipboard void TrackerList::copyTrackerUrl() { - qDebug()<<"Copy tracker URL to clipboard"; - QTorrentHandle h = properties->getCurrentTorrent(); - if (!h.is_valid()) { - clear(); - return; - } QList selected_items = getSelectedTrackerItems(); if (selected_items.isEmpty()) return; - QString urls_to_copy; + QStringList urls_to_copy; foreach (QTreeWidgetItem *item, selected_items) { QString tracker_url = item->data(COL_URL, Qt::DisplayRole).toString(); - qDebug()<setText(urls_to_copy); - qDebug()<<"Tracker URL copied clipboard!"; + QApplication::clipboard()->setText(urls_to_copy.join("\n")); } @@ -358,7 +349,7 @@ void TrackerList::showTrackerListMenu(QPoint) { QMenu menu; // Add actions QAction *addAct = menu.addAction(IconProvider::instance()->getIcon("list-add"), tr("Add a new tracker...")); - QAction *copyAct = menu.addAction(IconProvider::instance()->getIcon("list-add"), tr("Copy tracker url...")); + QAction *copyAct = menu.addAction(IconProvider::instance()->getIcon("list-add"), tr("Copy tracker url")); QAction *delAct = 0; if (!getSelectedTrackerItems().isEmpty()) { delAct = menu.addAction(IconProvider::instance()->getIcon("list-remove"), tr("Remove tracker")); From 694477855b14e123d308bc0e606cd2313b70defb Mon Sep 17 00:00:00 2001 From: Driim Date: Thu, 15 Nov 2012 22:16:06 +0400 Subject: [PATCH 3/3] Change icon for "Copy tracker URL" --- src/properties/trackerlist.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/properties/trackerlist.cpp b/src/properties/trackerlist.cpp index 3a18ebf04..007c85f7c 100644 --- a/src/properties/trackerlist.cpp +++ b/src/properties/trackerlist.cpp @@ -349,7 +349,7 @@ void TrackerList::showTrackerListMenu(QPoint) { QMenu menu; // Add actions QAction *addAct = menu.addAction(IconProvider::instance()->getIcon("list-add"), tr("Add a new tracker...")); - QAction *copyAct = menu.addAction(IconProvider::instance()->getIcon("list-add"), tr("Copy tracker url")); + QAction *copyAct = menu.addAction(IconProvider::instance()->getIcon("edit-copy"), tr("Copy tracker url")); QAction *delAct = 0; if (!getSelectedTrackerItems().isEmpty()) { delAct = menu.addAction(IconProvider::instance()->getIcon("list-remove"), tr("Remove tracker"));