# -*- coding: utf-8 -*- from gi.repository import Pango from gi.repository import Gtk from gi.repository import Gdk from gi.repository 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