Add functions to set and save settings
This commit is contained in:
parent
a24909471f
commit
b29b987504
2 changed files with 39 additions and 3 deletions
|
|
@ -44,12 +44,22 @@ json SettingsManager::GetSettings(std::string settings_key)
|
|||
return(empty);
|
||||
}
|
||||
|
||||
void SettingsManager::SetSettings(std::string settings_key, json new_settings)
|
||||
{
|
||||
settings_data[settings_key] = new_settings;
|
||||
}
|
||||
|
||||
void SettingsManager::LoadSettings(std::string filename)
|
||||
{
|
||||
/*---------------------------------------------------------*\
|
||||
| Store settings filename, so we can save to it later |
|
||||
\*---------------------------------------------------------*/
|
||||
settings_filename = filename;
|
||||
|
||||
/*---------------------------------------------------------*\
|
||||
| Open input file in binary mode |
|
||||
\*---------------------------------------------------------*/
|
||||
std::ifstream settings_file(filename, std::ios::in | std::ios::binary);
|
||||
std::ifstream settings_file(settings_filename, std::ios::in | std::ios::binary);
|
||||
|
||||
/*---------------------------------------------------------*\
|
||||
| Read settings into JSON store |
|
||||
|
|
@ -70,4 +80,25 @@ void SettingsManager::LoadSettings(std::string filename)
|
|||
settings_data.clear();
|
||||
}
|
||||
}
|
||||
|
||||
settings_file.close();
|
||||
}
|
||||
|
||||
void SettingsManager::SaveSettings()
|
||||
{
|
||||
std::ofstream settings_file(settings_filename, std::ios::out | std::ios::binary);
|
||||
|
||||
if(settings_file)
|
||||
{
|
||||
try
|
||||
{
|
||||
settings_file << settings_data.dump(4);
|
||||
}
|
||||
catch(std::exception e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
settings_file.close();
|
||||
}
|
||||
}
|
||||
|
|
@ -22,9 +22,14 @@ public:
|
|||
~SettingsManager();
|
||||
|
||||
json GetSettings(std::string settings_key);
|
||||
void SetSettings(std::string settings_key, json new_settings);
|
||||
|
||||
void LoadSettings(std::string filename);
|
||||
void SaveSettings();
|
||||
|
||||
|
||||
private:
|
||||
json settings_data;
|
||||
json settings_prototype;
|
||||
json settings_data;
|
||||
json settings_prototype;
|
||||
std::string settings_filename;
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue