don't fail when first connection fails and we try to show profile window. see #4717
This commit is contained in:
parent
66aa2b5af4
commit
5ff6ce2ca9
1 changed files with 20 additions and 1 deletions
21
src/gajim.py
21
src/gajim.py
|
@ -423,6 +423,7 @@ parser = optparser.OptionsParser(config_filename)
|
||||||
import roster_window
|
import roster_window
|
||||||
import profile_window
|
import profile_window
|
||||||
import config
|
import config
|
||||||
|
from threading import Thread
|
||||||
|
|
||||||
|
|
||||||
class PassphraseRequest:
|
class PassphraseRequest:
|
||||||
|
@ -482,6 +483,22 @@ class PassphraseRequest:
|
||||||
cancel_handler=_cancel)
|
cancel_handler=_cancel)
|
||||||
self.dialog_created = True
|
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:
|
class Interface:
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
@ -636,7 +653,8 @@ class Interface:
|
||||||
ctrl.parent_win.redraw_tab(ctrl)
|
ctrl.parent_win.redraw_tab(ctrl)
|
||||||
|
|
||||||
self.roster.on_status_changed(account, status)
|
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)
|
self.edit_own_details(account)
|
||||||
if self.remote_ctrl:
|
if self.remote_ctrl:
|
||||||
self.remote_ctrl.raise_signal('AccountPresence', (status, account))
|
self.remote_ctrl.raise_signal('AccountPresence', (status, account))
|
||||||
|
@ -3063,6 +3081,7 @@ class Interface:
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
gajim.interface = self
|
gajim.interface = self
|
||||||
|
gajim.thread_interface = ThreadInterface
|
||||||
# This is the manager and factory of message windows set by the module
|
# This is the manager and factory of message windows set by the module
|
||||||
self.msg_win_mgr = None
|
self.msg_win_mgr = None
|
||||||
self.jabber_state_images = {'16': {}, '32': {}, 'opened': {},
|
self.jabber_state_images = {'16': {}, '32': {}, 'opened': {},
|
||||||
|
|
Loading…
Add table
Reference in a new issue