From 71e3061c18d035cb3926faff31b3b3109b6b7b8b Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Sat, 27 Dec 2008 13:04:06 +0000 Subject: [PATCH] - Remember paused torrents on startup --- src/bittorrent.cpp | 8 ++++++-- src/qtorrenthandle.cpp | 12 +++++++++++- src/qtorrenthandle.h | 2 +- src/src.pro | 6 ++---- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/bittorrent.cpp b/src/bittorrent.cpp index 8e023c483..428e43ac5 100644 --- a/src/bittorrent.cpp +++ b/src/bittorrent.cpp @@ -454,9 +454,13 @@ void bittorrent::addTorrent(QString path, bool fromScanDir, QString from_url, bo // Start in pause p.paused = true; p.duplicate_is_error = false; // Already checked - p.auto_managed = true; + p.auto_managed = false; // Because it is added in paused state // Adding torrent to bittorrent session h = s->add_torrent(p); + // XXX: Workaround for http://code.rasterbar.com/libtorrent/ticket/454 + h.pause(false); + //Q_ASSERT(!h.is_auto_managed()); + //Q_ASSERT(h.is_paused()); // Check if it worked if(!h.is_valid()) { // No need to keep on, it failed. @@ -1118,7 +1122,7 @@ void bittorrent::readAlerts() { if(h.is_valid()){ emit finishedTorrent(h); QString hash = h.hash(); - // Create .paused file if necessary + // Create .finished file if necessary QFile finished_file(misc::qBittorrentPath()+"BT_backup"+QDir::separator()+hash+".finished"); finished_file.open(QIODevice::WriteOnly | QIODevice::Text); finished_file.close(); diff --git a/src/qtorrenthandle.cpp b/src/qtorrenthandle.cpp index b3044105c..a9e86d6c0 100644 --- a/src/qtorrenthandle.cpp +++ b/src/qtorrenthandle.cpp @@ -315,16 +315,26 @@ void QTorrentHandle::set_upload_limit(int limit) { h.set_upload_limit(limit); } -void QTorrentHandle::pause() { +void QTorrentHandle::pause(bool create_file) { Q_ASSERT(h.is_valid()); h.auto_managed(false); h.pause(); + // Create .paused file if necessary + if(create_file && !QFile::exists(misc::qBittorrentPath()+"BT_backup"+QDir::separator()+hash()+".paused")) { + QFile paused_file(misc::qBittorrentPath()+"BT_backup"+QDir::separator()+hash()+".paused"); + paused_file.open(QIODevice::WriteOnly | QIODevice::Text); + paused_file.close(); + } } void QTorrentHandle::resume() { Q_ASSERT(h.is_valid()); h.auto_managed(true); h.resume(); + // Delete .paused file if necessary + if(QFile::exists(misc::qBittorrentPath()+"BT_backup"+QDir::separator()+hash()+".paused")) { + QFile::remove(misc::qBittorrentPath()+"BT_backup"+QDir::separator()+hash()+".paused"); + } } void QTorrentHandle::remove_url_seed(QString seed) { diff --git a/src/qtorrenthandle.h b/src/qtorrenthandle.h index 20d4920af..1948196c8 100644 --- a/src/qtorrenthandle.h +++ b/src/qtorrenthandle.h @@ -103,7 +103,7 @@ class QTorrentHandle { void set_download_limit(int limit); void set_upload_limit(int limit); - void pause(); + void pause(bool create_file=true); void resume(); void remove_url_seed(QString seed); void add_url_seed(QString seed); diff --git a/src/src.pro b/src/src.pro index b185cc1ca..143432a09 100644 --- a/src/src.pro +++ b/src/src.pro @@ -92,10 +92,8 @@ DEFINES += NDEBUG icon128 \ icon192 } -QMAKE_CXXFLAGS_RELEASE += -fwrapv \ - -O2 -QMAKE_CXXFLAGS_DEBUG += -fwrapv \ - -O0 +QMAKE_CXXFLAGS_RELEASE += -fwrapv +QMAKE_CXXFLAGS_DEBUG += -fwrapv CONFIG += link_pkgconfig PKGCONFIG += "libtorrent-rasterbar libcurl"