Skip to content

Commit

Permalink
#358 Configuration file is no longer saved when user open settings di…
Browse files Browse the repository at this point in the history
…alog.

Configuration file is saved when user click on "OK" button.
  • Loading branch information
cbucher committed Aug 12, 2016
1 parent 1beb0a4 commit 154616f
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 15 deletions.
13 changes: 8 additions & 5 deletions Console/DlgSettingsMain.cpp
Expand Up @@ -47,15 +47,18 @@ DlgSettingsMain::DlgSettingsMain()

LRESULT DlgSettingsMain::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
g_settingsHandler->SaveSettings();
HRESULT hr = m_pSettingsDocument.CoCreateInstance(__uuidof(DOMDocument));
if (FAILED(hr) || (m_pSettingsDocument.p == nullptr)) return FALSE;

HRESULT hr = XmlHelper::OpenXmlDocument(
g_settingsHandler->GetSettingsFileName(),
m_pSettingsDocument,
m_pSettingsRoot);
VARIANT_BOOL bLoadSuccess = VARIANT_FALSE;
hr = m_pSettingsDocument->loadXML(CComBSTR(L"<?xml version='1.0' encoding='UTF-8' standalone='yes'?>\r\n<settings/>"), &bLoadSuccess);
if (FAILED(hr) || (!bLoadSuccess)) return E_FAIL;

hr = m_pSettingsDocument->get_documentElement(&m_pSettingsRoot);
if (FAILED(hr)) return FALSE;

if( g_settingsHandler->SerializeSettings(m_pSettingsRoot) == false ) return FALSE;

m_treeCtrl.Attach(GetDlgItem(IDC_TREE_SECTIONS));
m_checkUserDataDir.Attach(GetDlgItem(IDC_CHECK_USER_DATA_DIR));

Expand Down
32 changes: 22 additions & 10 deletions Console/SettingsHandler.cpp
Expand Up @@ -2713,16 +2713,7 @@ bool SettingsHandler::LoadSettings(const wstring& strSettingsFileName)

bool SettingsHandler::SaveSettings()
{
XmlHelper::SetAttribute(m_pSettingsRoot, CComBSTR(L"lang"), m_strLanguage);

if( m_consoleSettings .Save(m_pSettingsRoot) == false ) return false;
if( m_appearanceSettings.Save(m_pSettingsRoot) == false ) return false;
if( m_behaviorSettings .Save(m_pSettingsRoot) == false ) return false;
if( m_behaviorSettings2 .Save(m_pSettingsRoot) == false ) return false;
if( m_hotKeys .Save(m_pSettingsRoot) == false ) return false;
if( m_mouseSettings .Save(m_pSettingsRoot) == false ) return false;
if( m_snippetSettings .Save(m_pSettingsRoot) == false ) return false;
if( m_tabSettings .Save(m_pSettingsRoot) == false ) return false;
if( SerializeSettings(m_pSettingsRoot) == false ) return false;

HRESULT hr = m_pSettingsDocument->save(CComVariant(GetSettingsFileName().c_str()));

Expand All @@ -2732,6 +2723,27 @@ bool SettingsHandler::SaveSettings()
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////

bool SettingsHandler::SerializeSettings(CComPtr<IXMLDOMElement>& pSettingsRoot)
{
XmlHelper::SetAttribute(pSettingsRoot, CComBSTR(L"lang"), m_strLanguage);

if( m_consoleSettings .Save(pSettingsRoot) == false ) return false;
if( m_appearanceSettings.Save(pSettingsRoot) == false ) return false;
if( m_behaviorSettings .Save(pSettingsRoot) == false ) return false;
if( m_behaviorSettings2 .Save(pSettingsRoot) == false ) return false;
if( m_hotKeys .Save(pSettingsRoot) == false ) return false;
if( m_mouseSettings .Save(pSettingsRoot) == false ) return false;
if( m_snippetSettings .Save(pSettingsRoot) == false ) return false;
if( m_tabSettings .Save(pSettingsRoot) == false ) return false;

return true;
}

//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////

void SettingsHandler::SetUserDataDir(SettingsDirType settingsDirType)
Expand Down
1 change: 1 addition & 0 deletions Console/SettingsHandler.h
Expand Up @@ -1082,6 +1082,7 @@ class SettingsHandler

bool LoadSettings(const wstring& strSettingsFileName);
bool SaveSettings();
bool SerializeSettings(CComPtr<IXMLDOMElement>& pSettingsRoot);

wstring GetSettingsFileName() const { return m_strSettingsPath+m_strSettingsFileName; }
wstring GetSettingsPath() const { return m_strSettingsPath; }
Expand Down

0 comments on commit 154616f

Please sign in to comment.