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