summaryrefslogtreecommitdiff
path: root/Source/Core/Common/Src/SysConf.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/Common/Src/SysConf.cpp')
-rw-r--r--Source/Core/Common/Src/SysConf.cpp21
1 files changed, 18 insertions, 3 deletions
diff --git a/Source/Core/Common/Src/SysConf.cpp b/Source/Core/Common/Src/SysConf.cpp
index 9c7cd6bad7..96f6b46167 100644
--- a/Source/Core/Common/Src/SysConf.cpp
+++ b/Source/Core/Common/Src/SysConf.cpp
@@ -19,10 +19,10 @@
#include "SysConf.h"
SysConf::SysConf()
-: m_IsValid(false)
+ : m_IsValid(false)
{
- if (LoadFromFile(File::GetUserPath(F_WIISYSCONF_IDX).c_str()))
- m_IsValid = true;
+ m_FilenameDefault = File::GetUserPath(F_WIISYSCONF_IDX);
+ m_IsValid = LoadFromFile(m_FilenameDefault.c_str());
}
SysConf::~SysConf()
@@ -31,7 +31,11 @@ SysConf::~SysConf()
return;
Save();
+ Clear();
+}
+void SysConf::Clear()
+{
for (size_t i = 0; i < m_Entries.size() - 1; i++)
{
delete [] m_Entries.at(i).data;
@@ -167,3 +171,14 @@ bool SysConf::Save()
return false;
return SaveToFile(m_Filename.c_str());
}
+
+bool SysConf::Reload()
+{
+ if (m_IsValid)
+ Clear();
+
+ std::string& filename = m_Filename.empty() ? m_FilenameDefault : m_Filename;
+
+ m_IsValid = LoadFromFile(filename.c_str());
+ return m_IsValid;
+}