[glib/wip/gsettings-work: 7/10] GSettingsSchemaKey: getters for type and default



commit 0395710814b871590327e64cf72b733042ac203e
Author: Ryan Lortie <desrt desrt ca>
Date:   Sat Oct 26 17:44:24 2013 -0700

    GSettingsSchemaKey: getters for type and default
    
    Add getters for the type of the key and the default value.

 docs/reference/gio/gio-sections.txt |    4 ++++
 gio/gsettingsschema.c               |   35 +++++++++++++++++++++++++++++++++++
 gio/gsettingsschema.h               |    5 +++++
 3 files changed, 44 insertions(+), 0 deletions(-)
---
diff --git a/docs/reference/gio/gio-sections.txt b/docs/reference/gio/gio-sections.txt
index 1923ef1..709e36e 100644
--- a/docs/reference/gio/gio-sections.txt
+++ b/docs/reference/gio/gio-sections.txt
@@ -2413,6 +2413,10 @@ g_settings_schema_key_ref
 g_settings_schema_key_unref
 
 <SUBSECTION>
+g_settings_schema_key_get_value_type
+g_settings_schema_key_get_default_value
+
+<SUBSECTION>
 g_settings_schema_key_get_summary
 g_settings_schema_key_get_description
 
diff --git a/gio/gsettingsschema.c b/gio/gsettingsschema.c
index 61e1fd5..7dcc200 100644
--- a/gio/gsettingsschema.c
+++ b/gio/gsettingsschema.c
@@ -1497,3 +1497,38 @@ g_settings_schema_key_get_description (GSettingsSchemaKey *key)
 
   return descriptions ? g_hash_table_lookup (descriptions, key->name) : NULL;
 }
+
+/**
+ * g_settings_schema_key_get_value_type:
+ * @key: a #GSettingsSchemaKey
+ *
+ * Gets the #GVariantType of @key.
+ *
+ * Returns: (transfer none): the type of @key
+ *
+ * Since: 2.40
+ **/
+const GVariantType *
+g_settings_schema_key_get_value_type (GSettingsSchemaKey *key)
+{
+  return g_variant_get_type (key->default_value);
+}
+
+/**
+ * g_settings_schema_key_get_default_value:
+ * @key: a #GSettingsSchemaKey
+ *
+ * Gets the default value for @key.
+ *
+ * Note that this is the default value according to the schema.  System
+ * administrator defaults and lockdown are not visible via this API.
+ *
+ * Returns: (transfer none): the default value for the key
+ *
+ * Since: 2.40
+ **/
+GVariant *
+g_settings_schema_key_get_default_value (GSettingsSchemaKey *key)
+{
+  return key->default_value;
+}
diff --git a/gio/gsettingsschema.h b/gio/gsettingsschema.h
index ee70a3f..19a3cef 100644
--- a/gio/gsettingsschema.h
+++ b/gio/gsettingsschema.h
@@ -78,6 +78,11 @@ GLIB_AVAILABLE_IN_2_40
 void                    g_settings_schema_key_unref                     (GSettingsSchemaKey     *key);
 
 GLIB_AVAILABLE_IN_2_40
+const GVariantType *    g_settings_schema_key_get_value_type            (GSettingsSchemaKey     *key);
+GLIB_AVAILABLE_IN_2_40
+GVariant *              g_settings_schema_key_get_default_value         (GSettingsSchemaKey     *key);
+
+GLIB_AVAILABLE_IN_2_40
 const gchar *           g_settings_schema_key_get_summary               (GSettingsSchemaKey     *key);
 GLIB_AVAILABLE_IN_2_40
 const gchar *           g_settings_schema_key_get_description           (GSettingsSchemaKey     *key);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]