pidgin/pidgin

Replace PurpleRequestField UI data with GObject data

14 months ago, Elliott Sales de Andrade
fe51d95f3c12
Parents 472dc8caeda3
Children 6dbe216fad28
Replace PurpleRequestField UI data with GObject data

Testing Done:
Compiled and opened Request Fields from Demo protocol.

Reviewed at https://reviews.imfreedom.org/r/2321/
--- a/ChangeLog.API Mon Mar 06 21:21:17 2023 -0600
+++ b/ChangeLog.API Mon Mar 06 21:23:17 2023 -0600
@@ -712,6 +712,8 @@
* purple_request_field_list_get_icons
* PurpleRequestFieldSensitivityCb
* purple_request_field_set_sensitivity_cb
+ * purple_request_field_get_ui_data
+ * purple_request_field_set_ui_data
* purple_request_fields_get_autosensitive
* PurpleRoomlistRoomType
* purple_roomlist_expand_category
--- a/finch/gntrequest.c Mon Mar 06 21:21:17 2023 -0600
+++ b/finch/gntrequest.c Mon Mar 06 21:23:17 2023 -0600
@@ -303,26 +303,30 @@
continue;
if (type == PURPLE_REQUEST_FIELD_BOOLEAN)
{
- GntWidget *check = purple_request_field_get_ui_data(field);
+ GntWidget *check = g_object_get_data(G_OBJECT(field),
+ "finch-ui-data");
gboolean value = gnt_check_box_get_checked(GNT_CHECK_BOX(check));
purple_request_field_bool_set_value(field, value);
}
else if (type == PURPLE_REQUEST_FIELD_STRING)
{
- GntWidget *entry = purple_request_field_get_ui_data(field);
+ GntWidget *entry = g_object_get_data(G_OBJECT(field),
+ "finch-ui-data");
const char *text = gnt_entry_get_text(GNT_ENTRY(entry));
purple_request_field_string_set_value(field, (text && *text) ? text : NULL);
}
else if (type == PURPLE_REQUEST_FIELD_INTEGER)
{
- GntWidget *entry = purple_request_field_get_ui_data(field);
+ GntWidget *entry = g_object_get_data(G_OBJECT(field),
+ "finch-ui-data");
const char *text = gnt_entry_get_text(GNT_ENTRY(entry));
int value = (text && *text) ? atoi(text) : 0;
purple_request_field_int_set_value(field, value);
}
else if (type == PURPLE_REQUEST_FIELD_CHOICE)
{
- GntWidget *combo = purple_request_field_get_ui_data(field);
+ GntWidget *combo = g_object_get_data(G_OBJECT(field),
+ "finch-ui-data");
gpointer value = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo));
purple_request_field_choice_set_value(field, value);
}
@@ -332,7 +336,8 @@
GList *list = purple_request_field_list_get_items(field);
if (purple_request_field_list_get_multi_select(field))
{
- GntWidget *tree = purple_request_field_get_ui_data(field);
+ GntWidget *tree = g_object_get_data(G_OBJECT(field),
+ "finch-ui-data");
for (; list; list = list->next)
{
@@ -346,7 +351,8 @@
}
else
{
- GntWidget *combo = purple_request_field_get_ui_data(field);
+ GntWidget *combo = g_object_get_data(G_OBJECT(field),
+ "finch-ui-data");
gpointer data = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo));
for (; list; list = list->next) {
@@ -365,7 +371,7 @@
}
else if (type == PURPLE_REQUEST_FIELD_ACCOUNT)
{
- GntWidget *combo = purple_request_field_get_ui_data(field);
+ GntWidget *combo = g_object_get_data(G_OBJECT(field), "finch-ui-data");
PurpleAccount *acc = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo));
purple_request_field_account_set_value(field, acc);
}
@@ -633,6 +639,7 @@
PurpleRequestField *field = fields->data;
PurpleRequestFieldType type = purple_request_field_get_field_type(field);
const char *label = purple_request_field_get_label(field);
+ GntWidget *widget = NULL;
if (!purple_request_field_is_visible(field))
continue;
@@ -651,38 +658,26 @@
gnt_box_add_widget(GNT_BOX(hbox), l);
}
- if (type == PURPLE_REQUEST_FIELD_BOOLEAN)
- {
- purple_request_field_set_ui_data(field, create_boolean_field(field));
- }
- else if (type == PURPLE_REQUEST_FIELD_STRING)
- {
- purple_request_field_set_ui_data(field, create_string_field(field, &username));
- }
- else if (type == PURPLE_REQUEST_FIELD_INTEGER)
- {
- purple_request_field_set_ui_data(field, create_integer_field(field));
- }
- else if (type == PURPLE_REQUEST_FIELD_CHOICE)
- {
- purple_request_field_set_ui_data(field, create_choice_field(field));
- }
- else if (type == PURPLE_REQUEST_FIELD_LIST)
- {
- purple_request_field_set_ui_data(field, create_list_field(field));
- }
- else if (type == PURPLE_REQUEST_FIELD_ACCOUNT)
- {
+ if (type == PURPLE_REQUEST_FIELD_BOOLEAN) {
+ widget = create_boolean_field(field);
+ } else if (type == PURPLE_REQUEST_FIELD_STRING) {
+ widget = create_string_field(field, &username);
+ } else if (type == PURPLE_REQUEST_FIELD_INTEGER) {
+ widget = create_integer_field(field);
+ } else if (type == PURPLE_REQUEST_FIELD_CHOICE) {
+ widget = create_choice_field(field);
+ } else if (type == PURPLE_REQUEST_FIELD_LIST) {
+ widget = create_list_field(field);
+ } else if (type == PURPLE_REQUEST_FIELD_ACCOUNT) {
accountlist = create_account_field(field);
- purple_request_field_set_ui_data(field, accountlist);
- }
- else
- {
- purple_request_field_set_ui_data(field, gnt_label_new_with_format(_("Not implemented yet."),
- GNT_TEXT_FLAG_BOLD));
+ widget = accountlist;
+ } else {
+ widget = gnt_label_new_with_format(_("Not implemented yet."),
+ GNT_TEXT_FLAG_BOLD);
}
gnt_box_set_alignment(GNT_BOX(hbox), GNT_ALIGN_MID);
- gnt_box_add_widget(GNT_BOX(hbox), GNT_WIDGET(purple_request_field_get_ui_data(field)));
+ gnt_box_add_widget(GNT_BOX(hbox), widget);
+ g_object_set_data(G_OBJECT(field), "finch-ui-data", widget);
}
if (grlist->next)
gnt_box_add_widget(GNT_BOX(box), gnt_hline_new());
--- a/libpurple/purplerequestfield.c Mon Mar 06 21:21:17 2023 -0600
+++ b/libpurple/purplerequestfield.c Mon Mar 06 21:23:17 2023 -0600
@@ -389,30 +389,6 @@
/******************************************************************************
* Public API
*****************************************************************************/
-gpointer
-purple_request_field_get_ui_data(PurpleRequestField *field) {
- PurpleRequestFieldPrivate *priv = NULL;
-
- g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), NULL);
-
- priv = purple_request_field_get_instance_private(field);
-
- return priv->ui_data;
-}
-
-void
-purple_request_field_set_ui_data(PurpleRequestField *field,
- gpointer ui_data)
-{
- PurpleRequestFieldPrivate *priv = NULL;
-
- g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field));
-
- priv = purple_request_field_get_instance_private(field);
-
- priv->ui_data = ui_data;
-}
-
PurpleRequestField *
purple_request_field_new(const char *id, const char *text,
PurpleRequestFieldType type)
--- a/libpurple/purplerequestfield.h Mon Mar 06 21:21:17 2023 -0600
+++ b/libpurple/purplerequestfield.h Mon Mar 06 21:23:17 2023 -0600
@@ -320,26 +320,6 @@
*/
gboolean purple_request_field_is_sensitive(PurpleRequestField *field);
-/**
- * purple_request_field_get_ui_data:
- * @field: The field.
- *
- * Returns the ui_data for a field.
- *
- * Returns: The UI data.
- */
-gpointer purple_request_field_get_ui_data(PurpleRequestField *field);
-
-/**
- * purple_request_field_set_ui_data:
- * @field: The field.
- * @ui_data: The UI data.
- *
- * Sets the ui_data for a field.
- */
-void purple_request_field_set_ui_data(PurpleRequestField *field,
- gpointer ui_data);
-
/**************************************************************************/
/* String Field API */
/**************************************************************************/
--- a/pidgin/gtkrequest.c Mon Mar 06 21:21:17 2023 -0600
+++ b/pidgin/gtkrequest.c Mon Mar 06 21:23:17 2023 -0600
@@ -1089,10 +1089,12 @@
const char *type_hint = purple_request_field_get_type_hint(fld);
if (purple_strequal(type_hint, "account"))
{
- optmenu = GTK_WIDGET(purple_request_field_get_ui_data(fld));
+ optmenu = GTK_WIDGET(g_object_get_data(G_OBJECT(fld),
+ "pidgin-ui-data"));
if (optmenu == NULL) {
optmenu = GTK_WIDGET(create_account_field(fld));
- purple_request_field_set_ui_data(fld, optmenu);
+ g_object_set_data(G_OBJECT(fld), "pidgin-ui-data",
+ optmenu);
}
break;
}
@@ -2129,7 +2131,8 @@
}
g_clear_pointer(&field_label, g_free);
- widget = GTK_WIDGET(purple_request_field_get_ui_data(field));
+ widget = GTK_WIDGET(g_object_get_data(G_OBJECT(field),
+ "pidgin-ui-data"));
if (widget == NULL)
{
if (type == PURPLE_REQUEST_FIELD_STRING)
@@ -2188,7 +2191,7 @@
1, row_num, 2 * cols - 1, 1);
}
- purple_request_field_set_ui_data(field, widget);
+ g_object_set_data(G_OBJECT(field), "pidgin-ui-data", widget);
}
}
}