Skip confirm-quit checks when crashing.

Fixes #853.
This commit is contained in:
Florian Bruhin 2015-08-06 21:08:20 +02:00
parent 9c6782be1d
commit 61df5fcd7a
2 changed files with 20 additions and 4 deletions

View File

@ -35,6 +35,7 @@ from qutebrowser.mainwindow.statusbar import bar
from qutebrowser.completion import completionwidget
from qutebrowser.keyinput import modeman
from qutebrowser.browser import hints, downloads, downloadview, commands
from qutebrowser.misc import crashsignal
win_id_gen = itertools.count(0)
@ -392,8 +393,18 @@ class MainWindow(QWidget):
self._downloadview.updateGeometry()
self.tabbed_browser.tabBar().refresh()
def _do_close(self):
"""Helper function for closeEvent."""
objreg.get('session-manager').save_last_window_session()
self._save_geometry()
log.destroy.debug("Closing window {}".format(self.win_id))
self.tabbed_browser.shutdown()
def closeEvent(self, e):
"""Override closeEvent to display a confirmation if needed."""
if crashsignal.is_crashing:
e.accept()
return
confirm_quit = config.get('ui', 'confirm-quit')
tab_count = self.tabbed_browser.count()
download_manager = objreg.get('download-manager', scope='window',
@ -425,7 +436,4 @@ class MainWindow(QWidget):
e.ignore()
return
e.accept()
objreg.get('session-manager').save_last_window_session()
self._save_geometry()
log.destroy.debug("Closing window {}".format(self.win_id))
self.tabbed_browser.shutdown()
self._do_close()

View File

@ -42,6 +42,10 @@ ExceptionInfo = collections.namedtuple('ExceptionInfo',
'pages, cmd_history, objects')
# Used by mainwindow.py to skip confirm questions on crashes
is_crashing = False
class CrashHandler(QObject):
"""Handler for crashes, reports and exceptions.
@ -236,6 +240,10 @@ class CrashHandler(QObject):
self._quitter.on_last_window_closed)
except TypeError:
log.destroy.exception("Error while preventing shutdown")
global is_crashing
is_crashing = True
self._app.closeAllWindows()
if self._args.no_err_windows:
crashdialog.dump_exception_info(exc, info.pages, info.cmd_history,