# -*- coding: utf-8 -*- from gi.repository import Pango from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GObject from gajim.common import app, ged, helpers, pep from gajim.plugins import GajimPlugin from gajim.plugins.helpers import log_calls from gajim.plugins.gui import GajimPluginConfigDialog from gajim.dialogs import ChangeActivityDialog, ChangeMoodDialog from gajim 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 = app.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