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)