Add SessionManager.{save,delete}_autosave
This commit is contained in:
parent
2c03ad34ad
commit
1708b38d7b
@ -723,11 +723,7 @@ class Quitter:
|
||||
# Now we can hopefully quit without segfaults
|
||||
log.destroy.debug("Deferring QApplication::exit...")
|
||||
objreg.get('signal-handler').deactivate()
|
||||
try:
|
||||
objreg.get('session-manager').delete('_autosave')
|
||||
except sessions.SessionError as e:
|
||||
log.sessions.error("Failed to delete autosave session: {}"
|
||||
.format(e))
|
||||
objreg.get('session-manager').delete_autosave()
|
||||
# We use a singleshot timer to exit here to minimize the likelihood of
|
||||
# segfaults.
|
||||
QTimer.singleShot(0, functools.partial(qApp.exit, status))
|
||||
|
@ -685,10 +685,7 @@ class AbstractTab(QWidget):
|
||||
@pyqtSlot(bool)
|
||||
def _on_load_finished(self, ok):
|
||||
sess_manager = objreg.get('session-manager')
|
||||
try:
|
||||
sess_manager.save('_autosave')
|
||||
except sessions.SessionError as e:
|
||||
log.sessions.error("Failed to save autosave session: {}".format(e))
|
||||
sess_manager.save_autosave()
|
||||
|
||||
if ok and not self._has_ssl_errors:
|
||||
if self.url().scheme() == 'https':
|
||||
|
@ -292,6 +292,21 @@ class SessionManager(QObject):
|
||||
state_config['general']['session'] = name
|
||||
return name
|
||||
|
||||
def save_autosave(self):
|
||||
"""Save the autosave session."""
|
||||
try:
|
||||
self.save('_autosave')
|
||||
except SessionError as e:
|
||||
log.sessions.error("Failed to save autosave session: {}".format(e))
|
||||
|
||||
def delete_autosave(self):
|
||||
"""Delete the autosave session."""
|
||||
try:
|
||||
self.delete('_autosave')
|
||||
except SessionError as e:
|
||||
log.sessions.error("Failed to delete autosave session: {}"
|
||||
.format(e))
|
||||
|
||||
def save_last_window_session(self):
|
||||
"""Temporarily save the session for the last closed window."""
|
||||
self._last_window_session = self._save_all()
|
||||
|
Loading…
Reference in New Issue
Block a user