Module: deluge
Branch: master
Commit: a827cf6c7aa28023b5fd6aed020983d8db9e1974

Author: Andrew Resch <[email protected]>
Date:   Sun Oct 10 12:34:13 2010 -0700

Keep a torrent paused after a forced recheck if it was paused to start.

---

 deluge/core/torrent.py        |    8 ++++++++
 deluge/core/torrentmanager.py |    9 ++++++++-
 2 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/deluge/core/torrent.py b/deluge/core/torrent.py
index 74c8885..3b61335 100644
--- a/deluge/core/torrent.py
+++ b/deluge/core/torrent.py
@@ -186,6 +186,11 @@ class Torrent(object):
         else:
             self.owner = owner
 
+        # Keep track if we're forcing a recheck of the torrent so that we can
+        # repause it after its done if necessary
+        self.forcing_recheck = False
+        self.forcing_recheck_paused = False
+
         log.debug("Torrent object created.")
 
     ## Options methods ##
@@ -871,12 +876,15 @@ class Torrent(object):
 
     def force_recheck(self):
         """Forces a recheck of the torrents pieces"""
+        paused = self.handle.is_paused()
         try:
             self.handle.force_recheck()
             self.handle.resume()
         except Exception, e:
             log.debug("Unable to force recheck: %s", e)
             return False
+        self.forcing_recheck = True
+        self.forcing_recheck_paused = paused
         return True
 
     def rename_files(self, filenames):
diff --git a/deluge/core/torrentmanager.py b/deluge/core/torrentmanager.py
index fcf1860..93f0a97 100644
--- a/deluge/core/torrentmanager.py
+++ b/deluge/core/torrentmanager.py
@@ -857,7 +857,14 @@ class TorrentManager(component.Component):
             torrent = self.torrents[str(alert.handle.info_hash())]
         except:
             return
-
+        
+        # Check to see if we're forcing a recheck and set it back to paused
+        # if necessary
+        if torrent.forcing_recheck:
+            torrent.forcing_recheck = False
+            if torrent.forcing_recheck_paused:
+                torrent.handle.pause()
+                
         # Set the torrent state
         torrent.update_state()
 

-- 
You received this message because you are subscribed to the Google Groups 
"deluge-commit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/deluge-commit?hl=en.

Reply via email to