don't fail when first connection fails and we try to show profile window. see #4717

This commit is contained in:
Yann Leboulanger 2009-01-22 17:53:46 +00:00
parent 66aa2b5af4
commit 5ff6ce2ca9
1 changed files with 20 additions and 1 deletions

View File

@ -423,6 +423,7 @@ parser = optparser.OptionsParser(config_filename)
import roster_window
import profile_window
import config
from threading import Thread
class PassphraseRequest:
@ -482,6 +483,22 @@ class PassphraseRequest:
cancel_handler=_cancel)
self.dialog_created = True
class ThreadInterface:
def __init__(self, func, func_args, callback, callback_args):
'''Call a function in a thread
:param func: the function to call in the thread
:param func_args: list or arguments for this function
:param callback: callback to call once function is finished
:param callback_args: list of arguments for this callback
'''
def thread_function(func, func_args, callback, callback_args):
output = func(*func_args)
gobject.idle_add(callback, output, *callback_args)
Thread(target=thread_function, args=(func, func_args, callback,
callback_args)).start()
class Interface:
################################################################################
@ -636,7 +653,8 @@ class Interface:
ctrl.parent_win.redraw_tab(ctrl)
self.roster.on_status_changed(account, status)
if account in self.show_vcard_when_connect:
if account in self.show_vcard_when_connect and status not in ('offline',
'error'):
self.edit_own_details(account)
if self.remote_ctrl:
self.remote_ctrl.raise_signal('AccountPresence', (status, account))
@ -3063,6 +3081,7 @@ class Interface:
def __init__(self):
gajim.interface = self
gajim.thread_interface = ThreadInterface
# This is the manager and factory of message windows set by the module
self.msg_win_mgr = None
self.jabber_state_images = {'16': {}, '32': {}, 'opened': {},