Version: (using KDE KDE 3.5.3) Installed from: Gentoo Packages OS: Linux There should be another context menu item to not only remove a torrent, but also delete the corresponding files (e.g. "Remove and delete files").
There is one, you get asked what do with the data when an incompleted torrent is deleted.
I assume he's referring to completed downloads, i.e. uploads. When you're torrenting archives, you usually extract them in-place and go about your merry way with the data, while the archives stick around to share to a ratio of 1.0. When that's done, you want to delete both the torrent and the now-useless data in one go.
Err, yes. What Eike says ;) Sorry if I did not make this clear in my initial wish. Somehow I never removed an incomplete torrent before, only completed ones...
I would like to see this feature too, except I can't vote because bugs in Ark are leeching all of them. So here is a reply to show my support. ;)
I didn't know you could vote per component. Added some votes. :)
*** This bug has been confirmed by popular vote. ***
SVN commit 592053 by guisson: Added feature to remove torrent and data in context menu of view. BUG: 130465 M +25 -1 apps/ktorrent/ktorrentview.cpp M +2 -0 apps/ktorrent/ktorrentview.h M +2 -0 libktorrent/torrent/torrentcontrol.cpp --- trunk/extragear/network/ktorrent/apps/ktorrent/ktorrentview.cpp #592052:592053 @@ -142,9 +142,13 @@ this,SLOT(startDownloads())); remove_id = menu->insertItem( - iload->loadIconSet("ktremove",KIcon::Small),i18n("Remove"), + iload->loadIconSet("ktremove",KIcon::Small),i18n("Remove Torrent"), this,SLOT(removeDownloads())); + remove_all_id = menu->insertItem( + iload->loadIconSet("ktremove",KIcon::Small),i18n("Remove Torrent And Data"), + this,SLOT(removeDownloadsAndData())); + queue_id = menu->insertItem( iload->loadIconSet("player_playlist",KIcon::Small),i18n("Enqueue/Dequeue"), this,SLOT(queueSlot())); @@ -335,6 +339,25 @@ onSelectionChanged(); } +void KTorrentView::removeDownloadsAndData() +{ + QString msg = i18n("You will lose all the downloaded data. Are you sure you want to do this ?"); + if (KMessageBox::warningYesNo(this,msg) == KMessageBox::No) + return; + + QPtrList<QListViewItem> sel = selectedItems(); + for (QPtrList<QListViewItem>::iterator itr = sel.begin(); itr != sel.end();itr++) + { + KTorrentViewItem* kvi = (KTorrentViewItem*)*itr; + TorrentInterface* tc = kvi->getTC(); + if (tc) + wantToRemove(tc,true); + } + + // make sure toolbuttons get updated + onSelectionChanged(); +} + void KTorrentView::manualAnnounce() { QPtrList<QListViewItem> sel = selectedItems(); @@ -447,6 +470,7 @@ menu->setItemEnabled(start_id,en_start); menu->setItemEnabled(stop_id,en_stop); menu->setItemEnabled(remove_id,en_remove); + menu->setItemEnabled(remove_all_id,en_remove); menu->setItemEnabled(preview_id,en_prev); menu->setItemEnabled(add_peer_id, en_add_peer); menu->setItemEnabled(announce_id,en_announce); --- trunk/extragear/network/ktorrent/apps/ktorrent/ktorrentview.h #592052:592053 @@ -103,6 +103,7 @@ void manualAnnounce(); void previewFiles(); void removeDownloads(); + void removeDownloadsAndData(); void onSelectionChanged(); void queueSlot(); void checkDataIntegrity(); @@ -143,6 +144,7 @@ int stop_id; int start_id; int remove_id; + int remove_all_id; int preview_id; int announce_id; int queue_id; --- trunk/extragear/network/ktorrent/libktorrent/torrent/torrentcontrol.cpp #592052:592053 @@ -709,6 +709,8 @@ bool TorrentControl::changeDataDir(const QString & new_dir) { +#warning "This code is broken at the moment, will fix later" + return false; // new_dir doesn't contain the torX/ part // so first get that and append it to new_dir int dd = datadir.findRev(DirSeparator(),datadir.length() - 2,false);