diff options
author | Richard Hult <rhult@src.gnome.org> | 2003-11-26 16:53:42 +0000 |
---|---|---|
committer | Richard Hult <rhult@src.gnome.org> | 2003-11-26 16:53:42 +0000 |
commit | 3b48d2ff51de261bb4293f3b2c755cf1ef339d51 (patch) | |
tree | d3cbe857e3b8a142111b7eaf3a51889ebccc7e7b | |
parent | 5c8622fa25601a36c48d77506b2ba750152942a7 (diff) | |
download | gconf-3b48d2ff51de261bb4293f3b2c755cf1ef339d51.tar.gz |
And all_entries
-rw-r--r-- | gconf/gconf-dbus-utils.c | 3 | ||||
-rw-r--r-- | gconf/gconf-dbus.c | 27 |
2 files changed, 17 insertions, 13 deletions
diff --git a/gconf/gconf-dbus-utils.c b/gconf/gconf-dbus-utils.c index 1a9c0bc8..41eb235f 100644 --- a/gconf/gconf-dbus-utils.c +++ b/gconf/gconf-dbus-utils.c @@ -698,6 +698,9 @@ gconf_dbus_get_entry_values_from_message_iter (DBusMessageIter *iter, { DBusMessageIter dict; + if (dbus_message_iter_get_arg_type (iter) != DBUS_TYPE_DICT) + return FALSE; + dbus_message_iter_init_dict_iterator (iter, &dict); while (1) diff --git a/gconf/gconf-dbus.c b/gconf/gconf-dbus.c index 4d92920c..bf1b287d 100644 --- a/gconf/gconf-dbus.c +++ b/gconf/gconf-dbus.c @@ -1467,24 +1467,24 @@ gconf_engine_all_entries (GConfEngine* conf, const gchar* dir, GError** err) } g_return_val_if_fail (err == NULL || *err == NULL, FALSE); - dbus_message_iter_init (message, &iter); + dbus_message_iter_init (reply, &iter); - while (0) /* FIXME: loop through and get the key/values */ + while (1) { - GConfEntry* entry; + GConfEntry *entry; GConfValue *value; - value = NULL; /*gconf_dbus_create_gconf_value_from_message (&iter);*/ + if (!gconf_dbus_get_entry_values_from_message_iter (&iter, + &key, + &value, + &is_default, + &is_writable, + &schema_name)) + break; - /* FIXME: get real values */ - key = NULL; - is_default = FALSE; - is_writable = FALSE; - schema_name = NULL; - entry = gconf_entry_new_nocopy (gconf_concat_dir_and_key (dir, key), value); - + gconf_entry_set_is_default (entry, is_default); gconf_entry_set_is_writable (entry, is_writable); @@ -1494,10 +1494,11 @@ gconf_engine_all_entries (GConfEngine* conf, const gchar* dir, GError** err) entries = g_slist_prepend (entries, entry); - dbus_message_iter_next (&iter); - dbus_free (key); dbus_free (schema_name); + + if (!dbus_message_iter_next (&iter)) + break; } dbus_message_unref (reply); |