changeset 1d057f97712c in /home/hg/repos/gajim
details:http://hg.gajim.org/gajim?cmd=changeset;node=1d057f97712c
description: fix restoring expanded / collapsed metacontacts when we finish
using roster filter. Fixes #7060
diffstat:
src/roster_window.py | 30 +++++++++++++++++++++++++-----
1 files changed, 25 insertions(+), 5 deletions(-)
diffs (47 lines):
diff -r 640494bb6414 -r 1d057f97712c src/roster_window.py
--- a/src/roster_window.py Thu Jan 12 21:44:53 2012 +0100
+++ b/src/roster_window.py Mon Jan 16 21:11:16 2012 +0100
@@ -1451,10 +1451,27 @@
self.tree.set_cursor(path)
def _readjust_expand_collapse_state(self):
- for account in gajim.connections:
- self._adjust_account_expand_collapse_state(account)
- for group in gajim.groups[account]:
- self._adjust_group_expand_collapse_state(group, account)
+ def func(model, path, iter_):
+ type_ = model[iter_][C_TYPE]
+ acct = model[iter_][C_ACCOUNT].decode('utf-8')
+ jid = model[iter_][C_JID].decode('utf-8')
+ key = None
+ if type_ == 'account':
+ key = acct
+ elif type_ == 'group':
+ key = acct + jid
+ elif type_ == 'contact':
+ parent_iter = model.iter_parent(iter_)
+ ptype = model[parent_iter][C_TYPE]
+ if ptype == 'group':
+ grp = model[parent_iter][C_JID].decode('utf-8')
+ key = acct + grp + jid
+ if key:
+ if key in self.collapsed_rows:
+ self.tree.collapse_row(path)
+ else:
+ self.tree.expand_row(path, False)
+ self.modelfilter.foreach(func)
def _adjust_account_expand_collapse_state(self, account):
"""
@@ -4123,7 +4140,10 @@
jid = model[titer][C_JID].decode('utf-8')
account = model[titer][C_ACCOUNT].decode('utf-8')
contact = gajim.contacts.get_contact(account, jid)
- for group in contact.groups:
+ groups = contact.groups
+ if not groups:
+ groups = [_('General')]
+ for group in groups:
if account + group + jid not in self.collapsed_rows:
self.collapsed_rows.append(account + group + jid)
family = gajim.contacts.get_metacontacts_family(account, jid)
_______________________________________________
Commits mailing list
[email protected]
http://lists.gajim.org/cgi-bin/listinfo/commits