Handle a missing session folder at some places.
This commit is contained in:
parent
d700d18780
commit
f85ba8645f
@ -44,7 +44,7 @@ except ImportError:
|
||||
import qutebrowser
|
||||
import qutebrowser.resources # pylint: disable=unused-import
|
||||
from qutebrowser.completion.models import instances as completionmodels
|
||||
from qutebrowser.commands import cmdutils, runners
|
||||
from qutebrowser.commands import cmdutils, runners, cmdexc
|
||||
from qutebrowser.config import style, config, websettings, configexc
|
||||
from qutebrowser.browser import quickmarks, cookies, cache, adblock, history
|
||||
from qutebrowser.browser.network import qutescheme, proxy, networkmanager
|
||||
@ -728,7 +728,11 @@ class Application(QApplication):
|
||||
@cmdutils.register(instance='app')
|
||||
def restart(self):
|
||||
"""Restart qutebrowser while keeping existing tabs open."""
|
||||
ok = self._do_restart(session='_restart')
|
||||
try:
|
||||
ok = self._do_restart(session='_restart')
|
||||
except sessions.SessionError as e:
|
||||
log.destroy.exception("Failed to save session!")
|
||||
raise cmdexc.CommandError("Failed to save session: {}!".format(e))
|
||||
if ok:
|
||||
self.shutdown()
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
||||
"""Misc. CompletionModels."""
|
||||
|
||||
from qutebrowser.config import config, configdata
|
||||
from qutebrowser.utils import objreg
|
||||
from qutebrowser.utils import objreg, log
|
||||
from qutebrowser.commands import cmdutils
|
||||
from qutebrowser.completion.models import base
|
||||
|
||||
@ -120,6 +120,9 @@ class SessionCompletionModel(base.BaseCompletionModel):
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent)
|
||||
cat = self.new_category("Sessions")
|
||||
for name in objreg.get('session-manager').list_sessions():
|
||||
if not name.startswith('_'):
|
||||
self.new_item(cat, name)
|
||||
try:
|
||||
for name in objreg.get('session-manager').list_sessions():
|
||||
if not name.startswith('_'):
|
||||
self.new_item(cat, name)
|
||||
except OSError:
|
||||
log.completion.exception("Failed to list sessions!")
|
||||
|
@ -375,6 +375,10 @@ class SessionManager(QObject):
|
||||
name))
|
||||
try:
|
||||
self.delete(name)
|
||||
except OSError as e:
|
||||
except SessionNotFoundError as e:
|
||||
log.misc.exception("Session not found!")
|
||||
raise cmdexc.CommandError("Session {} not found".format(e))
|
||||
except (OSError, SessionError) as e:
|
||||
log.misc.exception("Error while deleting session!")
|
||||
raise cmdexc.CommandError("Error while deleting session: {}"
|
||||
.format(e))
|
||||
|
Loading…
Reference in New Issue
Block a user