# -*- coding: utf-8 -*- import gtk import pango import gobject from common import gajim, ged, helpers, pep from plugins import GajimPlugin from plugins.helpers import log_calls from plugins.gui import GajimPluginConfigDialog from dialogs import ChangeActivityDialog, ChangeMoodDialog import gtkgui_helpers class RosterTweaksPlugin(GajimPlugin): @log_calls('RosterTweaksPlugin') def init(self): self.description = _('Allows user to tweak roster window appearance ' '(eg. make it compact).\nBased on ticket #3340:\n' 'http://trac.gajim.org/ticket/3340.\n' 'Added ability to quickly change the status message ' 'to all connected accounts.\n' 'Based on ticket #5085:\n' 'http://trac.gajim.org/ticket/5085.') self.config_default_values = {'hide_status_combo': (False, ''), 'use_ctr_m': (False, ''), 'menu_visible': (True, ''), 'quick_status': (False, ''), 'contact_status_subs': (False, ''),} self.events_handlers = {'our-show': (ged.GUI2, self.our_show), 'pep-received': (ged.GUI2, self.pep_received)} self.gui_extension_points = { 'roster_draw_contact': (self.roster_draw_contact, self.disconnect_roster_draw_contact),} self.roster = gajim.interface.roster self.config_dialog = RosterTweaksPluginConfigDialog(self) def roster_draw_contact(self, roster,jid, account, contact): self.connected = True if not self.active: return if not self.config['contact_status_subs']: return child_iters = roster._get_contact_iter(jid, account, contact, roster.model) if not child_iters: return name = roster.model[child_iters[0]][1] if '\n