From 739c1657dd0530dbd15b3407d940f5d3d882666f Mon Sep 17 00:00:00 2001 From: Yann Leboulanger Date: Tue, 15 Mar 2005 19:51:48 +0000 Subject: [PATCH] when we autoconnect, ask the status message if ask_online_status is set in the preferences --- plugins/gtkgui/dialogs.py | 7 ++++++- plugins/gtkgui/gtkgui.py | 5 ++++- plugins/gtkgui/roster_window.py | 4 ++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/plugins/gtkgui/dialogs.py b/plugins/gtkgui/dialogs.py index b1d1619c3..997359b30 100644 --- a/plugins/gtkgui/dialogs.py +++ b/plugins/gtkgui/dialogs.py @@ -274,6 +274,8 @@ class Away_message_dialog: """Class for Away message dialog""" def run(self): """Wait for OK button to be pressed and return away messsage""" + if self.autoconnect: + gtk.gdk.threads_enter() rep = self.window.run() if rep == gtk.RESPONSE_OK: beg, end = self.message_buffer.get_bounds() @@ -282,6 +284,8 @@ class Away_message_dialog: else: message = -1 self.window.destroy() + if self.autoconnect: + gtk.gdk.threads_leave() return message def on_message_comboboxentry_changed(self, widget, data=None): @@ -297,10 +301,11 @@ class Away_message_dialog: if (event.state & gtk.gdk.CONTROL_MASK): self.window.response(gtk.RESPONSE_OK) - def __init__(self, plugin): + def __init__(self, plugin, autoconnect = 0): self.xml = gtk.glade.XML(GTKGUI_GLADE, 'away_message_dialog', APP) self.window = self.xml.get_widget('away_message_dialog') self.plugin = plugin + self.autoconnect = autoconnect message_textview = self.xml.get_widget('message_textview') self.message_buffer = message_textview.get_buffer() self.message_buffer.set_text(self.plugin.config['last_msg']) diff --git a/plugins/gtkgui/gtkgui.py b/plugins/gtkgui/gtkgui.py index 31123eb83..f3271d378 100644 --- a/plugins/gtkgui/gtkgui.py +++ b/plugins/gtkgui/gtkgui.py @@ -657,10 +657,13 @@ class plugin: def autoconnect(self): """auto connect at startup""" + message = self.roster.get_status_message('online', 1) + if message == -1: + return for a in self.accounts.keys(): if self.accounts[a].has_key('autoconnect'): if self.accounts[a]['autoconnect']: - self.roster.send_status(a, 'online', 'Online', 1) + self.roster.send_status(a, 'online', message, 1) return 0 def show_systray(self): diff --git a/plugins/gtkgui/roster_window.py b/plugins/gtkgui/roster_window.py index 76a833f58..51aa8d87c 100644 --- a/plugins/gtkgui/roster_window.py +++ b/plugins/gtkgui/roster_window.py @@ -725,12 +725,12 @@ class roster_window: else: self.plugin.sleeper_state[account] = 0 - def get_status_message(self, status): + def get_status_message(self, status, autoconnect = 0): if (status == 'online' and not self.plugin.config['ask_online_status']) \ or (status == 'offline' and not \ self.plugin.config['ask_offline_status']): return status - w = Away_message_dialog(self.plugin) + w = Away_message_dialog(self.plugin, autoconnect) message = w.run() return message