From e9696514e64038e212c76ff6ecf87ee70168ea0b Mon Sep 17 00:00:00 2001 From: Nikos Kouremenos Date: Sun, 17 Jul 2005 22:52:15 +0000 Subject: [PATCH] commit gui to enable/disable dbus on the fly --- scripts/gajim-remote.py | 7 ++----- src/config.py | 20 ++++++++++++++++++-- src/gajim.py | 14 +++++++++++--- src/gtkgui.glade | 21 +++++++++++++++++++++ 4 files changed, 52 insertions(+), 10 deletions(-) diff --git a/scripts/gajim-remote.py b/scripts/gajim-remote.py index 22bc4e405..6abc59f43 100755 --- a/scripts/gajim-remote.py +++ b/scripts/gajim-remote.py @@ -84,12 +84,9 @@ def gtk_quit(): argv_len = len(sys.argv) -if argv_len < 2: - send_error('Usage: ' + sys.argv[0] + ' command [arguments]') +if argv_len < 2 or sys.argv[1] not in commands: # no args or bad args + end_error(compose_help()) -if sys.argv[1] not in commands: - send_error(compose_help()) - command = sys.argv[1] if command == 'help': diff --git a/src/config.py b/src/config.py index e65e25870..7a11c5307 100644 --- a/src/config.py +++ b/src/config.py @@ -365,15 +365,20 @@ class PreferencesWindow: st = gajim.config.get('log_notif_in_sep_file') self.xml.get_widget('log_in_extern_checkbutton').set_active(st) - # don't send os info + # send os info st = gajim.config.get('send_os_info') self.xml.get_widget('send_os_info_checkbutton').set_active(st) - # don't check for new version + # check for new version st = gajim.config.get('check_for_new_version') btn = self.xml.get_widget('check_for_new_version_checkbutton') btn.set_active(st) + # use dbus + st = gajim.config.get('use_dbus') + btn = self.xml.get_widget('enable_dbus_checkbutton') + btn.set_active(st) + self.xml.signal_autoconnect(self) self.sound_tree.get_model().connect('row-changed', @@ -790,6 +795,17 @@ class PreferencesWindow: gajim.config.set('check_for_new_version', widget.get_active()) self.plugin.save_config() + def on_enable_dbus_checkbutton_toggled(self, widget): + isactive = widget.get_active() + gajim.config.set('use_dbus', isactive) + self.plugin.save_config() + if isactive: + if self.plugin.remote is None: + self.plugin.enable_dbus() + else: + if self.plugin.remote is not None: + self.plugin.disable_dbus() + def fill_msg_treeview(self): self.xml.get_widget('delete_msg_button').set_sensitive(False) model = self.msg_tree.get_model() diff --git a/src/gajim.py b/src/gajim.py index e2b29055f..f9ed09dcb 100755 --- a/src/gajim.py +++ b/src/gajim.py @@ -823,6 +823,15 @@ class Interface: def save_config(self): parser.write() + def enable_dbus(self): + import remote_control + self.remote = remote_control.Remote(self) + + def disable_dbus(self): + if self.remote: # FIXME: A handler is already registered for the path starting with path[0] = "org" + del (self.remote) + self.remote = None + def __init__(self): self.default_values = { 'inmsgcolor': gajim.config.get('inmsgcolor'), @@ -886,10 +895,9 @@ class Interface: self.roster = roster_window.RosterWindow(self) if gajim.config.get('use_dbus'): - import remote_control - self.remote = remote_control.Remote(self) + self.enable_dbus() else: - self.remote = None + self.disable_dbus() path_to_file = os.path.join(gajim.DATA_DIR, 'pixmaps/gajim.png') pix = gtk.gdk.pixbuf_new_from_file(path_to_file) diff --git a/src/gtkgui.glade b/src/gtkgui.glade index 398ddebe8..3bd49c35d 100644 --- a/src/gtkgui.glade +++ b/src/gtkgui.glade @@ -5531,6 +5531,27 @@ Custom False + + + + True + If checked, Gajim can be controlled by other programs that support DBus + True + Enable DBus capabilities + True + GTK_RELIEF_NORMAL + True + False + False + True + + + + 0 + False + False + +