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
|
# 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()
|
||||||
try:
|
objreg.get('session-manager').delete_autosave()
|
||||||
objreg.get('session-manager').delete('_autosave')
|
|
||||||
except sessions.SessionError as e:
|
|
||||||
log.sessions.error("Failed to delete autosave session: {}"
|
|
||||||
.format(e))
|
|
||||||
# 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))
|
||||||
|
@ -685,10 +685,7 @@ class AbstractTab(QWidget):
|
|||||||
@pyqtSlot(bool)
|
@pyqtSlot(bool)
|
||||||
def _on_load_finished(self, ok):
|
def _on_load_finished(self, ok):
|
||||||
sess_manager = objreg.get('session-manager')
|
sess_manager = objreg.get('session-manager')
|
||||||
try:
|
sess_manager.save_autosave()
|
||||||
sess_manager.save('_autosave')
|
|
||||||
except sessions.SessionError as e:
|
|
||||||
log.sessions.error("Failed to save autosave session: {}".format(e))
|
|
||||||
|
|
||||||
if ok and not self._has_ssl_errors:
|
if ok and not self._has_ssl_errors:
|
||||||
if self.url().scheme() == 'https':
|
if self.url().scheme() == 'https':
|
||||||
|
@ -292,6 +292,21 @@ class SessionManager(QObject):
|
|||||||
state_config['general']['session'] = name
|
state_config['general']['session'] = name
|
||||||
return 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):
|
def save_last_window_session(self):
|
||||||
"""Temporarily save the session for the last closed window."""
|
"""Temporarily save the session for the last closed window."""
|
||||||
self._last_window_session = self._save_all()
|
self._last_window_session = self._save_all()
|
||||||
|
Loading…
Reference in New Issue
Block a user