From 144600703de93c89e88e18328513280eacad68c2 Mon Sep 17 00:00:00 2001 From: Denis Fomin Date: Mon, 4 Oct 2010 15:20:09 +0400 Subject: roster_tweaks. initial --- roster_tweaks/__init__.py | 1 + roster_tweaks/config_dialog.ui | 45 +++++++++++++++++++++++ roster_tweaks/manifest.ini | 10 ++++++ roster_tweaks/roster_tweaks.py | 81 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 137 insertions(+) create mode 100644 roster_tweaks/__init__.py create mode 100644 roster_tweaks/config_dialog.ui create mode 100644 roster_tweaks/manifest.ini create mode 100644 roster_tweaks/roster_tweaks.py (limited to 'roster_tweaks') diff --git a/roster_tweaks/__init__.py b/roster_tweaks/__init__.py new file mode 100644 index 0000000..00980d7 --- /dev/null +++ b/roster_tweaks/__init__.py @@ -0,0 +1 @@ +from roster_tweaks import RosterTweaksPlugin diff --git a/roster_tweaks/config_dialog.ui b/roster_tweaks/config_dialog.ui new file mode 100644 index 0000000..33f840d --- /dev/null +++ b/roster_tweaks/config_dialog.ui @@ -0,0 +1,45 @@ + + + + + + + + True + 9 + vertical + 4 + + + Hide status combobox + True + False + False + If checked, status icon will be displayed in chat window banner. + True + + + + False + 0 + + + + + Use Ctrl +M to hide/show menu + True + False + False + If checked, status message of contact will be displayed in chat window banner. + True + + + + False + 1 + + + + + + diff --git a/roster_tweaks/manifest.ini b/roster_tweaks/manifest.ini new file mode 100644 index 0000000..4b63b01 --- /dev/null +++ b/roster_tweaks/manifest.ini @@ -0,0 +1,10 @@ +[info] +name: Roster Tweaks +short_name: roster_tweaks +version: 0.1 +description: Allows user to tweak roster window appearance (eg. make it compact). + Based on ticket #3340: + http://trac.gajim.org/ticket/3340. +authors = Denis Fomin +homepage = http://trac-plugins.gajim.org/wiki + diff --git a/roster_tweaks/roster_tweaks.py b/roster_tweaks/roster_tweaks.py new file mode 100644 index 0000000..73aeaf2 --- /dev/null +++ b/roster_tweaks/roster_tweaks.py @@ -0,0 +1,81 @@ +# -*- coding: utf-8 -*- + +import gtk +from common import i18n +from common import gajim + +from plugins import GajimPlugin +from plugins.helpers import log, log_calls +from plugins.gui import GajimPluginConfigDialog + +class RosterTweaksPlugin(GajimPlugin): + + @log_calls('RosterTweaksPlugin') + def init(self): + self.config_dialog = RosterTweaksPluginConfigDialog(self) + + self.config_default_values = {'hide_status_combo': (False,''), + 'use_ctr_m': (False,''), + 'menu_visible': (True,'')} + + @log_calls('RosterTweaksPlugin') + def activate(self): + gajim.interface.roster.status_combobox.set_property('visible', + not self.config['hide_status_combo']) + gajim.interface.roster.status_combobox.set_no_show_all(True) + if self.config['use_ctr_m']: + window = gajim.interface.roster.window + self.accel_group = gtk.accel_groups_from_object(window)[0] + self.accel_group.connect_group(gtk.keysyms.m, gtk.gdk.CONTROL_MASK, + gtk.ACCEL_MASK, self.on_ctrl_m) + menubar = gajim.interface.roster.xml.get_object('menubar') + menubar.set_no_show_all(True) + menubar.set_property('visible', self.config['menu_visible']) + + @log_calls('RosterTweaksPlugin') + def deactivate(self): + gajim.interface.roster.status_combobox.show() + + def on_ctrl_m(self, accel_group, acceleratable, keyval, modifier): + menubar = gajim.interface.roster.xml.get_object('menubar') + is_visible = menubar.get_property('visible') + menubar.set_property('visible', not is_visible) + self.config['menu_visible'] = not is_visible + return True + +class RosterTweaksPluginConfigDialog(GajimPluginConfigDialog): + def init(self): + self.GTK_BUILDER_FILE_PATH = self.plugin.local_file_path( + 'config_dialog.ui') + self.xml = gtk.Builder() + self.xml.set_translation_domain(i18n.APP) + self.xml.add_objects_from_file(self.GTK_BUILDER_FILE_PATH, + ['roster_tweaks_config_vbox']) + self.config_vbox = self.xml.get_object('roster_tweaks_config_vbox') + self.child.pack_start(self.config_vbox) + + self.hide_combo = self.xml.get_object('hide_combo') + self.use_ctr_m = self.xml.get_object('use_ctr_m') + + self.xml.connect_signals(self) + + def on_run(self): + self.hide_combo.set_active(self.plugin.config['hide_status_combo']) + self.use_ctr_m.set_active(self.plugin.config['use_ctr_m']) + + def on_hide_combo_toggled(self, button): + self.plugin.config['hide_status_combo'] = button.get_active() + gajim.interface.roster.status_combobox.set_property('visible', + not self.plugin.config['hide_status_combo']) + + def on_use_ctr_m_toggled(self, button): + use_ = button.get_active() + self.plugin.config['use_ctr_m'] = use_ + if use_: + self.plugin.activate() + else: + self.plugin.accel_group.disconnect_key(gtk.keysyms.m, + gtk.gdk.CONTROL_MASK) + self.plugin.config['menu_visible'] = True + gajim.interface.roster.xml.get_object('menubar').set_property( + 'visible', True) -- cgit v1.2.3