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
parent d0718df82b
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
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):

View File

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

View File

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

View File

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

View File

@ -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 = []

View File

@ -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 = []

View File

@ -70,27 +70,27 @@
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="menuitem_pause_all">
<property name="label" translatable="yes">_Pause All</property>
<object class="GtkImageMenuItem" id="menuitem_pause_session">
<property name="label" translatable="yes">_Pause Session</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="image">menu-item-image6</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>
</child>
<child>
<object class="GtkImageMenuItem" id="menuitem_resume_all">
<property name="label" translatable="yes">_Resume All</property>
<object class="GtkImageMenuItem" id="menuitem_resume_session">
<property name="label" translatable="yes">_Resume Session</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="image">menu-item-image7</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>
</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
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")