disable and redraw pm when we leave a groupchat or when we are disconnected. fixes #2935
This commit is contained in:
parent
852974efa7
commit
bbab7a3d94
1 changed files with 19 additions and 0 deletions
|
@ -735,8 +735,16 @@ class GroupchatControl(ChatControlBase):
|
||||||
self.list_treeview.get_model().clear()
|
self.list_treeview.get_model().clear()
|
||||||
nick_list = gajim.contacts.get_nick_list(self.account, self.room_jid)
|
nick_list = gajim.contacts.get_nick_list(self.account, self.room_jid)
|
||||||
for nick in nick_list:
|
for nick in nick_list:
|
||||||
|
# Update pm chat window
|
||||||
|
fjid = self.room_jid + '/' + nick
|
||||||
|
ctrl = gajim.interface.msg_win_mgr.get_control(fjid, self.account)
|
||||||
gc_contact = gajim.contacts.get_gc_contact(self.account, self.room_jid,
|
gc_contact = gajim.contacts.get_gc_contact(self.account, self.room_jid,
|
||||||
nick)
|
nick)
|
||||||
|
if ctrl:
|
||||||
|
gc_contact.show = 'offline'
|
||||||
|
gc_contact.status = ''
|
||||||
|
ctrl.update_ui()
|
||||||
|
ctrl.parent_win.redraw_tab(ctrl)
|
||||||
gajim.contacts.remove_gc_contact(self.account, gc_contact)
|
gajim.contacts.remove_gc_contact(self.account, gc_contact)
|
||||||
gajim.gc_connected[self.account][self.room_jid] = False
|
gajim.gc_connected[self.account][self.room_jid] = False
|
||||||
ChatControlBase.got_disconnected(self)
|
ChatControlBase.got_disconnected(self)
|
||||||
|
@ -1327,6 +1335,17 @@ class GroupchatControl(ChatControlBase):
|
||||||
def shutdown(self, status='offline'):
|
def shutdown(self, status='offline'):
|
||||||
gajim.connections[self.account].send_gc_status(self.nick, self.room_jid,
|
gajim.connections[self.account].send_gc_status(self.nick, self.room_jid,
|
||||||
show='offline', status=status)
|
show='offline', status=status)
|
||||||
|
nick_list = gajim.contacts.get_nick_list(self.account, self.room_jid)
|
||||||
|
for nick in nick_list:
|
||||||
|
# Update pm chat window
|
||||||
|
fjid = self.room_jid + '/' + nick
|
||||||
|
ctrl = gajim.interface.msg_win_mgr.get_control(fjid, self.account)
|
||||||
|
if ctrl:
|
||||||
|
contact = gajim.contacts.get_gc_contact(self.account, self.room_jid, nick)
|
||||||
|
contact.show = 'offline'
|
||||||
|
contact.status = ''
|
||||||
|
ctrl.update_ui()
|
||||||
|
ctrl.parent_win.redraw_tab(ctrl)
|
||||||
# They can already be removed by the destroy function
|
# They can already be removed by the destroy function
|
||||||
if self.room_jid in gajim.contacts.get_gc_list(self.account):
|
if self.room_jid in gajim.contacts.get_gc_list(self.account):
|
||||||
gajim.contacts.remove_room(self.account, self.room_jid)
|
gajim.contacts.remove_room(self.account, self.room_jid)
|
||||||
|
|
Loading…
Add table
Reference in a new issue