- Remember paused torrents on startup

This commit is contained in:
Christophe Dumez 2008-12-27 13:04:06 +00:00
parent 6369401150
commit 71e3061c18
4 changed files with 20 additions and 8 deletions

View file

@ -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();

View file

@ -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) {

View file

@ -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);

View file

@ -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"