AGENT_INFO_INFO now send the node

This commit is contained in:
Yann Leboulanger 2005-04-24 15:47:08 +00:00
parent b77173fc1b
commit 544bbb1206
3 changed files with 27 additions and 31 deletions

View File

@ -371,7 +371,7 @@ class Connection:
if not identities:
self.connection.browseAgents(jid, node)
else:
self.dispatch('AGENT_INFO_INFO', (jid, identities, features))
self.dispatch('AGENT_INFO_INFO', (jid, node, identities, features))
self.connection.discoverItems(jid, node)
def _VersionCB(self, con, iq_obj):

View File

@ -1628,9 +1628,29 @@ class Service_discovery_window:
self.browse(child_jid, child_node)
child = model.iter_next(child)
def agent_info_info(self, agent, identities, features):
def agent_info_info(self, agent, node, identities, features):
'''When we recieve informations about an agent, but not its items'''
self.agent_info(agent, identities, features, [])
model = self.services_treeview.get_model()
iter = model.get_iter_root()
# We look if this agent is in the treeview
while (iter):
if agent == model.get_value(iter, 1) and node == model.get_value(
iter, 2):
break
if model.iter_has_child(iter):
iter = model.iter_children(iter)
else:
if not model.iter_next(iter):
iter = model.iter_parent(iter)
if iter:
iter = model.iter_next(iter)
if not iter: #If it is not we stop
return
self.agent_infos[agent + node]['features'] = features
if len(identities):
self.agent_infos[agent + node]['identities'] = identities
if identities[0].has_key('name'):
model.set_value(iter, 0, identities[0]['name'])
def agent_info_items(self, agent, node, items):
'''When we recieve items about an agent'''
@ -1677,32 +1697,8 @@ class Service_discovery_window:
def agent_info(self, agent, identities, features, items):
'''When we recieve informations about an agent'''
model = self.services_treeview.get_model()
iter = model.get_iter_root()
node = ''
if len(identities):
if identities[0].has_key('node'):
node = identities[0]['node']
# We look if this agent is in the treeview
while (iter):
if agent == model.get_value(iter, 1) and node == model.get_value(
iter, 2):
break
if model.iter_has_child(iter):
iter = model.iter_children(iter)
else:
if not model.iter_next(iter):
iter = model.iter_parent(iter)
if iter:
iter = model.iter_next(iter)
if not iter: #If it is not we stop
return
self.agent_infos[agent + node]['features'] = features
if len(identities):
self.agent_infos[agent + node]['identities'] = identities
if identities[0].has_key('name'):
model.set_value(iter, 0, identities[0]['name'])
self.agent_info_items(agent, node, items)
self.agent_info_info(agent, '', identities, features)
self.agent_info_items(agent, '', items)
def on_refresh_button_clicked(self, widget):
'''When refresh button is clicked: refresh list: clear and rerequest it'''

View File

@ -356,10 +356,10 @@ class Interface:
array[2])
def handle_event_agent_info_info(self, account, array):
#('AGENT_INFO_INFO', account, (agent, identities, features))
#('AGENT_INFO_INFO', account, (agent, node, identities, features))
if self.windows[account].has_key('disco'):
self.windows[account]['disco'].agent_info_info(array[0], array[1], \
array[2])
array[2], array[3])
def handle_event_acc_ok(self, account, array):
#('ACC_OK', account, (hostname, login, pasword, name, resource, prio,