Browse Source

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 <[email protected]>
Le Tan 9 years ago
parent
commit
768c1632b0
3 changed files with 21 additions and 0 deletions
  1. 1 0
      src/vconfigmanager.cpp
  2. 15 0
      src/vconfigmanager.h
  3. 5 0
      src/vmainwindow.cpp

+ 1 - 0
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();
 }

+ 15 - 0
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 &section, 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

+ 5 - 0
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<QPair<QString, QString> >& VMainWindow::getPalette() const