parent
9c6782be1d
commit
61df5fcd7a
@ -35,6 +35,7 @@ from qutebrowser.mainwindow.statusbar import bar
|
|||||||
from qutebrowser.completion import completionwidget
|
from qutebrowser.completion import completionwidget
|
||||||
from qutebrowser.keyinput import modeman
|
from qutebrowser.keyinput import modeman
|
||||||
from qutebrowser.browser import hints, downloads, downloadview, commands
|
from qutebrowser.browser import hints, downloads, downloadview, commands
|
||||||
|
from qutebrowser.misc import crashsignal
|
||||||
|
|
||||||
|
|
||||||
win_id_gen = itertools.count(0)
|
win_id_gen = itertools.count(0)
|
||||||
@ -392,8 +393,18 @@ class MainWindow(QWidget):
|
|||||||
self._downloadview.updateGeometry()
|
self._downloadview.updateGeometry()
|
||||||
self.tabbed_browser.tabBar().refresh()
|
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):
|
def closeEvent(self, e):
|
||||||
"""Override closeEvent to display a confirmation if needed."""
|
"""Override closeEvent to display a confirmation if needed."""
|
||||||
|
if crashsignal.is_crashing:
|
||||||
|
e.accept()
|
||||||
|
return
|
||||||
confirm_quit = config.get('ui', 'confirm-quit')
|
confirm_quit = config.get('ui', 'confirm-quit')
|
||||||
tab_count = self.tabbed_browser.count()
|
tab_count = self.tabbed_browser.count()
|
||||||
download_manager = objreg.get('download-manager', scope='window',
|
download_manager = objreg.get('download-manager', scope='window',
|
||||||
@ -425,7 +436,4 @@ class MainWindow(QWidget):
|
|||||||
e.ignore()
|
e.ignore()
|
||||||
return
|
return
|
||||||
e.accept()
|
e.accept()
|
||||||
objreg.get('session-manager').save_last_window_session()
|
self._do_close()
|
||||||
self._save_geometry()
|
|
||||||
log.destroy.debug("Closing window {}".format(self.win_id))
|
|
||||||
self.tabbed_browser.shutdown()
|
|
||||||
|
@ -42,6 +42,10 @@ ExceptionInfo = collections.namedtuple('ExceptionInfo',
|
|||||||
'pages, cmd_history, objects')
|
'pages, cmd_history, objects')
|
||||||
|
|
||||||
|
|
||||||
|
# Used by mainwindow.py to skip confirm questions on crashes
|
||||||
|
is_crashing = False
|
||||||
|
|
||||||
|
|
||||||
class CrashHandler(QObject):
|
class CrashHandler(QObject):
|
||||||
|
|
||||||
"""Handler for crashes, reports and exceptions.
|
"""Handler for crashes, reports and exceptions.
|
||||||
@ -236,6 +240,10 @@ class CrashHandler(QObject):
|
|||||||
self._quitter.on_last_window_closed)
|
self._quitter.on_last_window_closed)
|
||||||
except TypeError:
|
except TypeError:
|
||||||
log.destroy.exception("Error while preventing shutdown")
|
log.destroy.exception("Error while preventing shutdown")
|
||||||
|
|
||||||
|
global is_crashing
|
||||||
|
is_crashing = True
|
||||||
|
|
||||||
self._app.closeAllWindows()
|
self._app.closeAllWindows()
|
||||||
if self._args.no_err_windows:
|
if self._args.no_err_windows:
|
||||||
crashdialog.dump_exception_info(exc, info.pages, info.cmd_history,
|
crashdialog.dump_exception_info(exc, info.pages, info.cmd_history,
|
||||||
|
Loading…
Reference in New Issue
Block a user