Allow pressing ^C when there's an unknown setting

All of it is just converting `objreg.get('xxx')` to `objreg.get('xxx',
None)` and adding a `if xxx is not None` check.

Fixes #1170
This commit is contained in:
Martin Tournoij 2017-04-01 21:14:35 +01:00
parent 9cd2c9aa6d
commit 79a22f1f47
No known key found for this signature in database
GPG Key ID: A6258419189EE585
2 changed files with 21 additions and 16 deletions

View File

@ -340,7 +340,8 @@ def _open_quickstart(args):
def _save_version(): def _save_version():
"""Save the current version to the state config.""" """Save the current version to the state config."""
state_config = objreg.get('state-config') state_config = objreg.get('state-config', None)
if state_config is not None:
state_config['general']['version'] = qutebrowser.__version__ state_config['general']['version'] = qutebrowser.__version__
@ -647,8 +648,8 @@ class Quitter:
self._shutting_down = True self._shutting_down = True
log.destroy.debug("Shutting down with status {}, session {}...".format( log.destroy.debug("Shutting down with status {}, session {}...".format(
status, session)) status, session))
session_manager = objreg.get('session-manager', None)
session_manager = objreg.get('session-manager') if session_manager is not None:
if session is not None: if session is not None:
session_manager.save(session, last_window=last_window, session_manager.save(session, last_window=last_window,
load_next_time=True) load_next_time=True)
@ -680,7 +681,9 @@ class Quitter:
# Remove eventfilter # Remove eventfilter
try: try:
log.destroy.debug("Removing eventfilter...") log.destroy.debug("Removing eventfilter...")
qApp.removeEventFilter(objreg.get('event-filter')) event_filter = objreg.get('event-filter', None)
if event_filter is not None:
qApp.removeEventFilter(event_filter)
except AttributeError: except AttributeError:
pass pass
# Close all windows # Close all windows
@ -722,7 +725,9 @@ class Quitter:
# Now we can hopefully quit without segfaults # Now we can hopefully quit without segfaults
log.destroy.debug("Deferring QApplication::exit...") log.destroy.debug("Deferring QApplication::exit...")
objreg.get('signal-handler').deactivate() objreg.get('signal-handler').deactivate()
objreg.get('session-manager').delete_autosave() session_manager = objreg.get('session-manager', None)
if session_manager is not None:
session_manager.delete_autosave()
# We use a singleshot timer to exit here to minimize the likelihood of # We use a singleshot timer to exit here to minimize the likelihood of
# segfaults. # segfaults.
QTimer.singleShot(0, functools.partial(qApp.exit, status)) QTimer.singleShot(0, functools.partial(qApp.exit, status))

View File

@ -171,14 +171,14 @@ class CrashHandler(QObject):
""" """
try: try:
pages = self._recover_pages(forgiving=True) pages = self._recover_pages(forgiving=True)
except Exception: except Exception as e:
log.destroy.exception("Error while recovering pages") log.destroy.exception("Error while recovering pages: {}".format(e))
pages = [] pages = []
try: try:
cmd_history = objreg.get('command-history')[-5:] cmd_history = objreg.get('command-history')[-5:]
except Exception: except Exception as e:
log.destroy.exception("Error while getting history: {}") log.destroy.exception("Error while getting history: {}".format(e))
cmd_history = [] cmd_history = []
try: try: