From f380eac0b4a1124d8a7abb9341bf80a0de6cf9a1 Mon Sep 17 00:00:00 2001 From: Vadim Lopatin Date: Tue, 8 Dec 2015 10:19:13 +0300 Subject: [PATCH] settings object improvements --- src/dlangui/core/settings.d | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/dlangui/core/settings.d b/src/dlangui/core/settings.d index 52000d40..7b2391cc 100644 --- a/src/dlangui/core/settings.d +++ b/src/dlangui/core/settings.d @@ -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