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); return(empty);
} }
void SettingsManager::SetSettings(std::string settings_key, json new_settings)
{
settings_data[settings_key] = new_settings;
}
void SettingsManager::LoadSettings(std::string filename) 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 | | 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 | | Read settings into JSON store |
@ -70,4 +80,25 @@ void SettingsManager::LoadSettings(std::string filename)
settings_data.clear(); 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(); ~SettingsManager();
json GetSettings(std::string settings_key); json GetSettings(std::string settings_key);
void SetSettings(std::string settings_key, json new_settings);
void LoadSettings(std::string filename); void LoadSettings(std::string filename);
void SaveSettings();
private: private:
json settings_data; json settings_data;
json settings_prototype; json settings_prototype;
std::string settings_filename;
}; };