Browse Source

- Make use of this: added option to delete files from disk as a torrent is removed (libtorrent)

adaptive-webui-19844
Christophe Dumez 17 years ago
parent
commit
96a6f450d0
  1. 2
      TODO
  2. 21
      src/bittorrent.cpp
  3. 2
      src/bittorrent.h

2
TODO

@ -55,8 +55,6 @@
- Recheck doc - Recheck doc
- Translations update (IN PROGRESS) - Translations update (IN PROGRESS)
- add qt4-qtconfig as package dependency - add qt4-qtconfig as package dependency
RC5
- Make use of this: added option to delete files from disk as a torrent is removed (libtorrent)
rc4->rc5 changelog: rc4->rc5 changelog:
- BUGFIX: Now filtered don't appear on hard drive anymore (libtorrent >= r1659) - BUGFIX: Now filtered don't appear on hard drive anymore (libtorrent >= r1659)

21
src/bittorrent.cpp

@ -27,7 +27,6 @@
#include "bittorrent.h" #include "bittorrent.h"
#include "misc.h" #include "misc.h"
#include "downloadThread.h" #include "downloadThread.h"
#include "deleteThread.h"
#include <libtorrent/extensions/metadata_transfer.hpp> #include <libtorrent/extensions/metadata_transfer.hpp>
#include <libtorrent/extensions/ut_pex.hpp> #include <libtorrent/extensions/ut_pex.hpp>
@ -62,8 +61,6 @@ bittorrent::bittorrent() : timerScan(0), DHTEnabled(false), preAllocateAll(false
downloader = new downloadThread(this); downloader = new downloadThread(this);
connect(downloader, SIGNAL(downloadFinished(QString, QString)), this, SLOT(processDownloadedFile(QString, QString))); connect(downloader, SIGNAL(downloadFinished(QString, QString)), this, SLOT(processDownloadedFile(QString, QString)));
connect(downloader, SIGNAL(downloadFailure(QString, QString)), this, SLOT(handleDownloadFailure(QString, QString))); connect(downloader, SIGNAL(downloadFailure(QString, QString)), this, SLOT(handleDownloadFailure(QString, QString)));
// File deleter (thread)
deleter = new deleteThread(this);
qDebug("* BTSession constructed"); qDebug("* BTSession constructed");
} }
@ -72,7 +69,6 @@ bittorrent::~bittorrent() {
// Disable directory scanning // Disable directory scanning
disableDirectoryScanning(); disableDirectoryScanning();
// Delete our objects // Delete our objects
delete deleter;
delete timerAlerts; delete timerAlerts;
delete ETARefresher; delete ETARefresher;
delete downloader; delete downloader;
@ -210,12 +206,13 @@ void bittorrent::deleteTorrent(QString hash, bool permanent) {
} }
QString savePath = h.save_path(); QString savePath = h.save_path();
QString fileName = h.name(); QString fileName = h.name();
arborescence *files_arb = 0;
if(permanent){
files_arb = new arborescence(h.get_torrent_info());
}
// Remove it from session // Remove it from session
s->remove_torrent(h.get_torrent_handle()); if(permanent) {
qDebug("Removing this on hard drive: %s", qPrintable(savePath+QDir::separator()+fileName));
s->remove_torrent(h.get_torrent_handle(), session::delete_files);
} else {
s->remove_torrent(h.get_torrent_handle());
}
// Remove it from torrent backup directory // Remove it from torrent backup directory
QDir torrentBackup(misc::qBittorrentPath() + "BT_backup"); QDir torrentBackup(misc::qBittorrentPath() + "BT_backup");
QStringList filters; QStringList filters;
@ -247,12 +244,6 @@ void bittorrent::deleteTorrent(QString hash, bool permanent) {
std::cerr << "Error: Torrent " << hash.toStdString() << " is neither in finished or unfinished list\n"; std::cerr << "Error: Torrent " << hash.toStdString() << " is neither in finished or unfinished list\n";
} }
} }
if(permanent && files_arb != 0) {
// Remove from Hard drive
qDebug("Removing this on hard drive: %s", qPrintable(savePath+QDir::separator()+fileName));
// Deleting in a thread to avoid GUI freeze
deleter->deleteTorrent(savePath, files_arb);
}
} }
// Return a list of hashes for the finished torrents // Return a list of hashes for the finished torrents

2
src/bittorrent.h

@ -33,7 +33,6 @@
using namespace libtorrent; using namespace libtorrent;
class downloadThread; class downloadThread;
class deleteThread;
class QTimer; class QTimer;
class bittorrent : public QObject{ class bittorrent : public QObject{
@ -54,7 +53,6 @@ class bittorrent : public QObject{
QHash<QString, QPair<size_type,size_type> > ratioData; QHash<QString, QPair<size_type,size_type> > ratioData;
QTimer *ETARefresher; QTimer *ETARefresher;
QHash<QString, QList<QPair<QString, QString> > > trackersErrors; QHash<QString, QList<QPair<QString, QString> > > trackersErrors;
deleteThread *deleter;
QStringList waitingForPause; QStringList waitingForPause;
QStringList finishedTorrents; QStringList finishedTorrents;
QStringList unfinishedTorrents; QStringList unfinishedTorrents;

Loading…
Cancel
Save