X-Git-Url: http://www.project-moonshot.org/gitweb/?p=moonshot-ui.git;a=blobdiff_plain;f=src%2Fmoonshot-settings.vala;h=8107c057c8035ba872041d65573ea6b40e7a0d6e;hp=1549213ba785e9626e90e038955e02a13656c939;hb=e32b9690270bbb4c4152ce9672db5d11a81f98e1;hpb=e9560299e59bf0845693d3b0c79b4deb4c7a9a68 diff --git a/src/moonshot-settings.vala b/src/moonshot-settings.vala index 1549213..8107c05 100644 --- a/src/moonshot-settings.vala +++ b/src/moonshot-settings.vala @@ -135,3 +135,40 @@ internal bool get_bool_setting(string group_name, string key_name, bool default= } return default; } + + +internal void set_string_setting(string group_name, string key_name, string value) +{ + KeyFile key_file = get_keyfile(); + + key_file.set_string(group_name, key_name, value); + save_keyfile(key_file); +} + +internal string get_string_setting(string group_name, string key_name, string default="") +{ + KeyFile key_file = get_keyfile(); + + if (key_file == null) + return default; + + try { + if (!key_file.has_key(group_name, key_name)) + { + logger().info(@"get_string_setting : key file doesn't contain key '$key_name' in group '$group_name'"); + return default; + } + } + catch(KeyFileError e) { + logger().info(@"get_string_setting : KeyFileError checking if key '$key_name' exists in group '$group_name' (maybe ignorable?) : " + e.message); + } + + try { + // throws KeyFileError if key is not found + return key_file.get_string(group_name, key_name); + } + catch (KeyFileError e) { + logger().info("get_string_setting got KeyFileError (may be ignorable) : " + e.message); + } + return default; +}