From 5ae016af8a090919985b422b8e00482243630446 Mon Sep 17 00:00:00 2001 From: Jakub Trllo Date: Tue, 11 Dec 2018 14:18:34 +0100 Subject: [PATCH] - changed hide() for close() - ftrack_run: added thread for logout from ftrack/ was freezing whole application --- pype/ftrack/ftrack_run.py | 46 ++++++++++++++++++++++++++++--------- pype/ftrack/login_dialog.py | 6 +---- 2 files changed, 36 insertions(+), 16 deletions(-) diff --git a/pype/ftrack/ftrack_run.py b/pype/ftrack/ftrack_run.py index 99ec2ec841..dea8c92378 100644 --- a/pype/ftrack/ftrack_run.py +++ b/pype/ftrack/ftrack_run.py @@ -22,7 +22,6 @@ log = pype.Logger.getLogger(__name__, "ftrack") class FtrackRunner: - def __init__(self, main_parent=None, parent=None): self.parent = parent @@ -32,7 +31,7 @@ class FtrackRunner: self.thread_action_server = None self.thread_timer = None self.thread_timer_coundown = None - + self.thread_logout = None # self.signal_start_timer.connect(self.timerStart) self.bool_logged = False @@ -77,12 +76,25 @@ class FtrackRunner: self.start_action_server() def logout(self): - credentials._clear_credentials() - self.stop_action_server() - - log.info("Logged out of Ftrack") self.bool_logged = False self.set_menu_visibility() + self.aLogin.setEnabled(False) + log.debug('Ftrack logout started') + if self.thread_logout is not None: + self.thread_logout.terminate() + self.thread_logout.wait() + + self.thread_logout = LogoutThread(self) + self.thread_logout.signal_logged_out.connect(self.logged_out) + self.thread_logout.start() + + def logged_out(self): + message = 'You were successfully Logged out from Ftrack' + self.parent.showMessage('Ftrack logout', message, 0) + self.aLogin.setEnabled(True) + self.thread_logout.terminate() + self.thread_logout.wait() + self.thread_logout = None # Actions part def start_action_server(self): @@ -229,6 +241,20 @@ class FtrackRunner: if self.thread_timer_coundown is not None: self.thread_timer_coundown.signal_continue_timer.emit() +class LogoutThread(QtCore.QThread): + # Senders + signal_logged_out = QtCore.Signal() + + def __init__(self, parent): + super(LogoutThread, self).__init__() + self.parent = parent + + def run(self): + credentials._clear_credentials() + self.parent.stop_action_server() + log.info("Logged out of Ftrack") + self.signal_logged_out.emit() + class FtrackEventsThread(QtCore.QThread): # Senders signal_timer_started = QtCore.Signal() @@ -494,13 +520,11 @@ class StopTimer(QtWidgets.QWidget): self.close_widget() def closeEvent(self, event): - event.ignore() if self.main_context is True: self.continue_timer() - else: - self.close_widget() - def close_widget(self): self.main_context = True self.refresh_context() - self.hide() + + def close_widget(self): + self.close() diff --git a/pype/ftrack/login_dialog.py b/pype/ftrack/login_dialog.py index 8365a6f3ab..47b581ae87 100644 --- a/pype/ftrack/login_dialog.py +++ b/pype/ftrack/login_dialog.py @@ -301,9 +301,5 @@ class Login_Dialog_ui(QtWidgets.QWidget): self.parent.loginChange() self._close_widget() - def closeEvent(self, event): - event.ignore() - self._close_widget() - def _close_widget(self): - self.hide() + self.close()