fix restoring expanded / collapsed metacontacts when we finish using roster filter. Fixes #7060
This commit is contained in:
parent
dd779dfe90
commit
34c95bbb9b
|
@ -1451,10 +1451,27 @@ class RosterWindow:
|
||||||
self.tree.set_cursor(path)
|
self.tree.set_cursor(path)
|
||||||
|
|
||||||
def _readjust_expand_collapse_state(self):
|
def _readjust_expand_collapse_state(self):
|
||||||
for account in gajim.connections:
|
def func(model, path, iter_):
|
||||||
self._adjust_account_expand_collapse_state(account)
|
type_ = model[iter_][C_TYPE]
|
||||||
for group in gajim.groups[account]:
|
acct = model[iter_][C_ACCOUNT].decode('utf-8')
|
||||||
self._adjust_group_expand_collapse_state(group, account)
|
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):
|
def _adjust_account_expand_collapse_state(self, account):
|
||||||
"""
|
"""
|
||||||
|
@ -4123,7 +4140,10 @@ class RosterWindow:
|
||||||
jid = model[titer][C_JID].decode('utf-8')
|
jid = model[titer][C_JID].decode('utf-8')
|
||||||
account = model[titer][C_ACCOUNT].decode('utf-8')
|
account = model[titer][C_ACCOUNT].decode('utf-8')
|
||||||
contact = gajim.contacts.get_contact(account, jid)
|
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:
|
if account + group + jid not in self.collapsed_rows:
|
||||||
self.collapsed_rows.append(account + group + jid)
|
self.collapsed_rows.append(account + group + jid)
|
||||||
family = gajim.contacts.get_metacontacts_family(account, jid)
|
family = gajim.contacts.get_metacontacts_family(account, jid)
|
||||||
|
|
Loading…
Reference in New Issue