Unify the PEP drawing methods in the RosterWindow.

This commit is contained in:
Stephan Erb 2009-11-15 17:00:39 +01:00
parent 30191888ba
commit b7c7beafd9
1 changed files with 12 additions and 34 deletions

View File

@ -1276,53 +1276,31 @@ class RosterWindow:
return False return False
def draw_mood(self, jid, account): def draw_mood(self, jid, account):
iters = self._get_contact_iter(jid, account, model=self.model) if gajim.config.get('show_mood_in_roster'):
if not iters or not gajim.config.get('show_mood_in_roster'): self._draw_pep(jid, account, 'tune', C_MOOD_PIXBUF)
return
jid = self.model[iters[0]][C_JID].decode('utf-8')
contact = gajim.contacts.get_contact(account, jid)
if 'mood' in contact.pep:
pixbuf = contact.pep['mood'].asPixbufIcon()
else:
pixbuf = None
for child_iter in iters:
self.model[child_iter][C_MOOD_PIXBUF] = pixbuf
return False
def draw_activity(self, jid, account): def draw_activity(self, jid, account):
iters = self._get_contact_iter(jid, account, model=self.model) if gajim.config.get('show_activity_in_roster'):
if not iters or not gajim.config.get('show_activity_in_roster'): self._draw_pep(jid, account, 'tune', C_ACTIVITY_PIXBUF)
return
jid = self.model[iters[0]][C_JID]
jid = jid.decode('utf-8')
contact = gajim.contacts.get_contact(account, jid)
if 'activity' in contact.pep:
pixbuf = contact.pep['activity'].asPixbufIcon()
else:
pixbuf = None
for child_iter in iters:
self.model[child_iter][C_ACTIVITY_PIXBUF] = pixbuf
return False
def draw_tune(self, jid, account): def draw_tune(self, jid, account):
if gajim.config.get('show_tunes_in_roster'):
self._draw_pep(jid, account, 'tune', C_TUNE_PIXBUF)
def _draw_pep(self, jid, account, pep_type, model_column):
iters = self._get_contact_iter(jid, account, model=self.model) iters = self._get_contact_iter(jid, account, model=self.model)
if not iters or not gajim.config.get('show_tunes_in_roster'): if not iters:
return return
jid = self.model[iters[0]][C_JID] jid = self.model[iters[0]][C_JID]
jid = jid.decode('utf-8') jid = jid.decode('utf-8')
contact = gajim.contacts.get_contact(account, jid) contact = gajim.contacts.get_contact(account, jid)
if 'tune' in contact.pep: if pep_type in contact.pep:
pixbuf = contact.pep['tune'].asPixbufIcon() pixbuf = contact.pep[pep_type].asPixbufIcon()
else: else:
pixbuf = None pixbuf = None
for child_iter in iters: for child_iter in iters:
self.model[child_iter][C_TUNE_PIXBUF] = pixbuf self.model[child_iter][model_column] = pixbuf
return False
def draw_avatar(self, jid, account): def draw_avatar(self, jid, account):
iters = self._get_contact_iter(jid, account, model=self.model) iters = self._get_contact_iter(jid, account, model=self.model)