From c035e95e1d74fecd8267b08009c616232e2c16b0 Mon Sep 17 00:00:00 2001 From: Amol Godbole Date: Thu, 9 Nov 2023 11:05:48 -0600 Subject: DolphinMainWindow: autosave session Currently, the session is saved only when the app quits normally. Save the session after a fixed time interval from the last state change i.e. anytime the url is changed, or a tab is opened or closed, or the active view is changed. BUG: 425627 --- src/dolphinmainwindow.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/dolphinmainwindow.h') diff --git a/src/dolphinmainwindow.h b/src/dolphinmainwindow.h index 551e28192..bff0ef4de 100644 --- a/src/dolphinmainwindow.h +++ b/src/dolphinmainwindow.h @@ -20,6 +20,7 @@ #include "panels/information/informationpanel.h" #endif +#include #include #include #include @@ -116,6 +117,14 @@ public: */ void setViewsToHomeIfMountPathOpen(const QString &mountPath); + /** + * Enables or disables the session autosaving feature. + * + * @param enable If true, saves the session automatically after a fixed + * time interval from the last state change. + */ + void setSessionAutoSaveEnabled(bool enable); + bool isFoldersPanelEnabled() const; bool isInformationPanelEnabled() const; bool isSplitViewEnabledInCurrentTab() const; @@ -619,6 +628,11 @@ private Q_SLOTS: */ void slotKeyBindings(); + /** + * Saves the session. + */ + void slotSaveSession(); + private: /** * Sets up the various menus and actions and connects them. @@ -718,6 +732,10 @@ private: QMenu m_searchTools; KFileItemActions m_fileItemActions; + QTimer *m_sessionSaveTimer; + QFutureWatcher *m_sessionSaveWatcher; + bool m_sessionSaveScheduled; + friend class DolphinMainWindowTest; }; -- cgit v1.3