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