summaryrefslogtreecommitdiff
path: root/src/leap/gui/mainwindow.py
diff options
context:
space:
mode:
authorKali Kaneko <kali@leap.se>2013-07-09 02:27:36 +0900
committerKali Kaneko <kali@leap.se>2013-07-09 02:54:36 +0900
commitc9c126b67f1a13483075aae680b30813117fbb05 (patch)
tree8048df94f2aa32fe1b775d449b6beea65a6f05b3 /src/leap/gui/mainwindow.py
parentaddf58efe589fa7d85779eb05c3738f23c2e715e (diff)
do not use exec_ on wizard
Closes: #3047
Diffstat (limited to 'src/leap/gui/mainwindow.py')
-rw-r--r--src/leap/gui/mainwindow.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/leap/gui/mainwindow.py b/src/leap/gui/mainwindow.py
index 7180139a..52caf08e 100644
--- a/src/leap/gui/mainwindow.py
+++ b/src/leap/gui/mainwindow.py
@@ -310,12 +310,22 @@ class MainWindow(QtGui.QMainWindow):
if self._wizard is None:
self._wizard = Wizard(bypass_checks=self._bypass_checks)
self._wizard.accepted.connect(self._finish_init)
+ self._wizard.rejected.connect(self._wizard.close)
self.setVisible(False)
- self._wizard.exec_()
- # We need this to process any wizard related event
- QtCore.QCoreApplication.processEvents()
- self._wizard = None
+ # Do NOT use exec_, it will use a child event loop!
+ # Refer to http://www.themacaque.com/?p=1067 for funny details.
+ self._wizard.show()
+ self._wizard.finished.connect(self._wizard_finished)
+
+ def _wizard_finished(self):
+ """
+ SLOT
+ TRIGGERS
+ self._wizard.finished
+
+ Called when the wizard has finished.
+ """
self.setVisible(True)
def _get_leap_logging_handler(self):