Browse Source

Remove uneeded files on torrent deletion

Fix encoding error in file renaming
adaptive-webui-19844
Christophe Dumez 14 years ago
parent
commit
a9d4b38bd3
  1. 6
      src/qtlibtorrent/qbtsession.cpp
  2. 18
      src/qtlibtorrent/qtorrenthandle.cpp
  3. 1
      src/qtlibtorrent/qtorrenthandle.h

6
src/qtlibtorrent/qbtsession.cpp

@ -774,7 +774,13 @@ void QBtSession::deleteTorrent(QString hash, bool delete_local_files) { @@ -774,7 +774,13 @@ void QBtSession::deleteTorrent(QString hash, bool delete_local_files) {
savePathsToRemove[hash] = save_dir.absolutePath();
s->remove_torrent(h.get_torrent_handle(), session::delete_files);
} else {
QStringList uneeded_files = h.uneeded_files_path();
s->remove_torrent(h.get_torrent_handle());
// Remove unneeded files
foreach(const QString &uneeded_file, uneeded_files) {
qDebug("Removing uneeded file: %s", qPrintable(uneeded_file));
misc::safeRemove(uneeded_file);
}
}
// Remove it from torrent backup directory
QDir torrentBackup(misc::BTBackupLocation());

18
src/qtlibtorrent/qtorrenthandle.cpp

@ -379,7 +379,7 @@ size_type QTorrentHandle::total_payload_upload() const { @@ -379,7 +379,7 @@ size_type QTorrentHandle::total_payload_upload() const {
// to all files in a torrent
QStringList QTorrentHandle::files_path() const {
Q_ASSERT(h.is_valid());
QDir saveDir(misc::toQString(h.save_path().string()));
QDir saveDir(save_path());
QStringList res;
torrent_info::file_iterator fi = h.get_torrent_info().begin_files();
while(fi != h.get_torrent_info().end_files()) {
@ -389,6 +389,22 @@ QStringList QTorrentHandle::files_path() const { @@ -389,6 +389,22 @@ QStringList QTorrentHandle::files_path() const {
return res;
}
QStringList QTorrentHandle::uneeded_files_path() const {
Q_ASSERT(h.is_valid());
QDir saveDir(save_path());
QStringList res;
std::vector<int> fp = h.file_priorities();
torrent_info::file_iterator fi = h.get_torrent_info().begin_files();
int i = 0;
while(fi != h.get_torrent_info().end_files()) {
if(fp[i] == 0)
res << QDir::cleanPath(saveDir.absoluteFilePath(misc::toQStringU(fi->path.string())));
fi++;
++i;
}
return res;
}
bool QTorrentHandle::has_missing_files() const {
const QStringList paths = files_path();
foreach(const QString &path, paths) {

1
src/qtlibtorrent/qtorrenthandle.h

@ -110,6 +110,7 @@ class QTorrentHandle { @@ -110,6 +110,7 @@ class QTorrentHandle {
size_type all_time_download() const;
size_type total_done() const;
QStringList files_path() const;
QStringList uneeded_files_path() const;
bool has_missing_files() const;
int num_uploads() const;
bool is_seed() const;

Loading…
Cancel
Save