summaryrefslogtreecommitdiff
path: root/src/leap/bitmask
diff options
context:
space:
mode:
Diffstat (limited to 'src/leap/bitmask')
-rw-r--r--src/leap/bitmask/gui/mainwindow.py5
-rw-r--r--src/leap/bitmask/gui/wizard.py23
2 files changed, 26 insertions, 2 deletions
diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py
index 01e72597..f954006d 100644
--- a/src/leap/bitmask/gui/mainwindow.py
+++ b/src/leap/bitmask/gui/mainwindow.py
@@ -420,7 +420,8 @@ class MainWindow(QtGui.QMainWindow):
# setup but does not register
self._wizard = None
self._backend_connect()
- self._finish_init()
+ if self._wizard_firstrun:
+ self._finish_init()
def _launch_wizard(self):
"""
@@ -439,7 +440,7 @@ class MainWindow(QtGui.QMainWindow):
self._wizard = Wizard(backend=self._backend,
bypass_checks=self._bypass_checks)
self._wizard.accepted.connect(self._finish_init)
- self._wizard.rejected.connect(self._wizard.close)
+ self._wizard.rejected.connect(self._rejected_wizard)
self.setVisible(False)
# Do NOT use exec_, it will use a child event loop!
diff --git a/src/leap/bitmask/gui/wizard.py b/src/leap/bitmask/gui/wizard.py
index ec007110..b99e8db6 100644
--- a/src/leap/bitmask/gui/wizard.py
+++ b/src/leap/bitmask/gui/wizard.py
@@ -686,3 +686,26 @@ class Wizard(QtGui.QWizard):
self.ui.lblUser.setText("")
self.ui.lblPassword.setText("")
self.ui.lblPassword2.setText("")
+
+ def closeEvent(self, event):
+ """
+ This method is called when the wizard dialog is closed.
+ We disconnect all the backend signals in here.
+ """
+ try:
+ # disconnect backend signals
+ self._backend.signaler.prov_name_resolution.disconnect(
+ self._name_resolution)
+ self._backend.signaler.prov_https_connection.disconnect(
+ self._https_connection)
+ self._backend.signaler.prov_download_provider_info.disconnect(
+ self._download_provider_info)
+
+ self._backend.signaler.prov_download_ca_cert.disconnect(
+ self._download_ca_cert)
+ self._backend.signaler.prov_check_ca_fingerprint.disconnect(
+ self._check_ca_fingerprint)
+ self._backend.signaler.prov_check_api_certificate.disconnect(
+ self._check_api_certificate)
+ except RuntimeError:
+ pass # Signal was not connected