correctly redraw the contacts wgen they change their status
This commit is contained in:
parent
1254d61ca9
commit
b78a30bfbb
1 changed files with 10 additions and 15 deletions
|
@ -353,15 +353,14 @@ class Roster_window:
|
||||||
"""When a user change his status"""
|
"""When a user change his status"""
|
||||||
showOffline = self.plugin.config['showoffline']
|
showOffline = self.plugin.config['showoffline']
|
||||||
model = self.tree.get_model()
|
model = self.tree.get_model()
|
||||||
|
luser = self.contacts[account][user.jid]
|
||||||
|
user.show = show
|
||||||
|
user.status = status
|
||||||
if (show == 'offline' or show == 'error') and \
|
if (show == 'offline' or show == 'error') and \
|
||||||
not self.plugin.queues[account].has_key(user.jid):
|
not self.plugin.queues[account].has_key(user.jid):
|
||||||
if len(self.contacts[account][user.jid]) > 1:
|
if len(luser) > 1:
|
||||||
luser = self.contacts[account][user.jid]
|
luser.remove(user)
|
||||||
for u in luser:
|
self.redraw_jid(user.jid, account)
|
||||||
if u.resource == user.resource:
|
|
||||||
luser.remove(u)
|
|
||||||
self.redraw_jid(user.jid, account)
|
|
||||||
break
|
|
||||||
elif not showOffline:
|
elif not showOffline:
|
||||||
self.remove_user(user, account)
|
self.remove_user(user, account)
|
||||||
iters = []
|
iters = []
|
||||||
|
@ -371,18 +370,11 @@ class Roster_window:
|
||||||
if not self.get_user_iter(user.jid, account):
|
if not self.get_user_iter(user.jid, account):
|
||||||
self.add_user_to_roster(user.jid, account)
|
self.add_user_to_roster(user.jid, account)
|
||||||
self.redraw_jid(user.jid, account)
|
self.redraw_jid(user.jid, account)
|
||||||
users = self.contacts[account][user.jid]
|
|
||||||
for u in users:
|
|
||||||
if u.resource == user.resource:
|
|
||||||
u.show = show
|
|
||||||
u.status = status
|
|
||||||
u.keyID = user.keyID
|
|
||||||
break
|
|
||||||
#Print status in chat window
|
#Print status in chat window
|
||||||
if self.plugin.windows[account]['chats'].has_key(user.jid):
|
if self.plugin.windows[account]['chats'].has_key(user.jid):
|
||||||
prio = 0
|
prio = 0
|
||||||
sho = users[0].show
|
sho = users[0].show
|
||||||
for u in users:
|
for u in luser:
|
||||||
if u.priority > prio:
|
if u.priority > prio:
|
||||||
prio = u.priority
|
prio = u.priority
|
||||||
sho = u.show
|
sho = u.show
|
||||||
|
@ -822,7 +814,10 @@ class Roster_window:
|
||||||
if status == 'offline':
|
if status == 'offline':
|
||||||
for jid in self.contacts[account]:
|
for jid in self.contacts[account]:
|
||||||
luser = self.contacts[account][jid]
|
luser = self.contacts[account][jid]
|
||||||
|
luser_copy = []
|
||||||
for user in luser:
|
for user in luser:
|
||||||
|
luser_copy.append(user)
|
||||||
|
for user in luser_copy:
|
||||||
self.chg_user_status(user, 'offline', 'Disconnected', account)
|
self.chg_user_status(user, 'offline', 'Disconnected', account)
|
||||||
self.plugin.connected[account] = statuss.index(status)
|
self.plugin.connected[account] = statuss.index(status)
|
||||||
self.set_cb()
|
self.set_cb()
|
||||||
|
|
Loading…
Add table
Reference in a new issue