#endif
#if IN_HEADER(__G_SETTINGS_H__)
+#if IN_FILE(__G_SETTINGS_SCHEMA_C__)
+g_settings_schema_exists
+#endif
+
#if IN_FILE(__G_SETTINGS_C__)
g_settings_apply
g_settings_bind
GType g_settings_get_type (void);
+gboolean g_settings_schema_exists (const gchar *schema_name);
GSettings * g_settings_new (const gchar *schema);
GSettings * g_settings_new_with_path (const gchar *schema,
const gchar *path);
*n_items = schema->priv->n_items;
return schema->priv->items;
}
+
+/**
+ * g_settings_schema_exists:
+ * @schema_name: the schema name to query for
+ * Returns: %TRUE if @schema_name exists
+ *
+ * Checks if the named schema is installed.
+ **/
+gboolean
+g_settings_schema_exists (const gchar *schema_name)
+{
+ GSList *source;
+
+ initialise_schema_sources ();
+
+ for (source = schema_sources; source; source = source->next)
+ {
+ GvdbTable *file = source->data;
+
+ if (gvdb_table_get_table (file, schema_name))
+ return TRUE;
+ }
+
+ return FALSE;
+}