summaryrefslogtreecommitdiff
path: root/src/leap/bitmask/gui/mainwindow.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/leap/bitmask/gui/mainwindow.py')
-rw-r--r--src/leap/bitmask/gui/mainwindow.py32
1 files changed, 15 insertions, 17 deletions
diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py
index 9ee62e17..004d135b 100644
--- a/src/leap/bitmask/gui/mainwindow.py
+++ b/src/leap/bitmask/gui/mainwindow.py
@@ -588,7 +588,8 @@ class MainWindow(QtGui.QMainWindow):
Displays the EIP preferences window.
"""
- EIPPreferencesWindow(self).show()
+ domain = self._login_widget.get_selected_provider()
+ EIPPreferencesWindow(self, domain).show()
#
# updates
@@ -1066,16 +1067,24 @@ class MainWindow(QtGui.QMainWindow):
Stops the login sequence.
"""
- logger.debug("Cancelling setup provider defer.")
+ logger.debug("Cancelling log in.")
+ self._cancel_ongoing_defers()
+
+ def _cancel_ongoing_defers(self):
+ """
+ Cancel the running defers to avoid app blocking.
+ """
self._backend.cancel_setup_provider()
if self._login_defer is not None:
logger.debug("Cancelling login defer.")
self._login_defer.cancel()
+ self._login_defer = None
if self._soledad_defer is not None:
logger.debug("Cancelling soledad defer.")
self._soledad_defer.cancel()
+ self._soledad_defer = None
def _set_login_cancelled(self):
"""
@@ -1248,8 +1257,7 @@ class MainWindow(QtGui.QMainWindow):
self._soledad_bootstrapper.increment_retries_count()
# XXX should cancel the existing socket --- this
# is avoiding a clean termination.
- threads.deferToThread(
- self._soledad_bootstrapper.load_and_sync_soledad)
+ self._maybe_run_soledad_setup_checks()
else:
logger.warning("Max number of soledad initialization "
"retries reached.")
@@ -1812,9 +1820,8 @@ class MainWindow(QtGui.QMainWindow):
"""
self._soledad_bootstrapper.cancel_bootstrap()
setProxiedObject(self._soledad, None)
- if self._soledad_defer is not None:
- logger.debug("Cancelling soledad defer.")
- self._soledad_defer.cancel()
+
+ self._cancel_ongoing_defers()
# reset soledad status flag
self._already_started_soledad = False
@@ -1931,16 +1938,7 @@ class MainWindow(QtGui.QMainWindow):
logger.debug('Terminating vpn')
self._vpn.terminate(shutdown=True)
- if self._login_defer:
- logger.debug("Cancelling login defer.")
- self._login_defer.cancel()
-
- logger.debug("Cancelling setup provider defer.")
- self._backend.cancel_setup_provider()
-
- if self._soledad_defer is not None:
- logger.debug("Cancelling soledad defer.")
- self._soledad_defer.cancel()
+ self._cancel_ongoing_defers()
# TODO missing any more cancels?