summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElliott Sales de Andrade <quantum.analyst@gmail.com>2023-03-06 21:23:17 -0600
committerElliott Sales de Andrade <quantum.analyst@gmail.com>2023-03-06 21:23:17 -0600
commit9b796a382a61a8a85522d3f0f57153457818eeda (patch)
treed549e69e2908532e2208033345540734c6ff1670
parent2ef8156323096c79ac75fe23bd6d137bb046ce6d (diff)
downloadpidgin-9b796a382a61a8a85522d3f0f57153457818eeda.tar.gz
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/
-rw-r--r--ChangeLog.API2
-rw-r--r--finch/gntrequest.c67
-rw-r--r--libpurple/purplerequestfield.c24
-rw-r--r--libpurple/purplerequestfield.h20
-rw-r--r--pidgin/gtkrequest.c11
5 files changed, 40 insertions, 84 deletions
diff --git a/ChangeLog.API b/ChangeLog.API
index 04decdb5b8..65abca0ae2 100644
--- a/ChangeLog.API
+++ b/ChangeLog.API
@@ -712,6 +712,8 @@ version 3.0.0 (??/??/????):
* 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
diff --git a/finch/gntrequest.c b/finch/gntrequest.c
index 70b08f4b47..ef71c4ab4f 100644
--- a/finch/gntrequest.c
+++ b/finch/gntrequest.c
@@ -303,26 +303,30 @@ request_fields_cb(GntWidget *button, PurpleRequestFields *fields)
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 @@ request_fields_cb(GntWidget *button, PurpleRequestFields *fields)
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 @@ request_fields_cb(GntWidget *button, PurpleRequestFields *fields)
}
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 @@ request_fields_cb(GntWidget *button, PurpleRequestFields *fields)
}
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 @@ finch_request_fields(const char *title, const char *primary,
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 @@ finch_request_fields(const char *title, const char *primary,
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());
diff --git a/libpurple/purplerequestfield.c b/libpurple/purplerequestfield.c
index 5c6c412096..7897cf048d 100644
--- a/libpurple/purplerequestfield.c
+++ b/libpurple/purplerequestfield.c
@@ -389,30 +389,6 @@ purple_request_field_class_init(PurpleRequestFieldClass *klass) {
/******************************************************************************
* 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)
diff --git a/libpurple/purplerequestfield.h b/libpurple/purplerequestfield.h
index 09cf0de115..d00231ad1a 100644
--- a/libpurple/purplerequestfield.h
+++ b/libpurple/purplerequestfield.h
@@ -320,26 +320,6 @@ void purple_request_field_set_sensitive(PurpleRequestField *field,
*/
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 */
/**************************************************************************/
diff --git a/pidgin/gtkrequest.c b/pidgin/gtkrequest.c
index b76162be91..d55e5b326c 100644
--- a/pidgin/gtkrequest.c
+++ b/pidgin/gtkrequest.c
@@ -1089,10 +1089,12 @@ setup_entry_field(GtkWidget *entry, PurpleRequestField *field)
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 @@ pidgin_request_fields(const char *title, const char *primary,
}
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 @@ pidgin_request_fields(const char *title, const char *primary,
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);
}
}
}