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 <tamlokveer@gmail.com>
This commit is contained in:
Le Tan 2017-01-02 10:00:59 +08:00
parent d416cf6eda
commit 768c1632b0
3 changed files with 21 additions and 0 deletions

View File

@ -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();
}

View File

@ -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

View File

@ -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