--- a/gplugin/gplugin-plugin-info.c Mon Sep 12 04:33:39 2022 -0500
+++ b/gplugin/gplugin-plugin-info.c Mon Sep 12 04:34:25 2022 -0500
@@ -43,8 +43,8 @@
+ gchar *settings_schema; @@ -93,6 +93,7 @@
static GParamSpec *properties[N_PROPERTIES] = {
@@ -206,6 +207,17 @@
+gplugin_plugin_info_set_settings_schema(GPluginPluginInfo *info, + const gchar *settings_schema) + GPluginPluginInfoPrivate *priv = + gplugin_plugin_info_get_instance_private(info); + g_free(priv->settings_schema); + priv->settings_schema = g_strdup(settings_schema); gplugin_plugin_info_set_license_id(
@@ -419,6 +431,11 @@
gplugin_plugin_info_get_unloadable(info));
+ case PROP_SETTINGS_SCHEMA: + gplugin_plugin_info_get_settings_schema(info)); G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
@@ -509,6 +526,11 @@
g_value_get_boolean(value));
+ case PROP_SETTINGS_SCHEMA: + gplugin_plugin_info_set_settings_schema( + g_value_get_string(value)); G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
@@ -525,6 +547,7 @@
g_clear_pointer(&priv->provides, g_strfreev);
g_clear_pointer(&priv->name, g_free);
g_clear_pointer(&priv->version, g_free);
+ g_clear_pointer(&priv->settings_schema, g_free); g_clear_pointer(&priv->license_id, g_free);
g_clear_pointer(&priv->license_text, g_free);
g_clear_pointer(&priv->license_url, g_free);
@@ -710,6 +733,20 @@
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+ * GPluginPluginInfo:settings-schema: + * The ID of the [class@Gio.Settings] schema for the plugin. + properties[PROP_SETTINGS_SCHEMA] = g_param_spec_string( + "The GSettings schema of the plugin", + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); * GPluginPluginInfo:license-id:
* The short name of the license.
@@ -1087,6 +1124,28 @@
+ * gplugin_plugin_info_get_settings_schema: + * @info: The plugin info instance. + * Returns the ID of the [class@Gio.Settings] schema as specified in @info. + * Returns: The schema ID from @info. +gplugin_plugin_info_get_settings_schema(GPluginPluginInfo *info) + GPluginPluginInfoPrivate *priv = NULL; + g_return_val_if_fail(GPLUGIN_IS_PLUGIN_INFO(info), NULL); + priv = gplugin_plugin_info_get_instance_private(info); + return priv->settings_schema; * gplugin_plugin_info_get_license_id:
* @info: The plugin info instance.
--- a/gplugin/gplugin-plugin-info.h Mon Sep 12 04:33:39 2022 -0500
+++ b/gplugin/gplugin-plugin-info.h Mon Sep 12 04:34:25 2022 -0500
@@ -63,6 +63,7 @@
gboolean gplugin_plugin_info_get_load_on_query(GPluginPluginInfo *info);
const gchar *gplugin_plugin_info_get_name(GPluginPluginInfo *info);
const gchar *gplugin_plugin_info_get_version(GPluginPluginInfo *info);
+const gchar *gplugin_plugin_info_get_settings_schema(GPluginPluginInfo *info); const gchar *gplugin_plugin_info_get_license_id(GPluginPluginInfo *info);
const gchar *gplugin_plugin_info_get_license_text(GPluginPluginInfo *info);
const gchar *gplugin_plugin_info_get_license_url(GPluginPluginInfo *info);