Browse Source

Add feature: copy tracker URL

adaptive-webui-19844
Driim 12 years ago
parent
commit
d85ff9e088
  1. 27
      src/properties/trackerlist.cpp
  2. 2
      src/properties/trackerlist.h

27
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<QTreeWidgetItem *> 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()<<QString("Copy ")+tracker_url;
urls_to_copy += tracker_url/*.prepend(QString(" "))*/;
delete item;
}
QApplication::clipboard()->setText(urls_to_copy);
qDebug()<<"Tracker URL copied clipboard!";
}
void TrackerList::deleteSelectedTrackers() { void TrackerList::deleteSelectedTrackers() {
QTorrentHandle h = properties->getCurrentTorrent(); QTorrentHandle h = properties->getCurrentTorrent();
if (!h.is_valid()) { if (!h.is_valid()) {
@ -336,6 +358,7 @@ void TrackerList::showTrackerListMenu(QPoint) {
QMenu menu; QMenu menu;
// Add actions // Add actions
QAction *addAct = menu.addAction(IconProvider::instance()->getIcon("list-add"), tr("Add a new tracker...")); 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; QAction *delAct = 0;
if (!getSelectedTrackerItems().isEmpty()) { if (!getSelectedTrackerItems().isEmpty()) {
delAct = menu.addAction(IconProvider::instance()->getIcon("list-remove"), tr("Remove tracker")); delAct = menu.addAction(IconProvider::instance()->getIcon("list-remove"), tr("Remove tracker"));
@ -348,6 +371,10 @@ void TrackerList::showTrackerListMenu(QPoint) {
askForTrackers(); askForTrackers();
return; return;
} }
if (act == copyAct) {
copyTrackerUrl();
return;
}
if (act == delAct) { if (act == delAct) {
deleteSelectedTrackers(); deleteSelectedTrackers();
return; return;

2
src/properties/trackerlist.h

@ -33,6 +33,7 @@
#include <QTreeWidget> #include <QTreeWidget>
#include <QList> #include <QList>
#include <QClipboard>
#include <libtorrent/version.hpp> #include <libtorrent/version.hpp>
#include "qtorrenthandle.h" #include "qtorrenthandle.h"
@ -69,6 +70,7 @@ public slots:
void loadStickyItems(const QTorrentHandle &h); void loadStickyItems(const QTorrentHandle &h);
void loadTrackers(); void loadTrackers();
void askForTrackers(); void askForTrackers();
void copyTrackerUrl();
void deleteSelectedTrackers(); void deleteSelectedTrackers();
void showTrackerListMenu(QPoint); void showTrackerListMenu(QPoint);
void loadSettings(); void loadSettings();

Loading…
Cancel
Save