From 8c6758720d690d77657ffc97b9f18e6e51b628db Mon Sep 17 00:00:00 2001 From: Calum Lind Date: Tue, 12 Aug 2014 14:02:59 +0100 Subject: [PATCH] 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. --- deluge/core/core.py | 17 ++++++++-------- .../deluge/plugins/blocklist/core.py | 9 +++------ .../deluge/plugins/scheduler/core.py | 4 ++-- .../Toggle/deluge/plugins/toggle/core.py | 4 ++-- deluge/ui/console/commands/pause.py | 2 +- deluge/ui/console/commands/resume.py | 2 +- deluge/ui/gtkui/glade/tray_menu.ui | 12 +++++------ deluge/ui/gtkui/systemtray.py | 20 +++++++++---------- 8 files changed, 34 insertions(+), 36 deletions(-) diff --git a/deluge/core/core.py b/deluge/core/core.py index 8968ba488..2e35e3292 100644 --- a/deluge/core/core.py +++ b/deluge/core/core.py @@ -54,7 +54,7 @@ from deluge import path_chooser_common from deluge.configmanager import ConfigManager, get_config_dir import deluge.common 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.core.authmanager import AUTH_LEVEL_ADMIN, AUTH_LEVEL_NONE 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) @export - def pause_all_torrents(self): + def pause_session(self): """Pause all torrents in the session""" - for torrent in self.torrentmanager.torrents.values(): - torrent.pause() + if not self.session.is_paused(): + self.session.pause() + component.get("EventManager").emit(SessionPausedEvent()) @export - def resume_all_torrents(self): + def resume_session(self): """Resume all torrents in the session""" - for torrent in self.torrentmanager.torrents.values(): - torrent.resume() - component.get("EventManager").emit(SessionResumedEvent()) + if self.session.is_paused(): + self.session.resume() + component.get("EventManager").emit(SessionResumedEvent()) @export def resume_torrent(self, torrent_ids): diff --git a/deluge/plugins/Blocklist/deluge/plugins/blocklist/core.py b/deluge/plugins/Blocklist/deluge/plugins/blocklist/core.py index c388cf65c..77d5e8682 100644 --- a/deluge/plugins/Blocklist/deluge/plugins/blocklist/core.py +++ b/deluge/plugins/Blocklist/deluge/plugins/blocklist/core.py @@ -501,13 +501,10 @@ class Core(CorePluginBase): self.reader = create_reader(self.config["list_type"], self.config["list_compression"]) def pause_session(self): - if not self.core.session.is_paused(): - self.core.session.pause() - self.need_to_resume_session = True - else: - self.need_to_resume_session = False + self.need_to_resume_session = not self.core.session.is_paused() + self.core.pause_session() def resume_session(self, result): - self.core.session.resume() + self.core.resume_session() self.need_to_resume_session = False return result diff --git a/deluge/plugins/Scheduler/deluge/plugins/scheduler/core.py b/deluge/plugins/Scheduler/deluge/plugins/scheduler/core.py index a4f82a883..356119a1c 100644 --- a/deluge/plugins/Scheduler/deluge/plugins/scheduler/core.py +++ b/deluge/plugins/Scheduler/deluge/plugins/scheduler/core.py @@ -154,10 +154,10 @@ class Core(CorePluginBase): settings["active_seeds"] = self.config["low_active_up"] session.set_settings(settings) # Resume the session if necessary - component.get("Core").session.resume() + component.get("Core").resume_session() elif state == "Red": # This is Red (Stop), so pause the libtorrent session - component.get("Core").session.pause() + component.get("Core").pause_session() if state != self.state: # The state has changed since last update so we need to emit an event diff --git a/deluge/plugins/Toggle/deluge/plugins/toggle/core.py b/deluge/plugins/Toggle/deluge/plugins/toggle/core.py index 8281a7cb3..c77fad487 100644 --- a/deluge/plugins/Toggle/deluge/plugins/toggle/core.py +++ b/deluge/plugins/Toggle/deluge/plugins/toggle/core.py @@ -65,9 +65,9 @@ class Core(CorePluginBase): @export def toggle(self): if self.core.session.is_paused(): - self.core.session.resume() + self.core.resume_session() paused = False else: - self.core.session.pause() + self.core.pause_session() paused = True return paused diff --git a/deluge/ui/console/commands/pause.py b/deluge/ui/console/commands/pause.py index 351027897..47f39a5a0 100644 --- a/deluge/ui/console/commands/pause.py +++ b/deluge/ui/console/commands/pause.py @@ -48,7 +48,7 @@ class Command(BaseCommand): self.console.write(self.usage) return if len(args) > 0 and args[0].lower() == '*': - client.core.pause_all_torrents() + client.core.pause_session() return torrent_ids = [] diff --git a/deluge/ui/console/commands/resume.py b/deluge/ui/console/commands/resume.py index 70cd6cbe8..da9036240 100644 --- a/deluge/ui/console/commands/resume.py +++ b/deluge/ui/console/commands/resume.py @@ -49,7 +49,7 @@ class Command(BaseCommand): self.console.write(self.usage) return if len(args) > 0 and args[0] == '*': - client.core.resume_all_torrents() + client.core.resume_session() return torrent_ids = [] diff --git a/deluge/ui/gtkui/glade/tray_menu.ui b/deluge/ui/gtkui/glade/tray_menu.ui index f100b7215..a2bdbc02e 100644 --- a/deluge/ui/gtkui/glade/tray_menu.ui +++ b/deluge/ui/gtkui/glade/tray_menu.ui @@ -70,27 +70,27 @@ - - _Pause All + + _Pause Session True False False True menu-item-image6 False - + - - _Resume All + + _Resume Session True False False True menu-item-image7 False - + diff --git a/deluge/ui/gtkui/systemtray.py b/deluge/ui/gtkui/systemtray.py index 25865dbe1..e98740a02 100644 --- a/deluge/ui/gtkui/systemtray.py +++ b/deluge/ui/gtkui/systemtray.py @@ -60,8 +60,8 @@ class SystemTray(component.Component): # List of widgets that need to be hidden when not connected to a host self.hide_widget_list = [ "menuitem_add_torrent", - "menuitem_pause_all", - "menuitem_resume_all", + "menuitem_pause_session", + "menuitem_resume_session", "menuitem_download_limit", "menuitem_upload_limit", "menuitem_quitdaemon", @@ -95,8 +95,8 @@ class SystemTray(component.Component): self.builder.connect_signals({ "on_menuitem_show_deluge_activate": self.on_menuitem_show_deluge_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_resume_all_activate": self.on_menuitem_resume_all_activate, + "on_menuitem_pause_session_activate": self.on_menuitem_pause_session_activate, + "on_menuitem_resume_session_activate": self.on_menuitem_resume_session_activate, "on_menuitem_quit_activate": self.on_menuitem_quit_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") component.get("AddTorrentDialog").show() - def on_menuitem_pause_all_activate(self, menuitem): - log.debug("on_menuitem_pause_all_activate") - client.core.pause_all_torrents() + def on_menuitem_pause_session_activate(self, menuitem): + log.debug("on_menuitem_pause_session_activate") + client.core.pause_session() - def on_menuitem_resume_all_activate(self, menuitem): - log.debug("on_menuitem_resume_all_activate") - client.core.resume_all_torrents() + def on_menuitem_resume_session_activate(self, menuitem): + log.debug("on_menuitem_resume_session_activate") + client.core.resume_session() def on_menuitem_quit_activate(self, menuitem): log.debug("on_menuitem_quit_activate")