fix traceback when browsing rooms from join groupchat dialog. Fixes #6059

This commit is contained in:
Yann Leboulanger 2010-12-01 09:12:27 +01:00
parent 5e929d104b
commit 1bbd486575
1 changed files with 7 additions and 5 deletions

View File

@ -410,17 +410,20 @@ class ServicesCache:
# We receive events from all accounts from GED # We receive events from all accounts from GED
if obj.conn.name != self.account: if obj.conn.name != self.account:
return return
self._on_agent_info(obj.fjid, obj.node, obj.identities, obj.features,
obj.data)
addr = get_agent_address(obj.fjid, obj.node) def _on_agent_info(self, fjid, node, identities, features, data):
addr = get_agent_address(fjid, node)
# Store in cache # Store in cache
self._info[addr] = (obj.identities, obj.features, obj.data) self._info[addr] = (identities, features, data)
# Call callbacks # Call callbacks
cbkey = ('info', addr) cbkey = ('info', addr)
if cbkey in self._cbs: if cbkey in self._cbs:
for cb in self._cbs[cbkey]: for cb in self._cbs[cbkey]:
cb(obj.fjid, obj.node, obj.identities, obj.features, obj.data) cb(fjid, node, identities, features, data)
# clean_closure may have beaten us to it # clean_closure may have beaten us to it
if cbkey in self._cbs: if cbkey in self._cbs:
del self._cbs[cbkey] del self._cbs[cbkey]
@ -521,8 +524,7 @@ _('Without a connection, you can not browse available services'))
gajim.connections[account].services_cache = self.cache gajim.connections[account].services_cache = self.cache
if initial_identities: if initial_identities:
self.cache.agent_info(account, (jid, node, initial_identities, [], self.cache._on_agent_info(jid, node, initial_identities, [], None)
None))
self.xml = gtkgui_helpers.get_gtk_builder('service_discovery_window.ui') self.xml = gtkgui_helpers.get_gtk_builder('service_discovery_window.ui')
self.window = self.xml.get_object('service_discovery_window') self.window = self.xml.get_object('service_discovery_window')
self.services_treeview = self.xml.get_object('services_treeview') self.services_treeview = self.xml.get_object('services_treeview')