From 768c1632b0eb2cbc155086bb3201b938e055edbb Mon Sep 17 00:00:00 2001 From: Le Tan Date: Mon, 2 Jan 2017 10:00:59 +0800 Subject: [PATCH] save and restore the sate of the main splitter Add a config "main_splitter_state" to store the state of the main splitter. Signed-off-by: Le Tan --- src/vconfigmanager.cpp | 1 + src/vconfigmanager.h | 15 +++++++++++++++ src/vmainwindow.cpp | 5 +++++ 3 files changed, 21 insertions(+) diff --git a/src/vconfigmanager.cpp b/src/vconfigmanager.cpp index 1627c100..e6a5e7c9 100644 --- a/src/vconfigmanager.cpp +++ b/src/vconfigmanager.cpp @@ -65,6 +65,7 @@ void VConfigManager::initialize() m_toolsDockChecked = getConfigFromSettings("session", "tools_dock_checked").toBool(); m_mainWindowGeometry = getConfigFromSettings("session", "main_window_geometry").toByteArray(); m_mainWindowState = getConfigFromSettings("session", "main_window_state").toByteArray(); + m_mainSplitterState = getConfigFromSettings("session", "main_splitter_state").toByteArray(); updateMarkdownEditStyle(); } diff --git a/src/vconfigmanager.h b/src/vconfigmanager.h index 05cb24b5..225edbc8 100644 --- a/src/vconfigmanager.h +++ b/src/vconfigmanager.h @@ -96,6 +96,9 @@ public: inline const QByteArray &getMainWindowState() const; inline void setMainWindowState(const QByteArray &p_state); + inline const QByteArray &getMainSplitterState() const; + inline void setMainSplitterState(const QByteArray &p_state); + private: void updateMarkdownEditStyle(); QVariant getConfigFromSettings(const QString §ion, const QString &key); @@ -139,6 +142,7 @@ private: QByteArray m_mainWindowGeometry; QByteArray m_mainWindowState; + QByteArray m_mainSplitterState; // The name of the config file in each directory static const QString dirConfigFileName; @@ -358,4 +362,15 @@ inline void VConfigManager::setMainWindowState(const QByteArray &p_state) m_mainWindowState); } +inline const QByteArray& VConfigManager::getMainSplitterState() const +{ + return m_mainSplitterState; +} + +inline void VConfigManager::setMainSplitterState(const QByteArray &p_state) +{ + m_mainSplitterState = p_state; + setConfigToSettings("session", "main_splitter_state", m_mainSplitterState); +} + #endif // VCONFIGMANAGER_H diff --git a/src/vmainwindow.cpp b/src/vmainwindow.cpp index bba4a032..edb4d921 100644 --- a/src/vmainwindow.cpp +++ b/src/vmainwindow.cpp @@ -717,6 +717,7 @@ void VMainWindow::saveStateAndGeometry() vconfig.setMainWindowGeometry(saveGeometry()); vconfig.setMainWindowState(saveState()); vconfig.setToolsDockChecked(toolDock->isVisible()); + vconfig.setMainSplitterState(mainSplitter->saveState()); } void VMainWindow::restoreStateAndGeometry() @@ -730,6 +731,10 @@ void VMainWindow::restoreStateAndGeometry() restoreState(state); } toolDock->setVisible(vconfig.getToolsDockChecked()); + const QByteArray &splitterState = vconfig.getMainSplitterState(); + if (!splitterState.isEmpty()) { + mainSplitter->restoreState(splitterState); + } } const QVector >& VMainWindow::getPalette() const