settings object improvements

This commit is contained in:
Vadim Lopatin 2015-12-08 10:19:13 +03:00
parent 2cc0153611
commit f380eac0b4
1 changed files with 17 additions and 0 deletions

View File

@ -151,6 +151,18 @@ class SettingsFile {
/// override to do something after saving
void afterSave() {
}
bool merge(string json) {
try {
Setting setting = new Setting();
setting.parseJSON(json);
_setting.apply(setting);
} catch (Exception e) {
Log.e("SettingsFile.merge - failed to parse json", e);
return false;
}
return true;
}
}
/// setting object
@ -400,6 +412,11 @@ final class Setting {
}
void apply(Setting settings) {
if (settings.isObject) {
foreach(key, value; settings.map) {
this[key] = value;
}
}
}
/// deep copy of settings