Exemple #1
0
void Settings::SaveChanged()
{
	if(settingsJSON == NULL) return;
	for(int i = 0; i < variables.GetSizeI(); i++)
	{
		IVariable* var = variables[i];
		if(!var->IsChanged())
		{
			continue;
		}
		var->SaveValue();

		JSON* varJSON = var->json;
		if(varJSON == NULL)
		{
			varJSON = settingsJSON->GetItemByName(var->name);
			var->json = varJSON;
		}
		if(varJSON == NULL)
		{
			settingsJSON->AddItem(var->name,var->Serialize());
		}
		else
		{
			varJSON->ReplaceNodeWith(var->Serialize());
		}
	}
	rootSettingsJSON->Save(settingsFileName);
	PrintFileToLog(settingsFileName);
}
Exemple #2
0
void Settings::SaveOnly(const Array<const char*> &varNames)
{
	if(settingsJSON == NULL) return;

	for(int i = 0; i < variables.GetSizeI(); i++)
	{
		IVariable* var = variables[i];
		bool found = false;
		for(int namesIndex = 0; namesIndex < varNames.GetSizeI(); namesIndex++)
		{
			if(strcmp(var->name, varNames[namesIndex]) == 0)
			{
				found = true;
				break;
			}
		}
		if(!found)
		{
			continue;
		}
		var->SaveValue();

		JSON* varJSON = var->json;
		if(varJSON == NULL)
		{
			varJSON = settingsJSON->GetItemByName(var->name);
			var->json = varJSON;
		}
		if(varJSON == NULL)
		{
			settingsJSON->AddItem(var->name,var->Serialize());
		}
		else
		{
			varJSON->ReplaceNodeWith(var->Serialize());
		}
	}
	rootSettingsJSON->Save(settingsFileName);
}