Replace pause_all with pause_session

* Replace pause_all and resume_all with pause_session and resume_session
 * Pausing all the torrents individually loses the original paused status
   so use the libtorrent session pause instead.
 * Added a SessionPausedEvent to the method.
This commit is contained in:
Calum Lind 2014-08-12 14:02:59 +01:00
commit 8c6758720d
8 changed files with 34 additions and 36 deletions

View file

@ -54,7 +54,7 @@ from deluge import path_chooser_common
from deluge.configmanager import ConfigManager, get_config_dir from deluge.configmanager import ConfigManager, get_config_dir
import deluge.common import deluge.common
import deluge.component as component import deluge.component as component
from deluge.event import NewVersionAvailableEvent, SessionResumedEvent, TorrentQueueChangedEvent from deluge.event import NewVersionAvailableEvent, SessionPausedEvent, SessionResumedEvent, TorrentQueueChangedEvent
from deluge.error import DelugeError, InvalidTorrentError, InvalidPathError from deluge.error import DelugeError, InvalidTorrentError, InvalidPathError
from deluge.core.authmanager import AUTH_LEVEL_ADMIN, AUTH_LEVEL_NONE from deluge.core.authmanager import AUTH_LEVEL_ADMIN, AUTH_LEVEL_NONE
from deluge.core.authmanager import AUTH_LEVELS_MAPPING, AUTH_LEVELS_MAPPING_REVERSE from deluge.core.authmanager import AUTH_LEVELS_MAPPING, AUTH_LEVELS_MAPPING_REVERSE
@ -418,17 +418,18 @@ class Core(component.Component):
log.warning("Error moving torrent %s to %s", torrent_id, dest) log.warning("Error moving torrent %s to %s", torrent_id, dest)
@export @export
def pause_all_torrents(self): def pause_session(self):
"""Pause all torrents in the session""" """Pause all torrents in the session"""
for torrent in self.torrentmanager.torrents.values(): if not self.session.is_paused():
torrent.pause() self.session.pause()
component.get("EventManager").emit(SessionPausedEvent())
@export @export
def resume_all_torrents(self): def resume_session(self):
"""Resume all torrents in the session""" """Resume all torrents in the session"""
for torrent in self.torrentmanager.torrents.values(): if self.session.is_paused():
torrent.resume() self.session.resume()
component.get("EventManager").emit(SessionResumedEvent()) component.get("EventManager").emit(SessionResumedEvent())
@export @export
def resume_torrent(self, torrent_ids): def resume_torrent(self, torrent_ids):

View file

@ -501,13 +501,10 @@ class Core(CorePluginBase):
self.reader = create_reader(self.config["list_type"], self.config["list_compression"]) self.reader = create_reader(self.config["list_type"], self.config["list_compression"])
def pause_session(self): def pause_session(self):
if not self.core.session.is_paused(): self.need_to_resume_session = not self.core.session.is_paused()
self.core.session.pause() self.core.pause_session()
self.need_to_resume_session = True
else:
self.need_to_resume_session = False
def resume_session(self, result): def resume_session(self, result):
self.core.session.resume() self.core.resume_session()
self.need_to_resume_session = False self.need_to_resume_session = False
return result return result

View file

@ -154,10 +154,10 @@ class Core(CorePluginBase):
settings["active_seeds"] = self.config["low_active_up"] settings["active_seeds"] = self.config["low_active_up"]
session.set_settings(settings) session.set_settings(settings)
# Resume the session if necessary # Resume the session if necessary
component.get("Core").session.resume() component.get("Core").resume_session()
elif state == "Red": elif state == "Red":
# This is Red (Stop), so pause the libtorrent session # This is Red (Stop), so pause the libtorrent session
component.get("Core").session.pause() component.get("Core").pause_session()
if state != self.state: if state != self.state:
# The state has changed since last update so we need to emit an event # The state has changed since last update so we need to emit an event

View file

@ -65,9 +65,9 @@ class Core(CorePluginBase):
@export @export
def toggle(self): def toggle(self):
if self.core.session.is_paused(): if self.core.session.is_paused():
self.core.session.resume() self.core.resume_session()
paused = False paused = False
else: else:
self.core.session.pause() self.core.pause_session()
paused = True paused = True
return paused return paused

View file

@ -48,7 +48,7 @@ class Command(BaseCommand):
self.console.write(self.usage) self.console.write(self.usage)
return return
if len(args) > 0 and args[0].lower() == '*': if len(args) > 0 and args[0].lower() == '*':
client.core.pause_all_torrents() client.core.pause_session()
return return
torrent_ids = [] torrent_ids = []

View file

@ -49,7 +49,7 @@ class Command(BaseCommand):
self.console.write(self.usage) self.console.write(self.usage)
return return
if len(args) > 0 and args[0] == '*': if len(args) > 0 and args[0] == '*':
client.core.resume_all_torrents() client.core.resume_session()
return return
torrent_ids = [] torrent_ids = []

View file

@ -70,27 +70,27 @@
</object> </object>
</child> </child>
<child> <child>
<object class="GtkImageMenuItem" id="menuitem_pause_all"> <object class="GtkImageMenuItem" id="menuitem_pause_session">
<property name="label" translatable="yes">_Pause All</property> <property name="label" translatable="yes">_Pause Session</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="use_action_appearance">False</property> <property name="use_action_appearance">False</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="image">menu-item-image6</property> <property name="image">menu-item-image6</property>
<property name="use_stock">False</property> <property name="use_stock">False</property>
<signal name="activate" handler="on_menuitem_pause_all_activate" swapped="no"/> <signal name="activate" handler="on_menuitem_pause_session_activate" swapped="no"/>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkImageMenuItem" id="menuitem_resume_all"> <object class="GtkImageMenuItem" id="menuitem_resume_session">
<property name="label" translatable="yes">_Resume All</property> <property name="label" translatable="yes">_Resume Session</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="use_action_appearance">False</property> <property name="use_action_appearance">False</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="image">menu-item-image7</property> <property name="image">menu-item-image7</property>
<property name="use_stock">False</property> <property name="use_stock">False</property>
<signal name="activate" handler="on_menuitem_resume_all_activate" swapped="no"/> <signal name="activate" handler="on_menuitem_resume_session_activate" swapped="no"/>
</object> </object>
</child> </child>
<child> <child>

View file

@ -60,8 +60,8 @@ class SystemTray(component.Component):
# List of widgets that need to be hidden when not connected to a host # List of widgets that need to be hidden when not connected to a host
self.hide_widget_list = [ self.hide_widget_list = [
"menuitem_add_torrent", "menuitem_add_torrent",
"menuitem_pause_all", "menuitem_pause_session",
"menuitem_resume_all", "menuitem_resume_session",
"menuitem_download_limit", "menuitem_download_limit",
"menuitem_upload_limit", "menuitem_upload_limit",
"menuitem_quitdaemon", "menuitem_quitdaemon",
@ -95,8 +95,8 @@ class SystemTray(component.Component):
self.builder.connect_signals({ self.builder.connect_signals({
"on_menuitem_show_deluge_activate": self.on_menuitem_show_deluge_activate, "on_menuitem_show_deluge_activate": self.on_menuitem_show_deluge_activate,
"on_menuitem_add_torrent_activate": self.on_menuitem_add_torrent_activate, "on_menuitem_add_torrent_activate": self.on_menuitem_add_torrent_activate,
"on_menuitem_pause_all_activate": self.on_menuitem_pause_all_activate, "on_menuitem_pause_session_activate": self.on_menuitem_pause_session_activate,
"on_menuitem_resume_all_activate": self.on_menuitem_resume_all_activate, "on_menuitem_resume_session_activate": self.on_menuitem_resume_session_activate,
"on_menuitem_quit_activate": self.on_menuitem_quit_activate, "on_menuitem_quit_activate": self.on_menuitem_quit_activate,
"on_menuitem_quitdaemon_activate": self.on_menuitem_quitdaemon_activate "on_menuitem_quitdaemon_activate": self.on_menuitem_quitdaemon_activate
}) })
@ -365,13 +365,13 @@ class SystemTray(component.Component):
log.debug("on_menuitem_add_torrent_activate") log.debug("on_menuitem_add_torrent_activate")
component.get("AddTorrentDialog").show() component.get("AddTorrentDialog").show()
def on_menuitem_pause_all_activate(self, menuitem): def on_menuitem_pause_session_activate(self, menuitem):
log.debug("on_menuitem_pause_all_activate") log.debug("on_menuitem_pause_session_activate")
client.core.pause_all_torrents() client.core.pause_session()
def on_menuitem_resume_all_activate(self, menuitem): def on_menuitem_resume_session_activate(self, menuitem):
log.debug("on_menuitem_resume_all_activate") log.debug("on_menuitem_resume_session_activate")
client.core.resume_all_torrents() client.core.resume_session()
def on_menuitem_quit_activate(self, menuitem): def on_menuitem_quit_activate(self, menuitem):
log.debug("on_menuitem_quit_activate") log.debug("on_menuitem_quit_activate")