Fix #1302 an uncaught exception in an state_changed event handler in SessionProxy was preventing the
TorrentManager's stop method from properly saving all the resume data.
This commit is contained in:
parent
d5881142aa
commit
de79bba540
|
@ -252,12 +252,6 @@ class GtkUI(object):
|
||||||
# Shutdown all components
|
# Shutdown all components
|
||||||
component.shutdown()
|
component.shutdown()
|
||||||
|
|
||||||
if self.started_in_classic:
|
|
||||||
try:
|
|
||||||
client.daemon.shutdown()
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# Make sure the config is saved.
|
# Make sure the config is saved.
|
||||||
self.config.save()
|
self.config.save()
|
||||||
|
|
||||||
|
|
|
@ -260,8 +260,6 @@ class MenuBar(component.Component):
|
||||||
|
|
||||||
def on_menuitem_quit_activate(self, data=None):
|
def on_menuitem_quit_activate(self, data=None):
|
||||||
log.debug("on_menuitem_quit_activate")
|
log.debug("on_menuitem_quit_activate")
|
||||||
if self.config["classic_mode"] and client.is_classicmode():
|
|
||||||
client.daemon.shutdown()
|
|
||||||
self.window.quit()
|
self.window.quit()
|
||||||
|
|
||||||
## Edit Menu ##
|
## Edit Menu ##
|
||||||
|
|
|
@ -76,6 +76,9 @@ class SessionProxy(component.Component):
|
||||||
return client.core.get_torrents_status({}, [], True).addCallback(on_torrent_status)
|
return client.core.get_torrents_status({}, [], True).addCallback(on_torrent_status)
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
|
client.deregister_event_handler("TorrentStateChangedEvent", self.on_torrent_state_changed)
|
||||||
|
client.deregister_event_handler("TorrentRemovedEvent", self.on_torrent_removed)
|
||||||
|
client.deregister_event_handler("TorrentAddedEvent", self.on_torrent_added)
|
||||||
self.torrents = {}
|
self.torrents = {}
|
||||||
|
|
||||||
def create_status_dict(self, torrent_ids, keys):
|
def create_status_dict(self, torrent_ids, keys):
|
||||||
|
@ -197,7 +200,8 @@ class SessionProxy(component.Component):
|
||||||
return d.addCallback(on_status, None, keys)
|
return d.addCallback(on_status, None, keys)
|
||||||
|
|
||||||
def on_torrent_state_changed(self, torrent_id, state):
|
def on_torrent_state_changed(self, torrent_id, state):
|
||||||
self.torrents[torrent_id][1]["state"] = state
|
if torrent_id in self.torrents:
|
||||||
|
self.torrents[torrent_id][1]["state"] = state
|
||||||
|
|
||||||
def on_torrent_added(self, torrent_id):
|
def on_torrent_added(self, torrent_id):
|
||||||
self.torrents[torrent_id] = [time.time() - self.cache_time - 1, {}]
|
self.torrents[torrent_id] = [time.time() - self.cache_time - 1, {}]
|
||||||
|
|
Loading…
Reference in New Issue