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);
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue