GSettings: add g_settings_list_keys()

Second half of bug #622554.
This commit is contained in:
Ryan Lortie 2010-06-24 02:15:15 -04:00
parent 6218d8047a
commit 123699465d
4 changed files with 36 additions and 1 deletions

View File

@ -2135,6 +2135,7 @@ GSettingsBackendPrivate
<FILE>gsettings</FILE>
<TITLE>GSettings</TITLE>
GSettings
g_settings_schema_exists
g_settings_new
g_settings_new_with_path
g_settings_new_with_backend
@ -2148,6 +2149,7 @@ g_settings_apply
g_settings_revert
g_settings_get_has_unapplied
g_settings_get_child
g_settings_list_keys
<SUBSECTION Convenience>
g_settings_get

View File

@ -1478,6 +1478,7 @@ g_settings_set_boolean
g_settings_get_enum
g_settings_set_enum
g_settings_sync
g_settings_list_keys
#endif
#endif

View File

@ -1762,7 +1762,7 @@ g_settings_get_has_unapplied (GSettings *settings)
G_DELAYED_SETTINGS_BACKEND (settings->priv->backend));
}
/* Extra API (sync, get_child, is_writable) {{{1 */
/* Extra API (sync, get_child, is_writable, list_keys) {{{1 */
/**
* g_settings_sync:
* @context: the context to sync, or %NULL
@ -1855,6 +1855,37 @@ g_settings_get_child (GSettings *settings,
return child;
}
/**
* g_settings_list_keys:
* @settings: a #GSettings object
* Returns: a list of the keys on @settings
*
* Introspects the list of keys on @settings.
*
* You should probably not be calling this function from "normal" code
* (since you should already know what keys are in your schema). This
* function is intended for introspection reasons.
*
* You should free the return value with g_strfreev() when you are done
* with it.
*/
gchar **
g_settings_list_keys (GSettings *settings)
{
const GQuark *keys;
gchar **strv;
gint n_keys;
gint i;
keys = g_settings_schema_list (settings->priv->schema, &n_keys);
strv = g_new (gchar *, n_keys + 1);
for (i = 0; i < n_keys; i++)
strv[i] = g_strdup (g_quark_to_string (keys[i]));
strv[i] = NULL;
return strv;
}
/* Binding {{{1 */
typedef struct
{

View File

@ -79,6 +79,7 @@ GSettings * g_settings_new_with_backend (const g
GSettings * g_settings_new_with_backend_and_path (const gchar *schema,
GSettingsBackend *backend,
const gchar *path);
gchar ** g_settings_list_keys (GSettings *settings);
gboolean g_settings_set_value (GSettings *settings,
const gchar *key,