summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEduardo Lima (Etrunko) <eduardo.lima@intel.com>2013-09-25 17:33:15 -0300
committerEduardo Lima (Etrunko) <eduardo.lima@intel.com>2013-09-26 17:33:24 -0300
commit8cace5af04363d1b51d89f3c92f723b9a941a31b (patch)
treed711dc07284642323c84f0805d1dddacf26acc61
parent4aae1cbc1c27c65943e354a6eba41e09cc4c8baa (diff)
downloadweekeyboard-8cace5af04363d1b51d89f3c92f723b9a941a31b.tar.gz
weekeyboard-8cace5af04363d1b51d89f3c92f723b9a941a31b.tar.bz2
weekeyboard-8cace5af04363d1b51d89f3c92f723b9a941a31b.zip
Fix implementation of wkb_ibus_config_eet_get_values()
Signed-off-by: Eduardo Lima (Etrunko) <eduardo.lima@intel.com>
-rw-r--r--src/wkb-ibus-config-eet.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/wkb-ibus-config-eet.c b/src/wkb-ibus-config-eet.c
index f72712c..55f0f25 100644
--- a/src/wkb-ibus-config-eet.c
+++ b/src/wkb-ibus-config-eet.c
@@ -813,6 +813,8 @@ wkb_ibus_config_eet_get_values(struct wkb_ibus_config_eet *config_eet, const cha
Eina_Bool ret = EINA_FALSE;
struct _config_section *sec;
struct wkb_config_key *key;
+ Eina_List *node;
+ Eldbus_Message_Iter *dict, *entry;
if (!(sec = _config_section_find(config_eet->ibus_config, section)))
{
@@ -820,6 +822,20 @@ wkb_ibus_config_eet_get_values(struct wkb_ibus_config_eet *config_eet, const cha
goto end;
}
+ dict = eldbus_message_iter_container_new(reply, 'a', "{sv}");
+
+ EINA_LIST_FOREACH(sec->keys, node, key)
+ {
+ entry = eldbus_message_iter_container_new(dict, 'e', NULL);
+ eldbus_message_iter_basic_append(entry, 's', wkb_config_key_id(key));
+ ret = wkb_config_key_get(key, entry);
+ eldbus_message_iter_container_close(dict, entry);
+ if (!ret)
+ break;
+ }
+
+ eldbus_message_iter_container_close(reply, dict);
+
end:
return ret;
}