mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-23 18:52:09 +01:00
GSettings: add g_settings_is_set()
Also add the equivalent vfunc to the backend. https://bugzilla.gnome.org/show_bug.cgi?id=668233
This commit is contained in:
parent
2630b719fc
commit
7f361b41ae
@ -2367,6 +2367,7 @@ g_settings_new_full
|
|||||||
g_settings_sync
|
g_settings_sync
|
||||||
g_settings_get_value
|
g_settings_get_value
|
||||||
g_settings_set_value
|
g_settings_set_value
|
||||||
|
g_settings_is_set
|
||||||
g_settings_is_writable
|
g_settings_is_writable
|
||||||
g_settings_delay
|
g_settings_delay
|
||||||
g_settings_apply
|
g_settings_apply
|
||||||
|
@ -1175,6 +1175,7 @@ g_settings_get_child
|
|||||||
g_settings_get_has_unapplied
|
g_settings_get_has_unapplied
|
||||||
g_settings_get_type
|
g_settings_get_type
|
||||||
g_settings_get_value
|
g_settings_get_value
|
||||||
|
g_settings_is_set
|
||||||
g_settings_is_writable
|
g_settings_is_writable
|
||||||
g_settings_new
|
g_settings_new
|
||||||
g_settings_new_with_backend
|
g_settings_new_with_backend
|
||||||
|
@ -2033,7 +2033,7 @@ g_settings_get_has_unapplied (GSettings *settings)
|
|||||||
return g_settings_backend_get_has_unapplied (settings->priv->backend);
|
return g_settings_backend_get_has_unapplied (settings->priv->backend);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Extra API (reset, sync, get_child, is_writable, list_*, ranges) {{{1 */
|
/* Extra API (reset, sync, get_child, is_set, is_writable, list_*, ranges) {{{1 */
|
||||||
/**
|
/**
|
||||||
* g_settings_reset:
|
* g_settings_reset:
|
||||||
* @settings: a #GSettings object
|
* @settings: a #GSettings object
|
||||||
@ -2104,6 +2104,45 @@ g_settings_is_writable (GSettings *settings,
|
|||||||
return writable;
|
return writable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_settings_is_set:
|
||||||
|
* @settings: a #GSettings object
|
||||||
|
* @name: the name of a key
|
||||||
|
*
|
||||||
|
* Determines if a key is "set".
|
||||||
|
*
|
||||||
|
* A key being set means (more or less) that g_settings_set() has been
|
||||||
|
* called on it more recently than the last call to g_settings_reset().
|
||||||
|
* This does not include system-level default settings.
|
||||||
|
*
|
||||||
|
* Another way of looking at it is that g_settings_reset() will only
|
||||||
|
* change the value of a key if it was already set. It is possible,
|
||||||
|
* however, that a key is explicitly set to the default value.
|
||||||
|
*
|
||||||
|
* Keys that are "set" will not change if the default value for the key
|
||||||
|
* is changed (ie: by the system administrator) unless it is also locked
|
||||||
|
* down.
|
||||||
|
*
|
||||||
|
* Returns: %TRUE if the key is set
|
||||||
|
*
|
||||||
|
* Since: 2.34
|
||||||
|
**/
|
||||||
|
gboolean
|
||||||
|
g_settings_is_set (GSettings *settings,
|
||||||
|
const gchar *key)
|
||||||
|
{
|
||||||
|
gboolean set;
|
||||||
|
gchar *path;
|
||||||
|
|
||||||
|
g_return_val_if_fail (G_IS_SETTINGS (settings), FALSE);
|
||||||
|
|
||||||
|
path = g_strconcat (settings->priv->path, key, NULL);
|
||||||
|
set = g_settings_backend_is_set (settings->priv->backend, path);
|
||||||
|
g_free (path);
|
||||||
|
|
||||||
|
return set;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* g_settings_get_child:
|
* g_settings_get_child:
|
||||||
* @settings: a #GSettings object
|
* @settings: a #GSettings object
|
||||||
|
@ -605,6 +605,24 @@ g_settings_backend_get_writable (GSettingsBackend *backend,
|
|||||||
->get_writable (backend, key);
|
->get_writable (backend, key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*< private >
|
||||||
|
* g_settings_backend_is_set:
|
||||||
|
* @backend: a #GSettingsBackend Implementation
|
||||||
|
* @key: the name of a key
|
||||||
|
*
|
||||||
|
* Finds out if a key is "set". See g_settings_is_set().
|
||||||
|
*
|
||||||
|
* Returns: %TRUE if the key is set
|
||||||
|
*/
|
||||||
|
gboolean
|
||||||
|
g_settings_backend_is_set (GSettingsBackend *backend,
|
||||||
|
const gchar *key)
|
||||||
|
{
|
||||||
|
return G_SETTINGS_BACKEND_GET_CLASS (backend)
|
||||||
|
->is_set (backend, key);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*< private >
|
/*< private >
|
||||||
* g_settings_backend_unsubscribe:
|
* g_settings_backend_unsubscribe:
|
||||||
* @backend: a #GSettingsBackend
|
* @backend: a #GSettingsBackend
|
||||||
|
@ -70,6 +70,9 @@ struct _GSettingsBackendClass
|
|||||||
const GVariantType *expected_type,
|
const GVariantType *expected_type,
|
||||||
gboolean default_value);
|
gboolean default_value);
|
||||||
|
|
||||||
|
gboolean (* is_set) (GSettingsBackend *backend,
|
||||||
|
const gchar *key);
|
||||||
|
|
||||||
gboolean (* get_writable) (GSettingsBackend *backend,
|
gboolean (* get_writable) (GSettingsBackend *backend,
|
||||||
const gchar *key);
|
const gchar *key);
|
||||||
|
|
||||||
|
@ -53,6 +53,9 @@ G_GNUC_INTERNAL
|
|||||||
void g_settings_backend_reset (GSettingsBackend *backend,
|
void g_settings_backend_reset (GSettingsBackend *backend,
|
||||||
const gchar *key);
|
const gchar *key);
|
||||||
G_GNUC_INTERNAL
|
G_GNUC_INTERNAL
|
||||||
|
gboolean g_settings_backend_is_set (GSettingsBackend *backend,
|
||||||
|
const char *key);
|
||||||
|
G_GNUC_INTERNAL
|
||||||
gboolean g_settings_backend_get_writable (GSettingsBackend *backend,
|
gboolean g_settings_backend_get_writable (GSettingsBackend *backend,
|
||||||
const char *key);
|
const char *key);
|
||||||
G_GNUC_INTERNAL
|
G_GNUC_INTERNAL
|
||||||
|
Loading…
x
Reference in New Issue
Block a user