Slightly faster version of get_contact_iter and get_role_iter.
This commit is contained in:
parent
a8e3dc771e
commit
65ba840cbd
|
@ -122,6 +122,7 @@ def tree_cell_data_func(column, renderer, model, iter_, tv=None):
|
|||
renderer.set_property('font',
|
||||
gtkgui_helpers.get_theme_font_for_option(theme, 'groupfont'))
|
||||
|
||||
|
||||
class PrivateChatControl(ChatControl):
|
||||
TYPE_ID = message_control.TYPE_PM
|
||||
|
||||
|
@ -829,24 +830,15 @@ class GroupchatControl(ChatControlBase):
|
|||
|
||||
def get_contact_iter(self, nick):
|
||||
model = self.list_treeview.get_model()
|
||||
fin = False
|
||||
role_iter = model.get_iter_root()
|
||||
if not role_iter:
|
||||
return None
|
||||
while not fin:
|
||||
fin2 = False
|
||||
while role_iter:
|
||||
user_iter = model.iter_children(role_iter)
|
||||
if not user_iter:
|
||||
fin2 = True
|
||||
while not fin2:
|
||||
while user_iter:
|
||||
if nick == model[user_iter][C_NICK].decode('utf-8'):
|
||||
return user_iter
|
||||
user_iter = model.iter_next(user_iter)
|
||||
if not user_iter:
|
||||
fin2 = True
|
||||
else:
|
||||
user_iter = model.iter_next(user_iter)
|
||||
role_iter = model.iter_next(role_iter)
|
||||
if not role_iter:
|
||||
fin = True
|
||||
return None
|
||||
|
||||
def print_old_conversation(self, text, contact='', tim=None, xhtml = None):
|
||||
|
@ -1528,17 +1520,12 @@ class GroupchatControl(ChatControlBase):
|
|||
|
||||
def get_role_iter(self, role):
|
||||
model = self.list_treeview.get_model()
|
||||
fin = False
|
||||
iter_ = model.get_iter_root()
|
||||
if not iter_:
|
||||
return None
|
||||
while not fin:
|
||||
role_name = model[iter_][C_NICK].decode('utf-8')
|
||||
role_iter = model.get_iter_root()
|
||||
while role_iter:
|
||||
role_name = model[role_iter][C_NICK].decode('utf-8')
|
||||
if role == role_name:
|
||||
return iter_
|
||||
iter_ = model.iter_next(iter_)
|
||||
if not iter_:
|
||||
fin = True
|
||||
return role_iter
|
||||
role_iter = model.iter_next(role_iter)
|
||||
return None
|
||||
|
||||
def remove_contact(self, nick):
|
||||
|
|
|
@ -312,7 +312,6 @@ class RosterWindow:
|
|||
self.tree.freeze_child_notify()
|
||||
for jid in jids:
|
||||
self.add_contact(jid, account)
|
||||
self.tree.thaw_child_notify()
|
||||
|
||||
# Do not freeze the GUI when drawing the contacts
|
||||
if jids:
|
||||
|
@ -323,6 +322,8 @@ class RosterWindow:
|
|||
for group in gajim.groups[account]:
|
||||
self.draw_group(group, account)
|
||||
self.draw_account(account)
|
||||
|
||||
self.tree.thaw_child_notify()
|
||||
self.starting = False
|
||||
|
||||
|
||||
|
@ -1291,8 +1292,7 @@ class RosterWindow:
|
|||
iters = self._get_contact_iter(jid, account, model=self.model)
|
||||
if not iters:
|
||||
return
|
||||
jid = self.model[iters[0]][C_JID]
|
||||
jid = jid.decode('utf-8')
|
||||
jid = self.model[iters[0]][C_JID].decode('utf-8')
|
||||
contact = gajim.contacts.get_contact(account, jid)
|
||||
if pep_type in contact.pep:
|
||||
pixbuf = contact.pep[pep_type].asPixbufIcon()
|
||||
|
|
Loading…
Reference in New Issue