diff options
author | Denis Fomin <fominde@gmail.com> | 2012-08-22 23:52:13 +0400 |
---|---|---|
committer | Denis Fomin <fominde@gmail.com> | 2012-08-22 23:52:13 +0400 |
commit | 8a2526833ec5be7f4b4cd25c4edfd1b086cab02e (patch) | |
tree | a801bffce11b2de4ee91df40ed19fac2d3755ec4 /roster_tweaks | |
parent | 3781246111699d96e7cc1433efa0d185fe2c3f42 (diff) |
RosterTweaksPlugin. Added ability align the height of contacts in roster.(always show contact status)
Diffstat (limited to 'roster_tweaks')
-rw-r--r-- | roster_tweaks/config_dialog.ui | 14 | ||||
-rw-r--r-- | roster_tweaks/roster_tweaks.py | 29 |
2 files changed, 42 insertions, 1 deletions
diff --git a/roster_tweaks/config_dialog.ui b/roster_tweaks/config_dialog.ui index ea82765..53cd5b6 100644 --- a/roster_tweaks/config_dialog.ui +++ b/roster_tweaks/config_dialog.ui @@ -51,6 +51,20 @@ <property name="position">2</property> </packing> </child> + <child> + <object class="GtkCheckButton" id="contact_status_subs"> + <property name="label" translatable="yes">Always show contacts status substrings</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="on_contact_status_subs_toggled"/> + </object> + <packing> + <property name="expand">False</property> + <property name="position">3</property> + </packing> + </child> </object> </child> </object> diff --git a/roster_tweaks/roster_tweaks.py b/roster_tweaks/roster_tweaks.py index 794bf7a..5746947 100644 --- a/roster_tweaks/roster_tweaks.py +++ b/roster_tweaks/roster_tweaks.py @@ -27,11 +27,31 @@ class RosterTweaksPlugin(GajimPlugin): self.config_default_values = {'hide_status_combo': (False, ''), 'use_ctr_m': (False, ''), 'menu_visible': (True, ''), - 'quick_status': (False, '')} + '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 + def roster_draw_contact(self, roster,jid, account, contact): + 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<span size="small" style="italic' not in name: + name = name + '\n' + roster.model[child_iters[0]][1] = name + + def disconnect_roster_draw_contact(self, roster,jid, account, contact): + self.roster.setup_and_draw_roster() def pep_received(self, obj): if obj.jid != gajim.get_jid_from_account(obj.conn.name): @@ -86,6 +106,7 @@ class RosterTweaksPlugin(GajimPlugin): hbox = self.xml.get_object('hbox1') vbox.pack_start(hbox, False) self.xml.connect_signals(self) + self.roster.setup_and_draw_roster() def enable_ctrl_m(self): if self.config['use_ctr_m']: @@ -168,6 +189,8 @@ class RosterTweaksPluginConfigDialog(GajimPluginConfigDialog): self.hide_combo = self.xml.get_object('hide_combo') self.use_ctr_m = self.xml.get_object('use_ctr_m') + status_widget = self.xml.get_object('contact_status_subs') + status_widget.set_active(self.plugin.config['contact_status_subs']) self.xml.connect_signals(self) @@ -201,3 +224,7 @@ class RosterTweaksPluginConfigDialog(GajimPluginConfigDialog): gtk.gdk.CONTROL_MASK) self.plugin.config['menu_visible'] = True self.plugin.roster.xml.get_object('menubar').set_size_request(-1, -1) + + def on_contact_status_subs_toggled(self, button): + self.plugin.config['contact_status_subs'] = button.get_active() + self.plugin.roster.setup_and_draw_roster() |