From 467cd5c18f738b32bef9426969ca87c2a6c4cbeb Mon Sep 17 00:00:00 2001 From: Denis Fomin Date: Thu, 21 Oct 2010 11:58:56 +0400 Subject: [PATCH] clients_icons. fix metacontact. Changing the settings take effect without reconnect(roster icons.not in MUC) --- clients_icons/clients_icons.py | 29 +++++++++++++++++++++++++++-- clients_icons/icons/coccinella.png | Bin clients_icons/icons/juick.png | Bin clients_icons/icons/pyicq-t.png | Bin clients_icons/manifest.ini | 3 ++- 5 files changed, 29 insertions(+), 3 deletions(-) mode change 100755 => 100644 clients_icons/icons/coccinella.png mode change 100755 => 100644 clients_icons/icons/juick.png mode change 100755 => 100644 clients_icons/icons/pyicq-t.png diff --git a/clients_icons/clients_icons.py b/clients_icons/clients_icons.py index 625312b..dbef054 100644 --- a/clients_icons/clients_icons.py +++ b/clients_icons/clients_icons.py @@ -91,7 +91,10 @@ class ClientsIconsPlugin(GajimPlugin): (ged.POSTGUI, self.gc_presence_received),} self.gui_extension_points = { 'groupchat_control' : (self.connect_with_groupchat_control, - self.disconnect_from_groupchat_control)} + self.disconnect_from_groupchat_control), + 'roster_draw_contact' : (self.connect_with_roster_draw_contact, + self.disconnect_from_roster_draw_contact) + } self.config_default_values = { 'show_in_roster': (True,''), 'show_in_groupchats': (True,''), @@ -103,6 +106,22 @@ class ClientsIconsPlugin(GajimPlugin): self.default_pixbuf = gtk.gdk.pixbuf_new_from_file_at_size( icon_path, 16, 16) + @log_calls('ClientsIconsPlugin') + def connect_with_roster_draw_contact(self, roster, jid, account, contact): + if not self.active: + return + if not self.config['show_in_roster']: + return + child_iters = roster._get_contact_iter(jid, account, contact, + roster.model) + if not child_iters: + return + if roster.model[child_iters[0]][self.renderer_num] is None: + caps = contact.client_caps._node + if not caps and jid == 'juick@juick.com': + caps = 'http://juick.com/caps' + self.set_icon(roster.model, child_iters[0], self.renderer_num, caps) + @log_calls('ClientsIconsPlugin') def connect_with_groupchat_control(self, chat_control): chat_control.nb_ext_renderers += 1 @@ -138,6 +157,11 @@ class ClientsIconsPlugin(GajimPlugin): def disconnect_from_groupchat_control(self, chat_control): pass + @log_calls('ClientsIconsPlugin') + def disconnect_from_roster_draw_contact(self, roster, jid, account, + contact): + pass + @log_calls('ClientsIconsPlugin') def activate(self): roster = gajim.interface.roster @@ -280,7 +304,8 @@ class ClientsIconsPluginConfigDialog(GajimPluginConfigDialog): self.combo.set_active(self.plugin.config['pos_in_list']) def on_hide(self, widget): - pass + self.plugin.deactivate() + self.plugin.activate() def on_run(self): self.xml.get_object('show_in_roster').set_active( diff --git a/clients_icons/icons/coccinella.png b/clients_icons/icons/coccinella.png old mode 100755 new mode 100644 diff --git a/clients_icons/icons/juick.png b/clients_icons/icons/juick.png old mode 100755 new mode 100644 diff --git a/clients_icons/icons/pyicq-t.png b/clients_icons/icons/pyicq-t.png old mode 100755 new mode 100644 diff --git a/clients_icons/manifest.ini b/clients_icons/manifest.ini index 9eb86f5..cab3541 100644 --- a/clients_icons/manifest.ini +++ b/clients_icons/manifest.ini @@ -1,8 +1,9 @@ [info] name: Clients icons short_name: clients_icons -version: 0.3 +version: 0.4 description: Shows the client icons in the roster and in groupchats. + Depends: Gajim > r12506 authors = Denis Fomin homepage = http://trac-plugins.gajim.org/wiki/ClientsIcons