Add functions to set and save settings

This commit is contained in:
Adam Honse 2020-11-10 15:53:58 -06:00
parent a24909471f
commit b29b987504
2 changed files with 39 additions and 3 deletions

View file

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

View file

@ -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;
std::string settings_filename;
};