pidgin/pidgin

Remove PurplePluginInfo->ui_data.

2020-10-07, Elliott Sales de Andrade
a144fe8ec06f
Parents 42fd60e3fbe8
Children 5f512eb3857f
Remove PurplePluginInfo->ui_data.

Testing Done:
Compile.

Reviewed at https://reviews.imfreedom.org/r/147/
--- a/finch/gntplugin.c Wed Oct 07 01:10:20 2020 -0500
+++ b/finch/gntplugin.c Wed Oct 07 01:14:43 2020 -0500
@@ -199,10 +199,11 @@
g_return_if_fail(plugin != NULL);
info = purple_plugin_get_info(plugin);
- ui_data = purple_plugin_info_get_ui_data(info);
+ ui_data = g_object_get_data(G_OBJECT(info), "finch-ui-data");
- if (!ui_data)
+ if (ui_data == NULL) {
return;
+ }
if (ui_data->type == FINCH_PLUGIN_UI_DATA_TYPE_REQUEST) {
purple_request_close(PURPLE_REQUEST_FIELDS,
@@ -214,8 +215,7 @@
gnt_widget_destroy(ui_data->u.window);
- g_free(ui_data);
- purple_plugin_info_set_ui_data(info, NULL);
+ g_object_set_data(G_OBJECT(info), "finch-ui-data", NULL);
}
static void
@@ -346,8 +346,13 @@
PurplePlugin *plugin = _plugin;
PurplePluginInfo *info = purple_plugin_get_info(plugin);
- g_free(info->ui_data);
- purple_plugin_info_set_ui_data(info, NULL);
+ g_object_set_data(G_OBJECT(info), "finch-ui-data", NULL);
+}
+
+static void
+close_plugin_info_request_cb(PurplePluginInfo *info)
+{
+ g_object_set_data(G_OBJECT(info), "finch-ui-data", NULL);
}
static void
@@ -370,10 +375,11 @@
info = purple_plugin_get_info(plugin);
- if (purple_plugin_info_get_ui_data(info))
+ if (g_object_get_data(G_OBJECT(info), "finch-ui-data")) {
return;
+ }
ui_data = g_new0(FinchPluginUiData, 1);
- purple_plugin_info_set_ui_data(info, ui_data);
+ g_object_set_data_full(G_OBJECT(info), "finch-ui-data", ui_data, g_free);
if (FINCH_IS_PLUGIN_INFO(info))
priv = finch_plugin_info_get_instance_private(
@@ -414,9 +420,8 @@
ui_data->type = FINCH_PLUGIN_UI_DATA_TYPE_REQUEST;
ui_data->u.request_handle = handle = pref_request_cb(plugin);
- purple_request_add_close_notify(handle,
- purple_callback_set_zero, &info->ui_data);
- purple_request_add_close_notify(handle, g_free, ui_data);
+ purple_request_add_close_notify(
+ handle, (GDestroyNotify)close_plugin_info_request_cb, info);
}
else if (purple_plugin_info_get_pref_frame_cb(info))
{
@@ -431,8 +436,7 @@
{
purple_notify_info(plugin, _("Error"), _("No configuration "
"options for this plugin."), NULL, NULL);
- g_free(ui_data);
- purple_plugin_info_set_ui_data(info, NULL);
+ g_object_set_data(G_OBJECT(info), "finch-ui-data", NULL);
}
}
--- a/libpurple/plugins.c Wed Oct 07 01:10:20 2020 -0500
+++ b/libpurple/plugins.c Wed Oct 07 01:14:43 2020 -0500
@@ -572,22 +572,6 @@
return priv->error;
}
-void
-purple_plugin_info_set_ui_data(PurplePluginInfo *info, gpointer ui_data)
-{
- g_return_if_fail(PURPLE_IS_PLUGIN_INFO(info));
-
- info->ui_data = ui_data;
-}
-
-gpointer
-purple_plugin_info_get_ui_data(PurplePluginInfo *info)
-{
- g_return_val_if_fail(PURPLE_IS_PLUGIN_INFO(info), NULL);
-
- return info->ui_data;
-}
-
/**************************************************************************
* PluginAction API
**************************************************************************/
--- a/libpurple/plugins.h Wed Oct 07 01:10:20 2020 -0500
+++ b/libpurple/plugins.h Wed Oct 07 01:14:43 2020 -0500
@@ -139,16 +139,11 @@
/**
* PurplePluginInfo:
- * @ui_data: The UI data associated with the plugin. This is a convenience
- * field provided to the UIs -- it is not used by the libpurple core.
*
* Holds information about a plugin.
*/
struct _PurplePluginInfo {
GPluginPluginInfo parent;
-
- /*< public >*/
- gpointer ui_data;
};
/**
@@ -493,27 +488,6 @@
*/
const gchar *purple_plugin_info_get_error(PurplePluginInfo *info);
-/**
- * purple_plugin_info_set_ui_data:
- * @info: The plugin's info instance.
- * @ui_data: A pointer to associate with this object.
- *
- * Set the UI data associated with a plugin.
- */
-void purple_plugin_info_set_ui_data(PurplePluginInfo *info, gpointer ui_data);
-
-/**
- * purple_plugin_info_get_ui_data:
- * @info: The plugin's info instance.
- *
- * Returns the UI data associated with a plugin.
- *
- * Returns: The UI data associated with this plugin. This is a
- * convenience field provided to the UIs--it is not
- * used by the libpurple core.
- */
-gpointer purple_plugin_info_get_ui_data(PurplePluginInfo *info);
-
/**************************************************************************/
/* PluginAction API */
/**************************************************************************/
--- a/pidgin/pidginpluginsdialog.c Wed Oct 07 01:10:20 2020 -0500
+++ b/pidgin/pidginpluginsdialog.c Wed Oct 07 01:14:43 2020 -0500
@@ -116,7 +116,7 @@
PurplePluginInfo *info = PURPLE_PLUGIN_INFO(ginfo);
PidginPluginUiData *ui_data;
- ui_data = purple_plugin_info_get_ui_data(info);
+ ui_data = g_object_get_data(G_OBJECT(info), "pidgin-ui-data");
if (ui_data == NULL) {
purple_debug_info("PidginPluginsDialog", "failed to find uidata\n");
return;
@@ -136,8 +136,7 @@
purple_plugin_pref_frame_destroy(ui_data->u.frame.pref_frame);
}
- g_free(ui_data);
- purple_plugin_info_set_ui_data(info, NULL);
+ g_object_set_data(G_OBJECT(info), "pidgin-ui-data", NULL);
}
/******************************************************************************
@@ -186,6 +185,12 @@
}
static void
+pidgin_plugins_dialog_request_close_cb(PurplePluginInfo *info)
+{
+ g_object_set_data(G_OBJECT(info), "pidgin-ui-data", NULL);
+}
+
+static void
pidgin_plugins_dialog_config_plugin_cb(GtkWidget *button, gpointer data) {
PidginPluginsDialog *dialog = PIDGIN_PLUGINS_DIALOG(data);
PidginPluginUiData *ui_data;
@@ -204,7 +209,7 @@
ginfo = gplugin_plugin_get_info(plugin);
info = PURPLE_PLUGIN_INFO(ginfo);
- if(purple_plugin_info_get_ui_data(info)) {
+ if (g_object_get_data(G_OBJECT(info), "pidgin-ui-data")) {
g_object_unref(G_OBJECT(plugin));
return;
}
@@ -213,7 +218,7 @@
pref_request_cb = purple_plugin_info_get_pref_request_cb(info);
ui_data = g_new0(PidginPluginUiData, 1);
- purple_plugin_info_set_ui_data(info, ui_data);
+ g_object_set_data_full(G_OBJECT(info), "pidgin-ui-data", ui_data, g_free);
prefs_count = 0;
if (pref_frame_cb) {
@@ -241,10 +246,9 @@
if (pref_request_cb) {
ui_data->type = PIDGIN_PLUGIN_UI_DATA_TYPE_REQUEST;
ui_data->u.request_handle = pref_request_cb(plugin);
- purple_request_add_close_notify(ui_data->u.request_handle,
- purple_callback_set_zero, &info->ui_data);
- purple_request_add_close_notify(ui_data->u.request_handle,
- g_free, ui_data);
+ purple_request_add_close_notify(
+ ui_data->u.request_handle,
+ (GDestroyNotify)pidgin_plugins_dialog_request_close_cb, info);
} else {
GtkWidget *box, *pdialog, *content, *sw;
@@ -254,8 +258,7 @@
if (box == NULL) {
purple_debug_error("gtkplugin",
"Failed to display prefs frame");
- g_free(ui_data);
- purple_plugin_info_set_ui_data(info, NULL);
+ g_object_set_data(G_OBJECT(info), "pidgin-ui-data", NULL);
g_object_unref(G_OBJECT(plugin));
return;
}