Unify PEP cell_data_functions.
This commit is contained in:
parent
b7c7beafd9
commit
3b15d70782
|
@ -1278,11 +1278,11 @@ class RosterWindow:
|
||||||
|
|
||||||
def draw_mood(self, jid, account):
|
def draw_mood(self, jid, account):
|
||||||
if gajim.config.get('show_mood_in_roster'):
|
if gajim.config.get('show_mood_in_roster'):
|
||||||
self._draw_pep(jid, account, 'tune', C_MOOD_PIXBUF)
|
self._draw_pep(jid, account, 'mood', C_MOOD_PIXBUF)
|
||||||
|
|
||||||
def draw_activity(self, jid, account):
|
def draw_activity(self, jid, account):
|
||||||
if gajim.config.get('show_activity_in_roster'):
|
if gajim.config.get('show_activity_in_roster'):
|
||||||
self._draw_pep(jid, account, 'tune', C_ACTIVITY_PIXBUF)
|
self._draw_pep(jid, account, 'activity', C_ACTIVITY_PIXBUF)
|
||||||
|
|
||||||
def draw_tune(self, jid, account):
|
def draw_tune(self, jid, account):
|
||||||
if gajim.config.get('show_tunes_in_roster'):
|
if gajim.config.get('show_tunes_in_roster'):
|
||||||
|
@ -4441,9 +4441,9 @@ class RosterWindow:
|
||||||
renderer.set_property('xpad', 8)
|
renderer.set_property('xpad', 8)
|
||||||
|
|
||||||
|
|
||||||
def _fill_mood_pixbuf_renderer(self, column, renderer, model, titer,
|
def _fill_pep_pixbuf_renderer(self, column, renderer, model, titer,
|
||||||
data=None):
|
data=None):
|
||||||
'''When a row is added, set properties for avatar renderer'''
|
'''When a row is added, draw the respective pep icon'''
|
||||||
theme = gajim.config.get('roster_theme')
|
theme = gajim.config.get('roster_theme')
|
||||||
type_ = model[titer][C_TYPE]
|
type_ = model[titer][C_TYPE]
|
||||||
if type_ == 'group':
|
if type_ == 'group':
|
||||||
|
@ -4451,155 +4451,37 @@ class RosterWindow:
|
||||||
return
|
return
|
||||||
|
|
||||||
# allocate space for the icon only if needed
|
# allocate space for the icon only if needed
|
||||||
if model[titer][C_MOOD_PIXBUF]:
|
if model[titer][data]:
|
||||||
renderer.set_property('visible', True)
|
renderer.set_property('visible', True)
|
||||||
else:
|
else:
|
||||||
renderer.set_property('visible', False)
|
renderer.set_property('visible', False)
|
||||||
if type_ == 'account':
|
if type_ == 'account':
|
||||||
color = gajim.config.get_per('themes', theme,
|
color = gajim.config.get_per('themes', theme, 'accountbgcolor')
|
||||||
'accountbgcolor')
|
|
||||||
if color:
|
if color:
|
||||||
renderer.set_property('cell-background', color)
|
renderer.set_property('cell-background', color)
|
||||||
else:
|
else:
|
||||||
self.set_renderer_color(renderer,
|
self.set_renderer_color(renderer, gtk.STATE_ACTIVE)
|
||||||
gtk.STATE_ACTIVE)
|
|
||||||
# align pixbuf to the right)
|
# align pixbuf to the right)
|
||||||
renderer.set_property('xalign', 1)
|
renderer.set_property('xalign', 1)
|
||||||
# prevent type_ = None, see http://trac.gajim.org/ticket/2534
|
# prevent type_ = None, see http://trac.gajim.org/ticket/2534
|
||||||
elif type_:
|
elif type_:
|
||||||
if not model[titer][C_JID] \
|
if not model[titer][C_JID] or not model[titer][C_ACCOUNT]:
|
||||||
or not model[titer][C_ACCOUNT]:
|
|
||||||
# This can append at the moment we add the row
|
# This can append at the moment we add the row
|
||||||
return
|
return
|
||||||
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')
|
||||||
if jid in gajim.newly_added[account]:
|
if jid in gajim.newly_added[account]:
|
||||||
renderer.set_property('cell-background',
|
renderer.set_property('cell-background', gajim.config.get(
|
||||||
gajim.config.get(
|
|
||||||
'just_connected_bg_color'))
|
'just_connected_bg_color'))
|
||||||
elif jid in gajim.to_be_removed[account]:
|
elif jid in gajim.to_be_removed[account]:
|
||||||
renderer.set_property('cell-background',
|
renderer.set_property('cell-background', gajim.config.get(
|
||||||
gajim.config.get(
|
|
||||||
'just_disconnected_bg_color'))
|
'just_disconnected_bg_color'))
|
||||||
else:
|
else:
|
||||||
color = gajim.config.get_per('themes',
|
color = gajim.config.get_per('themes', theme, 'contactbgcolor')
|
||||||
theme, 'contactbgcolor')
|
renderer.set_property('cell-background', color if color else None)
|
||||||
if color:
|
|
||||||
renderer.set_property(
|
|
||||||
'cell-background', color)
|
|
||||||
else:
|
|
||||||
renderer.set_property(
|
|
||||||
'cell-background', None)
|
|
||||||
# align pixbuf to the right
|
# align pixbuf to the right
|
||||||
renderer.set_property('xalign', 1)
|
renderer.set_property('xalign', 1)
|
||||||
|
|
||||||
|
|
||||||
def _fill_activity_pixbuf_renderer(self, column, renderer, model, titer,
|
|
||||||
data = None):
|
|
||||||
'''When a row is added, set properties for avatar renderer'''
|
|
||||||
theme = gajim.config.get('roster_theme')
|
|
||||||
type_ = model[titer][C_TYPE]
|
|
||||||
if type_ == 'group':
|
|
||||||
renderer.set_property('visible', False)
|
|
||||||
return
|
|
||||||
|
|
||||||
# allocate space for the icon only if needed
|
|
||||||
if model[titer][C_ACTIVITY_PIXBUF]:
|
|
||||||
renderer.set_property('visible', True)
|
|
||||||
else:
|
|
||||||
renderer.set_property('visible', False)
|
|
||||||
if type_ == 'account':
|
|
||||||
color = gajim.config.get_per('themes', theme,
|
|
||||||
'accountbgcolor')
|
|
||||||
if color:
|
|
||||||
renderer.set_property('cell-background', color)
|
|
||||||
else:
|
|
||||||
self.set_renderer_color(renderer,
|
|
||||||
gtk.STATE_ACTIVE)
|
|
||||||
# align pixbuf to the right)
|
|
||||||
renderer.set_property('xalign', 1)
|
|
||||||
# prevent type_ = None, see http://trac.gajim.org/ticket/2534
|
|
||||||
elif type_:
|
|
||||||
if not model[titer][C_JID] \
|
|
||||||
or not model[titer][C_ACCOUNT]:
|
|
||||||
# This can append at the moment we add the row
|
|
||||||
return
|
|
||||||
jid = model[titer][C_JID].decode('utf-8')
|
|
||||||
account = model[titer][C_ACCOUNT].decode('utf-8')
|
|
||||||
if jid in gajim.newly_added[account]:
|
|
||||||
renderer.set_property('cell-background',
|
|
||||||
gajim.config.get(
|
|
||||||
'just_connected_bg_color'))
|
|
||||||
elif jid in gajim.to_be_removed[account]:
|
|
||||||
renderer.set_property('cell-background',
|
|
||||||
gajim.config.get(
|
|
||||||
'just_disconnected_bg_color'))
|
|
||||||
else:
|
|
||||||
color = gajim.config.get_per('themes',
|
|
||||||
theme, 'contactbgcolor')
|
|
||||||
if color:
|
|
||||||
renderer.set_property(
|
|
||||||
'cell-background', color)
|
|
||||||
else:
|
|
||||||
renderer.set_property(
|
|
||||||
'cell-background', None)
|
|
||||||
# align pixbuf to the right
|
|
||||||
renderer.set_property('xalign', 1)
|
|
||||||
|
|
||||||
|
|
||||||
def _fill_tune_pixbuf_renderer(self, column, renderer, model, titer,
|
|
||||||
data = None):
|
|
||||||
'''When a row is added, set properties for avatar renderer'''
|
|
||||||
theme = gajim.config.get('roster_theme')
|
|
||||||
type_ = model[titer][C_TYPE]
|
|
||||||
if type_ == 'group':
|
|
||||||
renderer.set_property('visible', False)
|
|
||||||
return
|
|
||||||
|
|
||||||
# allocate space for the icon only if needed
|
|
||||||
if model[titer][C_TUNE_PIXBUF]:
|
|
||||||
renderer.set_property('visible', True)
|
|
||||||
else:
|
|
||||||
renderer.set_property('visible', False)
|
|
||||||
if type_ == 'account':
|
|
||||||
color = gajim.config.get_per('themes', theme,
|
|
||||||
'accountbgcolor')
|
|
||||||
if color:
|
|
||||||
renderer.set_property('cell-background', color)
|
|
||||||
else:
|
|
||||||
self.set_renderer_color(renderer,
|
|
||||||
gtk.STATE_ACTIVE)
|
|
||||||
# align pixbuf to the right)
|
|
||||||
renderer.set_property('xalign', 1)
|
|
||||||
# prevent type_ = None, see http://trac.gajim.org/ticket/2534
|
|
||||||
elif type_:
|
|
||||||
if not model[titer][C_JID] \
|
|
||||||
or not model[titer][C_ACCOUNT]:
|
|
||||||
# This can append at the moment we add the row
|
|
||||||
return
|
|
||||||
jid = model[titer][C_JID].decode('utf-8')
|
|
||||||
account = model[titer][C_ACCOUNT].decode('utf-8')
|
|
||||||
if jid in gajim.newly_added[account]:
|
|
||||||
renderer.set_property('cell-background',
|
|
||||||
gajim.config.get(
|
|
||||||
'just_connected_bg_color'))
|
|
||||||
elif jid in gajim.to_be_removed[account]:
|
|
||||||
renderer.set_property('cell-background',
|
|
||||||
gajim.config.get(
|
|
||||||
'just_disconnected_bg_color'))
|
|
||||||
else:
|
|
||||||
color = gajim.config.get_per('themes',
|
|
||||||
theme, 'contactbgcolor')
|
|
||||||
if color:
|
|
||||||
renderer.set_property(
|
|
||||||
'cell-background', color)
|
|
||||||
else:
|
|
||||||
renderer.set_property(
|
|
||||||
'cell-background', None)
|
|
||||||
# align pixbuf to the right
|
|
||||||
renderer.set_property('xalign', 1)
|
|
||||||
|
|
||||||
|
|
||||||
def _fill_avatar_pixbuf_renderer(self, column, renderer, model, titer,
|
def _fill_avatar_pixbuf_renderer(self, column, renderer, model, titer,
|
||||||
data = None):
|
data = None):
|
||||||
'''When a row is added, set properties for avatar renderer'''
|
'''When a row is added, set properties for avatar renderer'''
|
||||||
|
@ -5893,19 +5775,19 @@ class RosterWindow:
|
||||||
col.pack_start(render_pixbuf, expand=False)
|
col.pack_start(render_pixbuf, expand=False)
|
||||||
col.add_attribute(render_pixbuf, 'pixbuf', C_MOOD_PIXBUF)
|
col.add_attribute(render_pixbuf, 'pixbuf', C_MOOD_PIXBUF)
|
||||||
col.set_cell_data_func(render_pixbuf,
|
col.set_cell_data_func(render_pixbuf,
|
||||||
self._fill_mood_pixbuf_renderer, None)
|
self._fill_pep_pixbuf_renderer, C_MOOD_PIXBUF)
|
||||||
|
|
||||||
render_pixbuf = gtk.CellRendererPixbuf()
|
render_pixbuf = gtk.CellRendererPixbuf()
|
||||||
col.pack_start(render_pixbuf, expand=False)
|
col.pack_start(render_pixbuf, expand=False)
|
||||||
col.add_attribute(render_pixbuf, 'pixbuf', C_ACTIVITY_PIXBUF)
|
col.add_attribute(render_pixbuf, 'pixbuf', C_ACTIVITY_PIXBUF)
|
||||||
col.set_cell_data_func(render_pixbuf,
|
col.set_cell_data_func(render_pixbuf,
|
||||||
self._fill_activity_pixbuf_renderer, None)
|
self._fill_pep_pixbuf_renderer, C_ACTIVITY_PIXBUF)
|
||||||
|
|
||||||
render_pixbuf = gtk.CellRendererPixbuf()
|
render_pixbuf = gtk.CellRendererPixbuf()
|
||||||
col.pack_start(render_pixbuf, expand=False)
|
col.pack_start(render_pixbuf, expand=False)
|
||||||
col.add_attribute(render_pixbuf, 'pixbuf', C_TUNE_PIXBUF)
|
col.add_attribute(render_pixbuf, 'pixbuf', C_TUNE_PIXBUF)
|
||||||
col.set_cell_data_func(render_pixbuf,
|
col.set_cell_data_func(render_pixbuf,
|
||||||
self._fill_tune_pixbuf_renderer, None)
|
self._fill_pep_pixbuf_renderer, C_TUNE_PIXBUF)
|
||||||
|
|
||||||
if gajim.config.get('avatar_position_in_roster') == 'right':
|
if gajim.config.get('avatar_position_in_roster') == 'right':
|
||||||
add_avatar_renderer()
|
add_avatar_renderer()
|
||||||
|
|
Loading…
Reference in New Issue