Fix implementation of wkb_ibus_config_eet_get_values()
authorEduardo Lima (Etrunko) <eduardo.lima@intel.com>
Wed, 25 Sep 2013 20:33:15 +0000 (17:33 -0300)
committerEduardo Lima (Etrunko) <eduardo.lima@intel.com>
Thu, 26 Sep 2013 20:33:24 +0000 (17:33 -0300)
Signed-off-by: Eduardo Lima (Etrunko) <eduardo.lima@intel.com>
src/wkb-ibus-config-eet.c

index f72712cfd603d11beffa79858206d7c63e550a07..55f0f2583a8a9fa7f73faef60a3f9f325f488234 100644 (file)
@@ -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;
 }