pidgin/pidgin

Convert PurpleRequestGroup into a GObject

14 months ago, Elliott Sales de Andrade
18acb99a0fa6
Parents 6dbe216fad28
Children 118067ca0367
Convert PurpleRequestGroup into a GObject

And go through with the renaming of `PurpleRequestFieldGroup` to `PurpleRequestGroup`.

Also, this now implements `GListModel`, but nothing is yet updated to use that.

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

Reviewed at https://reviews.imfreedom.org/r/2322/
--- a/ChangeLog.API Mon Mar 06 21:31:59 2023 -0600
+++ b/ChangeLog.API Tue Mar 07 00:22:36 2023 -0600
@@ -235,6 +235,9 @@
details.
* PurpleRequestField is now a GObject. Please see the documentation
for details.
+ * PurpleRequestFieldGroup is now a GObject, and renamed to
+ PurpleRequestGroup. Please see the documentation for
+ details.
* purple_request_field_get_field_type_hint renamed to
purple_request_field_get_type_hint
* purple_request_field_group_get_tab
@@ -708,12 +711,15 @@
* purple_request_certificate
* purple_request_field_choice_set_data_destructor. Use
purple_request_field_choice_add_full instead
+ * purple_request_field_destroy. Use g_object_unref instead.
* purple_request_field_list_add
* 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_field_group_destroy. Use g_object_unref
+ instead.
* purple_request_fields_get_autosensitive
* PurpleRoomlistRoomType
* purple_roomlist_expand_category
--- a/finch/gntblist.c Mon Mar 06 21:31:59 2023 -0600
+++ b/finch/gntblist.c Tue Mar 07 00:22:36 2023 -0600
@@ -583,29 +583,29 @@
const char *grp, const char *alias)
{
PurpleRequestFields *fields = purple_request_fields_new();
- PurpleRequestFieldGroup *group = purple_request_field_group_new(NULL);
+ PurpleRequestGroup *group = purple_request_group_new(NULL);
PurpleRequestField *field;
purple_request_fields_add_group(fields, group);
field = purple_request_field_string_new("screenname", _("Username"), username, FALSE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_string_new("alias", _("Alias (optional)"), alias, FALSE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_string_new("invite", _("Invite message (optional)"), NULL, FALSE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_string_new("group", _("Add in group"), grp, FALSE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
purple_request_field_set_type_hint(field, "group");
field = purple_request_field_account_new("account", _("Account"), NULL);
purple_request_field_account_set_show_all(field, FALSE);
if (account)
purple_request_field_account_set_value(field, account);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
purple_request_fields(NULL, _("Add Buddy"), NULL, _("Please enter buddy information."),
fields,
@@ -685,7 +685,7 @@
const char *alias, const char *name)
{
PurpleRequestFields *fields = purple_request_fields_new();
- PurpleRequestFieldGroup *group = purple_request_field_group_new(NULL);
+ PurpleRequestGroup *group = purple_request_group_new(NULL);
PurpleRequestField *field;
purple_request_fields_add_group(fields, group);
@@ -694,20 +694,20 @@
purple_request_field_account_set_show_all(field, FALSE);
if (account)
purple_request_field_account_set_value(field, account);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_string_new("name", _("Name"), name, FALSE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_string_new("alias", _("Alias"), alias, FALSE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_string_new("group", _("Group"), grp ? purple_group_get_name(grp) : NULL, FALSE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
purple_request_field_set_type_hint(field, "group");
field = purple_request_field_bool_new("autojoin", _("Auto-join"), FALSE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
purple_request_fields(NULL, _("Add Chat"), NULL,
_("You can edit more information from the context menu later."),
@@ -985,7 +985,7 @@
GList *groups, *fields;
for (groups = purple_request_fields_get_groups(allfields); groups; groups = groups->next) {
- fields = purple_request_field_group_get_fields(groups->data);
+ fields = purple_request_group_get_fields(groups->data);
for (; fields; fields = fields->next) {
PurpleRequestField *field = fields->data;
const char *id;
@@ -1010,7 +1010,7 @@
chat_components_edit(G_GNUC_UNUSED PurpleBlistNode *selected, PurpleChat *chat)
{
PurpleRequestFields *fields = purple_request_fields_new();
- PurpleRequestFieldGroup *group = purple_request_field_group_new(NULL);
+ PurpleRequestGroup *group = purple_request_group_new(NULL);
PurpleRequestField *field;
GList *parts, *iter;
PurpleProtocol *protocol;
@@ -1041,7 +1041,7 @@
if (pce->required)
purple_request_field_set_required(field, TRUE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
g_free(pce);
}
@@ -2535,18 +2535,18 @@
send_im_select(G_GNUC_UNUSED GntMenuItem *item, G_GNUC_UNUSED gpointer n)
{
PurpleRequestFields *fields;
- PurpleRequestFieldGroup *group;
+ PurpleRequestGroup *group;
PurpleRequestField *field;
fields = purple_request_fields_new();
- group = purple_request_field_group_new(NULL);
+ group = purple_request_group_new(NULL);
purple_request_fields_add_group(fields, group);
field = purple_request_field_string_new("screenname", _("Name"), NULL, FALSE);
purple_request_field_set_type_hint(field, "screenname");
purple_request_field_set_required(field, TRUE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_account_new("account", _("Account"), NULL);
purple_request_field_set_type_hint(field, "account");
@@ -2554,7 +2554,7 @@
(purple_connections_get_all() != NULL &&
purple_connections_get_all()->next != NULL));
purple_request_field_set_required(field, TRUE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
purple_request_fields(
purple_blist_get_default(), _("New Instant Message"), NULL,
@@ -2611,17 +2611,17 @@
join_chat_select(G_GNUC_UNUSED GntMenuItem *item, G_GNUC_UNUSED gpointer n)
{
PurpleRequestFields *fields;
- PurpleRequestFieldGroup *group;
+ PurpleRequestGroup *group;
PurpleRequestField *field;
fields = purple_request_fields_new();
- group = purple_request_field_group_new(NULL);
+ group = purple_request_group_new(NULL);
purple_request_fields_add_group(fields, group);
field = purple_request_field_string_new("chat", _("Channel"), NULL, FALSE);
purple_request_field_set_required(field, TRUE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_account_new("account", _("Account"), NULL);
purple_request_field_set_type_hint(field, "account");
@@ -2629,7 +2629,7 @@
(purple_connections_get_all() != NULL &&
purple_connections_get_all()->next != NULL));
purple_request_field_set_required(field, TRUE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
purple_request_fields(
purple_blist_get_default(), _("Join a Chat"), NULL,
--- a/finch/gntplugin.c Mon Mar 06 21:31:59 2023 -0600
+++ b/finch/gntplugin.c Tue Mar 07 00:22:36 2023 -0600
@@ -535,7 +535,7 @@
{
PurpleRequestField *field;
PurpleRequestFields *fields;
- PurpleRequestFieldGroup *group = NULL;
+ PurpleRequestGroup *group = NULL;
GList *prefs;
GList *stringlist = NULL;
GntWidget *ret = NULL;
@@ -553,9 +553,9 @@
if(purple_plugin_pref_get_pref_type(pref) == PURPLE_PLUGIN_PREF_INFO) {
field = purple_request_field_label_new("*", purple_plugin_pref_get_label(pref));
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
} else {
- group = purple_request_field_group_new(label);
+ group = purple_request_group_new(label);
purple_request_fields_add_group(fields, group);
}
continue;
@@ -623,10 +623,10 @@
if (field) {
if (group == NULL) {
- group = purple_request_field_group_new(_("Preferences"));
+ group = purple_request_group_new(_("Preferences"));
purple_request_fields_add_group(fields, group);
}
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
}
}
--- a/finch/gntprefs.c Mon Mar 06 21:31:59 2023 -0600
+++ b/finch/gntprefs.c Tue Mar 07 00:22:36 2023 -0600
@@ -240,16 +240,16 @@
add_pref_group(PurpleRequestFields *fields, const char *title, Prefs *prefs)
{
PurpleRequestField *field;
- PurpleRequestFieldGroup *group;
+ PurpleRequestGroup *group;
int i;
- group = purple_request_field_group_new(title);
+ group = purple_request_group_new(title);
purple_request_fields_add_group(fields, group);
for (i = 0; prefs[i].pref; i++)
{
field = get_pref_field(prefs + i);
if (field)
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
}
}
--- a/finch/gntrequest.c Mon Mar 06 21:31:59 2023 -0600
+++ b/finch/gntrequest.c Tue Mar 07 00:22:36 2023 -0600
@@ -292,8 +292,8 @@
* here, although it can be done. */
for (list = purple_request_fields_get_groups(fields); list; list = list->next)
{
- PurpleRequestFieldGroup *group = list->data;
- GList *fields = purple_request_field_group_get_fields(group);
+ PurpleRequestGroup *group = list->data;
+ GList *fields = purple_request_group_get_fields(group);
for (; fields ; fields = fields->next)
{
@@ -625,10 +625,10 @@
gnt_box_set_fill(GNT_BOX(box), TRUE);
for (grlist = purple_request_fields_get_groups(allfields); grlist; grlist = grlist->next)
{
- PurpleRequestFieldGroup *group = grlist->data;
- GList *fields = purple_request_field_group_get_fields(group);
+ PurpleRequestGroup *group = grlist->data;
+ GList *fields = purple_request_group_get_fields(group);
GntWidget *hbox;
- const char *title = purple_request_field_group_get_title(group);
+ const char *title = purple_request_group_get_title(group);
if (title)
gnt_box_add_widget(GNT_BOX(box),
@@ -861,8 +861,8 @@
{
GList *list;
for (list = purple_request_fields_get_groups(allfields); list; list = list->next) {
- PurpleRequestFieldGroup *group = list->data;
- GList *fields = purple_request_field_group_get_fields(group);
+ PurpleRequestGroup *group = list->data;
+ GList *fields = purple_request_group_get_fields(group);
for (; fields ; fields = fields->next) {
PurpleRequestField *field = fields->data;
--- a/libpurple/account.c Mon Mar 06 21:31:59 2023 -0600
+++ b/libpurple/account.c Tue Mar 07 00:22:36 2023 -0600
@@ -1063,7 +1063,7 @@
{
gchar *primary;
const gchar *username;
- PurpleRequestFieldGroup *group;
+ PurpleRequestGroup *group;
PurpleRequestField *field;
PurpleRequestFields *fields;
@@ -1075,16 +1075,16 @@
purple_account_get_protocol_name(account));
fields = purple_request_fields_new();
- group = purple_request_field_group_new(NULL);
+ group = purple_request_group_new(NULL);
purple_request_fields_add_group(fields, group);
field = purple_request_field_string_new("password", _("Enter Password"), NULL, FALSE);
purple_request_field_string_set_masked(field, TRUE);
purple_request_field_set_required(field, TRUE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_bool_new("remember", _("Save password"), FALSE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
purple_request_fields(account, NULL, primary, NULL, fields, _("OK"),
ok_cb, _("Cancel"), cancel_cb,
@@ -1096,7 +1096,7 @@
purple_account_request_change_password(PurpleAccount *account)
{
PurpleRequestFields *fields;
- PurpleRequestFieldGroup *group;
+ PurpleRequestGroup *group;
PurpleRequestField *field;
PurpleConnection *gc;
PurpleProtocol *protocol = NULL;
@@ -1111,7 +1111,7 @@
fields = purple_request_fields_new();
- group = purple_request_field_group_new(NULL);
+ group = purple_request_group_new(NULL);
purple_request_fields_add_group(fields, group);
field = purple_request_field_string_new("password", _("Original password"),
@@ -1119,7 +1119,7 @@
purple_request_field_string_set_masked(field, TRUE);
if (!protocol || !(purple_protocol_get_options(protocol) & OPT_PROTO_PASSWORD_OPTIONAL))
purple_request_field_set_required(field, TRUE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_string_new("new_password_1",
_("New password"),
@@ -1127,7 +1127,7 @@
purple_request_field_string_set_masked(field, TRUE);
if (!protocol || !(purple_protocol_get_options(protocol) & OPT_PROTO_PASSWORD_OPTIONAL))
purple_request_field_set_required(field, TRUE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_string_new("new_password_2",
_("New password (again)"),
@@ -1135,7 +1135,7 @@
purple_request_field_string_set_masked(field, TRUE);
if (!protocol || !(purple_protocol_get_options(protocol) & OPT_PROTO_PASSWORD_OPTIONAL))
purple_request_field_set_required(field, TRUE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
g_snprintf(primary, sizeof(primary), _("Change password for %s"),
purple_contact_info_get_username(PURPLE_CONTACT_INFO(account)));
--- a/libpurple/plugins/idle/idle.c Mon Mar 06 21:31:59 2023 -0600
+++ b/libpurple/plugins/idle/idle.c Tue Mar 07 00:22:36 2023 -0600
@@ -159,18 +159,18 @@
/* Use the super fancy request API */
PurpleRequestFields *request;
- PurpleRequestFieldGroup *group;
+ PurpleRequestGroup *group;
PurpleRequestField *field;
- group = purple_request_field_group_new(NULL);
+ group = purple_request_group_new(NULL);
field = purple_request_field_account_new("acct", _("Account"), NULL);
purple_request_field_account_set_filter(field, idleable_filter);
purple_request_field_account_set_show_all(field, FALSE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_int_new("mins", _("Minutes"), 10, 0, 9999);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
request = purple_request_fields_new();
purple_request_fields_add_group(request, group);
@@ -191,7 +191,7 @@
gpointer data)
{
PurpleRequestFields *request;
- PurpleRequestFieldGroup *group;
+ PurpleRequestGroup *group;
PurpleRequestField *field;
if (idled_accts == NULL)
@@ -200,12 +200,12 @@
return;
}
- group = purple_request_field_group_new(NULL);
+ group = purple_request_group_new(NULL);
field = purple_request_field_account_new("acct", _("Account"), NULL);
purple_request_field_account_set_filter(field, unidle_filter);
purple_request_field_account_set_show_all(field, FALSE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
request = purple_request_fields_new();
purple_request_fields_add_group(request, group);
@@ -226,13 +226,13 @@
gpointer data)
{
PurpleRequestFields *request;
- PurpleRequestFieldGroup *group;
+ PurpleRequestGroup *group;
PurpleRequestField *field;
- group = purple_request_field_group_new(NULL);
+ group = purple_request_group_new(NULL);
field = purple_request_field_int_new("mins", _("Minutes"), 10, 0, 9999);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
request = purple_request_fields_new();
purple_request_fields_add_group(request, group);
--- a/libpurple/protocols/demo/purpledemoprotocolactions.c Mon Mar 06 21:31:59 2023 -0600
+++ b/libpurple/protocols/demo/purpledemoprotocolactions.c Tue Mar 07 00:22:36 2023 -0600
@@ -453,7 +453,7 @@
PurpleAccountManager *manager = NULL;
PurpleAccount *account = NULL;
PurpleRequestFields *fields = NULL;
- PurpleRequestFieldGroup *group = NULL;
+ PurpleRequestGroup *group = NULL;
PurpleRequestField *field = NULL;
GBytes *icon = NULL;
gconstpointer icon_data = NULL;
@@ -473,64 +473,64 @@
fields = purple_request_fields_new();
/* This group will contain basic fields. */
- group = purple_request_field_group_new(_("Basic"));
+ group = purple_request_group_new(_("Basic"));
purple_request_fields_add_group(fields, group);
field = purple_request_field_label_new("basic-label",
_("This group contains basic fields"));
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_string_new("string", _("A string"),
_("default"), FALSE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_string_new("multiline-string",
_("A multiline string"),
_("default"), TRUE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_string_new("masked-string",
_("A masked string"), _("default"),
FALSE);
purple_request_field_string_set_masked(field, TRUE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_string_new("alphanumeric",
_("An alphanumeric string"),
_("default"), FALSE);
purple_request_field_set_validator(field,
purple_request_field_alphanumeric_validator,
NULL);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_string_new("email", _("An email"),
_("me@example.com"), FALSE);
purple_request_field_set_validator(field,
purple_request_field_email_validator,
NULL);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_int_new("int", _("An integer"), 123, -42, 1337);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_bool_new("bool", _("A boolean"), FALSE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
/* This group will contain fields with multiple options. */
- group = purple_request_field_group_new(_("Multiple"));
+ group = purple_request_group_new(_("Multiple"));
purple_request_fields_add_group(fields, group);
field = purple_request_field_label_new("multiple-label",
_("This group contains fields with multiple options"));
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_choice_new("choice", _("A choice"), "foo");
purple_request_field_choice_add(field, _("foo"), "foo");
purple_request_field_choice_add(field, _("bar"), "bar");
purple_request_field_choice_add(field, _("baz"), "baz");
purple_request_field_choice_add(field, _("quux"), "quux");
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_list_new("list", _("A list"));
purple_request_field_list_add_icon(field, _("foo"), NULL, "foo");
purple_request_field_list_add_icon(field, _("bar"), NULL, "bar");
purple_request_field_list_add_icon(field, _("baz"), NULL, "baz");
purple_request_field_list_add_icon(field, _("quux"), NULL, "quux");
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_list_new("multilist", _("A multi-select list"));
purple_request_field_list_set_multi_select(field, TRUE);
@@ -538,15 +538,15 @@
purple_request_field_list_add_icon(field, _("bar"), NULL, "bar");
purple_request_field_list_add_icon(field, _("baz"), NULL, "baz");
purple_request_field_list_add_icon(field, _("quux"), NULL, "quux");
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
/* This group will contain specialized fields. */
- group = purple_request_field_group_new(_("Special"));
+ group = purple_request_group_new(_("Special"));
purple_request_fields_add_group(fields, group);
field = purple_request_field_label_new("special-label",
_("This group contains specialized fields"));
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
icon = g_resource_lookup_data(purple_demo_get_resource(),
"/im/pidgin/purple/demo/icons/scalable/apps/im-purple-demo.svg",
@@ -554,12 +554,12 @@
icon_data = g_bytes_get_data(icon, &icon_len);
field = purple_request_field_image_new("image", _("An image"),
icon_data, icon_len);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
g_bytes_unref(icon);
field = purple_request_field_account_new("account", _("An account"),
account);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
purple_request_fields(connection, _("Request Fields Demo"),
_("Please fill out these fields…"), NULL, fields,
--- a/libpurple/protocols/facebook/util.c Mon Mar 06 21:31:59 2023 -0600
+++ b/libpurple/protocols/facebook/util.c Tue Mar 07 00:22:36 2023 -0600
@@ -381,7 +381,7 @@
PurpleAccount *acct;
PurpleRequestCommonParameters *cpar;
PurpleRequestField *field;
- PurpleRequestFieldGroup *group;
+ PurpleRequestGroup *group;
PurpleRequestFields *fields;
request_data = g_new0(gpointer, 3);
@@ -394,13 +394,13 @@
buddies = g_slist_sort(buddies, fb_buddy_cmp);
fields = purple_request_fields_new();
- group = purple_request_field_group_new(NULL);
+ group = purple_request_group_new(NULL);
purple_request_fields_add_group(fields, group);
field = purple_request_field_list_new("buddy", NULL);
purple_request_field_list_set_multi_select(field, multi);
purple_request_field_set_required(field, TRUE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
for (l = buddies; l != NULL; l = l->next) {
name = purple_buddy_get_name(l->data);
--- a/libpurple/protocols/gg/account.c Mon Mar 06 21:31:59 2023 -0600
+++ b/libpurple/protocols/gg/account.c Tue Mar 07 00:22:36 2023 -0600
@@ -178,7 +178,7 @@
ggp_account_token *token, gpointer _register_data)
{
PurpleRequestFields *fields;
- PurpleRequestFieldGroup *main_group, *password_group, *token_group;
+ PurpleRequestGroup *main_group, *password_group, *token_group;
PurpleRequestField *field, *field_password;
ggp_account_register_data *register_data = _register_data;
@@ -190,7 +190,7 @@
}
fields = purple_request_fields_new();
- main_group = purple_request_field_group_new(NULL);
+ main_group = purple_request_group_new(NULL);
purple_request_fields_add_group(fields, main_group);
field = purple_request_field_string_new("email", _("Email"),
@@ -198,9 +198,9 @@
purple_request_field_set_required(field, TRUE);
purple_request_field_set_validator(field,
purple_request_field_email_validator, NULL);
- purple_request_field_group_add_field(main_group, field);
+ purple_request_group_add_field(main_group, field);
- password_group = purple_request_field_group_new(_("Password"));
+ password_group = purple_request_group_new(_("Password"));
purple_request_fields_add_group(fields, password_group);
field = purple_request_field_string_new("password1", _("Password"),
@@ -208,7 +208,7 @@
purple_request_field_set_required(field, TRUE);
purple_request_field_string_set_masked(field, TRUE);
purple_request_field_set_validator(field, ggp_validator_password, NULL);
- purple_request_field_group_add_field(password_group, field);
+ purple_request_group_add_field(password_group, field);
field_password = field;
field = purple_request_field_string_new("password2",
@@ -217,13 +217,13 @@
purple_request_field_string_set_masked(field, TRUE);
purple_request_field_set_validator(field, ggp_validator_password_equal,
field_password);
- purple_request_field_group_add_field(password_group, field);
+ purple_request_group_add_field(password_group, field);
field = purple_request_field_bool_new("password_remember",
_("Remember password"), register_data->password_remember);
- purple_request_field_group_add_field(password_group, field);
+ purple_request_group_add_field(password_group, field);
- token_group = purple_request_field_group_new(_("CAPTCHA"));
+ token_group = purple_request_group_new(_("CAPTCHA"));
purple_request_fields_add_group(fields, token_group);
field = purple_request_field_string_new("token_value",
@@ -231,12 +231,12 @@
FALSE);
purple_request_field_set_required(field, TRUE);
purple_request_field_set_validator(field, ggp_validator_token, token);
- purple_request_field_group_add_field(token_group, field);
+ purple_request_group_add_field(token_group, field);
purple_debug_info("gg", "token set %p\n", register_data->token);
field = purple_request_field_image_new("token_image", _("CAPTCHA"),
token->data, token->size);
- purple_request_field_group_add_field(token_group, field);
+ purple_request_group_add_field(token_group, field);
register_data->token = token;
@@ -419,7 +419,7 @@
PurpleAccount *account = purple_connection_get_account(chpass_data->gc);
PurpleContactInfo *info = PURPLE_CONTACT_INFO(account);
PurpleRequestFields *fields;
- PurpleRequestFieldGroup *main_group, *password_group, *token_group;
+ PurpleRequestGroup *main_group, *password_group, *token_group;
PurpleRequestField *field, *field_password;
gchar *primary;
@@ -431,7 +431,7 @@
}
fields = purple_request_fields_new();
- main_group = purple_request_field_group_new(NULL);
+ main_group = purple_request_group_new(NULL);
purple_request_fields_add_group(fields, main_group);
field = purple_request_field_string_new("email",
@@ -439,23 +439,23 @@
purple_request_field_set_required(field, TRUE);
purple_request_field_set_validator(field,
purple_request_field_email_validator, NULL);
- purple_request_field_group_add_field(main_group, field);
+ purple_request_group_add_field(main_group, field);
- password_group = purple_request_field_group_new(_("Password"));
+ password_group = purple_request_group_new(_("Password"));
purple_request_fields_add_group(fields, password_group);
field = purple_request_field_string_new("password_current",
_("Current password"), chpass_data->password_current, FALSE);
purple_request_field_set_required(field, TRUE);
purple_request_field_string_set_masked(field, TRUE);
- purple_request_field_group_add_field(password_group, field);
+ purple_request_group_add_field(password_group, field);
field = purple_request_field_string_new("password_new1",
_("Password"), chpass_data->password_new, FALSE);
purple_request_field_set_required(field, TRUE);
purple_request_field_string_set_masked(field, TRUE);
purple_request_field_set_validator(field, ggp_validator_password, NULL);
- purple_request_field_group_add_field(password_group, field);
+ purple_request_group_add_field(password_group, field);
field_password = field;
field = purple_request_field_string_new("password_new2",
@@ -464,9 +464,9 @@
purple_request_field_string_set_masked(field, TRUE);
purple_request_field_set_validator(field, ggp_validator_password_equal,
field_password);
- purple_request_field_group_add_field(password_group, field);
+ purple_request_group_add_field(password_group, field);
- token_group = purple_request_field_group_new(_("CAPTCHA"));
+ token_group = purple_request_group_new(_("CAPTCHA"));
purple_request_fields_add_group(fields, token_group);
field = purple_request_field_string_new("token_value",
@@ -474,11 +474,11 @@
FALSE);
purple_request_field_set_required(field, TRUE);
purple_request_field_set_validator(field, ggp_validator_token, token);
- purple_request_field_group_add_field(token_group, field);
+ purple_request_group_add_field(token_group, field);
field = purple_request_field_image_new("token_image", _("CAPTCHA"),
token->data, token->size);
- purple_request_field_group_add_field(token_group, field);
+ purple_request_group_add_field(token_group, field);
chpass_data->token = token;
--- a/libpurple/protocols/gg/multilogon.c Mon Mar 06 21:31:59 2023 -0600
+++ b/libpurple/protocols/gg/multilogon.c Tue Mar 07 00:22:36 2023 -0600
@@ -218,7 +218,7 @@
ggp_multilogon_session_data *mldata = ggp_multilogon_get_mldata(gc);
PurpleRequestField *field;
PurpleRequestFields *fields;
- PurpleRequestFieldGroup *group;
+ PurpleRequestGroup *group;
PurpleRequestCommonParameters *cpar;
PurpleRequestDatasheet *sheet;
PurpleRequestDatasheetAction *action;
@@ -228,7 +228,7 @@
return;
fields = purple_request_fields_new();
- group = purple_request_field_group_new(NULL);
+ group = purple_request_group_new(NULL);
purple_request_fields_add_group(fields, group);
sheet = purple_request_datasheet_new();
@@ -247,7 +247,7 @@
ggp_multilogon_fill_sessions(sheet, gc);
field = purple_request_field_datasheet_new("sessions", NULL, sheet);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
cpar = purple_request_cpar_new();
purple_request_cpar_set_icon(cpar, PURPLE_REQUEST_ICON_DIALOG);
--- a/libpurple/protocols/gg/pubdir-prpl.c Mon Mar 06 21:31:59 2023 -0600
+++ b/libpurple/protocols/gg/pubdir-prpl.c Tue Mar 07 00:22:36 2023 -0600
@@ -748,22 +748,22 @@
ggp_pubdir_search(PurpleConnection *gc, const ggp_pubdir_search_form *form)
{
PurpleRequestFields *fields;
- PurpleRequestFieldGroup *group;
+ PurpleRequestGroup *group;
PurpleRequestField *field;
purple_debug_info("gg", "ggp_pubdir_search");
fields = purple_request_fields_new();
- group = purple_request_field_group_new(NULL);
+ group = purple_request_group_new(NULL);
purple_request_fields_add_group(fields, group);
field = purple_request_field_string_new("name", _("Name"),
form ? form->nick : NULL, FALSE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_string_new("city", _("City"),
form ? form->city : NULL, FALSE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_choice_new(
"gender", _("Gender"), form ? GINT_TO_POINTER(form->gender) : NULL);
@@ -772,7 +772,7 @@
GINT_TO_POINTER(GGP_PUBDIR_GENDER_MALE));
purple_request_field_choice_add(field, _("Female"),
GINT_TO_POINTER(GGP_PUBDIR_GENDER_FEMALE));
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
purple_request_fields(gc, _("Find buddies"), _("Find buddies"),
_("Please, enter your search criteria below"), fields,
@@ -935,7 +935,7 @@
G_GNUC_UNUSED gpointer data)
{
PurpleRequestFields *fields;
- PurpleRequestFieldGroup *group;
+ PurpleRequestGroup *group;
PurpleRequestField *field;
gchar *bday = NULL;
gsize i;
@@ -947,18 +947,18 @@
record = (records_count == 1 ? &records[0] : NULL);
fields = purple_request_fields_new();
- group = purple_request_field_group_new(NULL);
+ group = purple_request_group_new(NULL);
purple_request_fields_add_group(fields, group);
field = purple_request_field_string_new("first_name", _("First name"),
record ? record->first_name : NULL,
FALSE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_string_new("last_name", _("Last name"),
record ? record->last_name : NULL,
FALSE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_choice_new(
"gender", _("Gender"),
@@ -969,7 +969,7 @@
GINT_TO_POINTER(GGP_PUBDIR_GENDER_MALE));
purple_request_field_choice_add(field, _("Female"),
GINT_TO_POINTER(GGP_PUBDIR_GENDER_FEMALE));
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
if(record != NULL && record->birth != NULL) {
bday = g_date_time_format(record->birth, "%Y-%m-%d");
@@ -980,11 +980,11 @@
FALSE);
g_free(bday);
purple_request_field_set_required(field, TRUE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_string_new(
"city", _("City"), record ? record->city : NULL, FALSE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
/* Translators: This word is basically used to describe a Polish
province. Gadu-Gadu users outside of Poland might choose to enter some
@@ -993,7 +993,7 @@
your language, feel free to use it. Otherwise it's probably acceptable
to leave it changed or transliterate it into your alphabet. */
field = purple_request_field_choice_new("province", _("Voivodeship"), 0);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
for (i = 0; i < ggp_pubdir_provinces_count; i++) {
purple_request_field_choice_add(field, ggp_pubdir_provinces[i],
GINT_TO_POINTER(i));
--- a/libpurple/protocols/gg/status.c Mon Mar 06 21:31:59 2023 -0600
+++ b/libpurple/protocols/gg/status.c Tue Mar 07 00:22:36 2023 -0600
@@ -342,17 +342,17 @@
void ggp_status_broadcasting_dialog(PurpleConnection *gc)
{
PurpleRequestFields *fields;
- PurpleRequestFieldGroup *group;
+ PurpleRequestGroup *group;
PurpleRequestField *field;
fields = purple_request_fields_new();
- group = purple_request_field_group_new(NULL);
+ group = purple_request_group_new(NULL);
purple_request_fields_add_group(fields, group);
field = purple_request_field_bool_new("buddies_only",
_("Show status only for buddies"),
!ggp_status_get_status_broadcasting(gc));
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
purple_request_fields(gc,
_("Change status broadcasting"),
--- a/libpurple/protocols/jabber/buddy.c Mon Mar 06 21:31:59 2023 -0600
+++ b/libpurple/protocols/jabber/buddy.c Tue Mar 07 00:22:36 2023 -0600
@@ -620,7 +620,7 @@
PurpleAccount *account = NULL;
PurpleConnection *connection = NULL;
PurpleRequestFields *fields;
- PurpleRequestFieldGroup *group;
+ PurpleRequestGroup *group;
PurpleRequestField *field;
const struct vcard_template *vc_tp;
const char *user_info;
@@ -638,7 +638,7 @@
connection = purple_account_get_connection(account);
fields = purple_request_fields_new();
- group = purple_request_field_group_new(NULL);
+ group = purple_request_group_new(NULL);
purple_request_fields_add_group(fields, group);
/*
@@ -681,7 +681,7 @@
g_free(cdata);
cdata = NULL;
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
}
if(x_vc_data != NULL)
--- a/libpurple/protocols/jabber/jabber.c Mon Mar 06 21:31:59 2023 -0600
+++ b/libpurple/protocols/jabber/jabber.c Tue Mar 07 00:22:36 2023 -0600
@@ -1904,7 +1904,7 @@
PurpleConnection *connection = NULL;
JabberStream *js = NULL;
PurpleRequestFields *fields;
- PurpleRequestFieldGroup *group;
+ PurpleRequestGroup *group;
PurpleRequestField *field;
if(!g_variant_is_of_type(parameter, G_VARIANT_TYPE_STRING)) {
@@ -1919,20 +1919,20 @@
js = purple_connection_get_protocol_data(connection);
fields = purple_request_fields_new();
- group = purple_request_field_group_new(NULL);
+ group = purple_request_group_new(NULL);
purple_request_fields_add_group(fields, group);
field = purple_request_field_string_new("password1", _("Password"),
"", FALSE);
purple_request_field_string_set_masked(field, TRUE);
purple_request_field_set_required(field, TRUE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_string_new("password2", _("Password (again)"),
"", FALSE);
purple_request_field_string_set_masked(field, TRUE);
purple_request_field_set_required(field, TRUE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
purple_request_fields(connection, _("Change XMPP Password"),
_("Change XMPP Password"),
@@ -2700,7 +2700,7 @@
PurpleRequestFields *fields;
PurpleRequestField *field = purple_request_field_choice_new(
"resource", _("Resource"), 0);
- PurpleRequestFieldGroup *group;
+ PurpleRequestGroup *group;
JabberMediaRequest *request;
for(l = jb->resources; l; l = l->next)
@@ -2751,14 +2751,14 @@
msg = g_strdup_printf(_("Please select the resource of %s with which you would like to start a media session."), who);
fields = purple_request_fields_new();
- group = purple_request_field_group_new(NULL);
+ group = purple_request_group_new(NULL);
request = g_new0(JabberMediaRequest, 1);
request->media = media;
request->account = account;
request->who = g_strdup(who);
request->type = type;
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
purple_request_fields_add_group(fields, group);
purple_request_fields(account, _("Select a Resource"), msg,
NULL, fields, _("Initiate Media"),
--- a/libpurple/protocols/jabber/si.c Mon Mar 06 21:31:59 2023 -0600
+++ b/libpurple/protocols/jabber/si.c Tue Mar 07 00:22:36 2023 -0600
@@ -1589,14 +1589,14 @@
char *msg = g_strdup_printf(_("Please select the resource of %s to which you would like to send a file"), purple_xfer_get_remote_user(xfer));
PurpleRequestFields *fields = purple_request_fields_new();
PurpleRequestField *field = purple_request_field_choice_new("resource", _("Resource"), 0);
- PurpleRequestFieldGroup *group = purple_request_field_group_new(NULL);
+ PurpleRequestGroup *group = purple_request_group_new(NULL);
for(l = resources; l; l = l->next) {
jbr = l->data;
purple_request_field_choice_add_full(field, jbr->name, g_strdup(jbr->name), g_free);
}
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
purple_request_fields_add_group(fields, group);
--- a/libpurple/protocols/jabber/xdata.c Mon Mar 06 21:31:59 2023 -0600
+++ b/libpurple/protocols/jabber/xdata.c Tue Mar 07 00:22:36 2023 -0600
@@ -44,7 +44,7 @@
gpointer user_data;
JabberStream *js;
GList *actions;
- PurpleRequestFieldGroup *actiongroup;
+ PurpleRequestGroup *actiongroup;
};
static void jabber_x_data_ok_cb(struct jabber_x_data_data *data, PurpleRequestFields *fields) {
@@ -61,7 +61,7 @@
for(groups = purple_request_fields_get_groups(fields); groups; groups = groups->next) {
if(groups->data == data->actiongroup) {
- for(flds = purple_request_field_group_get_fields(groups->data); flds; flds = flds->next) {
+ for(flds = purple_request_group_get_fields(groups->data); flds; flds = flds->next) {
PurpleRequestField *field = flds->data;
const char *id = purple_request_field_get_id(field);
int handleindex;
@@ -73,7 +73,7 @@
}
continue;
}
- for(flds = purple_request_field_group_get_fields(groups->data); flds; flds = flds->next) {
+ for(flds = purple_request_group_get_fields(groups->data); flds; flds = flds->next) {
PurpleXmlNode *fieldnode, *valuenode;
PurpleRequestField *field = flds->data;
const char *id = purple_request_field_get_id(field);
@@ -191,7 +191,7 @@
void *handle;
PurpleXmlNode *fn, *x;
PurpleRequestFields *fields;
- PurpleRequestFieldGroup *group;
+ PurpleRequestGroup *group;
PurpleRequestField *field = NULL;
char *title = NULL;
@@ -205,7 +205,7 @@
data->js = js;
fields = purple_request_fields_new();
- group = purple_request_field_group_new(NULL);
+ group = purple_request_group_new(NULL);
purple_request_fields_add_group(fields, group);
for(fn = purple_xmlnode_get_child(packet, "field"); fn; fn = purple_xmlnode_get_next_twin(fn)) {
@@ -230,7 +230,7 @@
field = purple_request_field_string_new(var, label,
value ? value : "", FALSE);
purple_request_field_string_set_masked(field, TRUE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
g_hash_table_replace(data->fields, g_strdup(var), GINT_TO_POINTER(JABBER_X_DATA_TEXT_SINGLE));
@@ -250,7 +250,7 @@
field = purple_request_field_string_new(var, label,
str->str, TRUE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
g_hash_table_replace(data->fields, g_strdup(var), GINT_TO_POINTER(JABBER_X_DATA_TEXT_MULTI));
@@ -297,7 +297,7 @@
if(g_list_find_custom(selected, value, (GCompareFunc)strcmp))
purple_request_field_list_add_selected(field, lbl);
}
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
g_list_free_full(selected, g_free);
} else if(purple_strequal(type, "boolean")) {
@@ -311,7 +311,7 @@
def = TRUE;
field = purple_request_field_bool_new(var, label, def);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
g_hash_table_replace(data->fields, g_strdup(var), GINT_TO_POINTER(JABBER_X_DATA_BOOLEAN));
@@ -322,7 +322,7 @@
if(value != NULL) {
field = purple_request_field_label_new("", value);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
g_free(value);
}
@@ -333,7 +333,7 @@
field = purple_request_field_string_new(var, "", value ? value : "",
FALSE);
purple_request_field_set_visible(field, FALSE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
g_hash_table_replace(data->fields, g_strdup(var), GINT_TO_POINTER(JABBER_X_DATA_TEXT_SINGLE));
@@ -344,7 +344,7 @@
field = purple_request_field_string_new(var, label,
value ? value : "", FALSE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
if(purple_strequal(type, "jid-single")) {
purple_request_field_set_type_hint(field, "screenname");
@@ -365,7 +365,7 @@
GList *action;
int i;
- data->actiongroup = group = purple_request_field_group_new(_("Actions"));
+ data->actiongroup = group = purple_request_group_new(_("Actions"));
purple_request_fields_add_group(fields, group);
actionfield = purple_request_field_choice_new("libpurple:jabber:xdata:actions", _("Select an action"), GINT_TO_POINTER(defaultaction));
@@ -376,7 +376,7 @@
data->actions = g_list_append(data->actions, g_strdup(a->handle));
}
purple_request_field_set_required(actionfield,TRUE);
- purple_request_field_group_add_field(group, actionfield);
+ purple_request_group_add_field(group, actionfield);
}
if((x = purple_xmlnode_get_child(packet, "title")))
--- a/libpurple/purplechatconversation.c Mon Mar 06 21:31:59 2023 -0600
+++ b/libpurple/purplechatconversation.c Tue Mar 07 00:22:36 2023 -0600
@@ -1058,7 +1058,7 @@
{
PurpleAccount *account;
PurpleRequestFields *fields;
- PurpleRequestFieldGroup *group;
+ PurpleRequestGroup *group;
PurpleRequestField *field;
g_return_if_fail(PURPLE_IS_CHAT_CONVERSATION(chat));
@@ -1077,18 +1077,18 @@
}
fields = purple_request_fields_new();
- group = purple_request_field_group_new(_("Invite to chat"));
+ group = purple_request_group_new(_("Invite to chat"));
purple_request_fields_add_group(fields, group);
field = purple_request_field_string_new("screenname", _("Buddy"), user,
FALSE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
purple_request_field_set_required(field, TRUE);
purple_request_field_set_type_hint(field, "screenname");
field = purple_request_field_string_new("message", _("Message"), message,
FALSE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
purple_request_fields(chat, _("Invite to chat"), NULL,
_("Please enter the name of the user you wish to "
--- a/libpurple/purpleprivate.h Mon Mar 06 21:31:59 2023 -0600
+++ b/libpurple/purpleprivate.h Tue Mar 07 00:22:36 2023 -0600
@@ -341,10 +341,10 @@
G_GNUC_INTERNAL void _purple_request_field_list_add_field(PurpleRequestFields *fields, PurpleRequestField *field);
G_GNUC_INTERNAL void _purple_request_field_list_set_field_required(PurpleRequestFields *fields, PurpleRequestField *field, gboolean required);
G_GNUC_INTERNAL void _purple_request_field_list_set_field_validator(PurpleRequestFields *fields, PurpleRequestField *field, gboolean validator);
-G_GNUC_INTERNAL void _purple_request_field_group_set_field_list(PurpleRequestFieldGroup *group, PurpleRequestFields *fields);
-G_GNUC_INTERNAL void _purple_request_field_set_group(PurpleRequestField *field, PurpleRequestFieldGroup *group);
-G_GNUC_INTERNAL void _purple_request_field_group_set_field_required(PurpleRequestFieldGroup *group, PurpleRequestField *field, gboolean required);
-G_GNUC_INTERNAL void _purple_request_field_group_set_field_validator(PurpleRequestFieldGroup *group, PurpleRequestField *field, gboolean validator);
+G_GNUC_INTERNAL void _purple_request_group_set_field_list(PurpleRequestGroup *group, PurpleRequestFields *fields);
+G_GNUC_INTERNAL void _purple_request_group_set_field_required(PurpleRequestGroup *group, PurpleRequestField *field, gboolean required);
+G_GNUC_INTERNAL void _purple_request_group_set_field_validator(PurpleRequestGroup *group, PurpleRequestField *field, gboolean validator);
+G_GNUC_INTERNAL void _purple_request_field_set_group(PurpleRequestField *field, PurpleRequestGroup *group);
G_END_DECLS
--- a/libpurple/purplerequestfield.c Mon Mar 06 21:31:59 2023 -0600
+++ b/libpurple/purplerequestfield.c Tue Mar 07 00:22:36 2023 -0600
@@ -30,7 +30,7 @@
typedef struct {
PurpleRequestFieldType type;
- PurpleRequestFieldGroup *group;
+ PurpleRequestGroup *group;
char *id;
char *label;
@@ -409,7 +409,7 @@
void
_purple_request_field_set_group(PurpleRequestField *field,
- PurpleRequestFieldGroup *group)
+ PurpleRequestGroup *group)
{
PurpleRequestFieldPrivate *priv = NULL;
@@ -495,9 +495,9 @@
priv->required = required;
- if(priv->group != NULL) {
- _purple_request_field_group_set_field_required(priv->group, field,
- required);
+ if(PURPLE_IS_REQUEST_GROUP(priv->group)) {
+ _purple_request_group_set_field_required(priv->group, field,
+ required);
}
g_object_notify_by_pspec(G_OBJECT(field), properties[PROP_REQUIRED]);
@@ -515,7 +515,7 @@
return priv->type;
}
-PurpleRequestFieldGroup *
+PurpleRequestGroup *
purple_request_field_get_group(PurpleRequestField *field) {
PurpleRequestFieldPrivate *priv = NULL;
@@ -619,9 +619,9 @@
priv->validator = validator;
priv->validator_data = validator ? user_data : NULL;
- if(priv->group != NULL) {
- _purple_request_field_group_set_field_validator(priv->group, field,
- validator != NULL);
+ if(PURPLE_IS_REQUEST_GROUP(priv->group)) {
+ _purple_request_group_set_field_validator(priv->group, field,
+ validator != NULL);
}
g_object_notify_by_pspec(G_OBJECT(field), properties[PROP_IS_VALIDATABLE]);
--- a/libpurple/purplerequestfield.h Mon Mar 06 21:31:59 2023 -0600
+++ b/libpurple/purplerequestfield.h Tue Mar 07 00:22:36 2023 -0600
@@ -189,7 +189,7 @@
*
* Returns: (transfer none): The UI data.
*/
-PurpleRequestFieldGroup *purple_request_field_get_group(PurpleRequestField *field);
+PurpleRequestGroup *purple_request_field_get_group(PurpleRequestField *field);
/**
* purple_request_field_get_id:
--- a/libpurple/purplerequestgroup.c Mon Mar 06 21:31:59 2023 -0600
+++ b/libpurple/purplerequestgroup.c Tue Mar 07 00:22:36 2023 -0600
@@ -25,8 +25,9 @@
#include "purplerequestgroup.h"
#include "purpleprivate.h"
-struct _PurpleRequestFieldGroup
-{
+struct _PurpleRequestGroup {
+ GObject parent;
+
PurpleRequestFields *fields_list;
char *title;
@@ -34,68 +35,182 @@
GList *fields;
};
-PurpleRequestFieldGroup *
-purple_request_field_group_new(const char *title)
-{
- PurpleRequestFieldGroup *group;
+enum {
+ PROP_0,
+ PROP_TITLE,
+ N_PROPERTIES,
+};
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
- group = g_new0(PurpleRequestFieldGroup, 1);
-
+/******************************************************************************
+ * Helpers
+ *****************************************************************************/
+static void
+purple_request_group_set_title(PurpleRequestGroup *group, const char *title) {
+ g_free(group->title);
group->title = g_strdup(title);
- return group;
+ g_object_notify_by_pspec(G_OBJECT(group), properties[PROP_TITLE]);
+}
+
+/******************************************************************************
+ * GListModel Implementation
+ *****************************************************************************/
+static GType
+purple_request_group_get_item_type(G_GNUC_UNUSED GListModel *model) {
+ return PURPLE_TYPE_REQUEST_FIELD;
+}
+
+static guint
+purple_request_group_get_n_items(GListModel *model) {
+ PurpleRequestGroup *group = PURPLE_REQUEST_GROUP(model);
+
+ return g_list_length(group->fields);
+}
+
+static gpointer
+purple_request_group_get_item(G_GNUC_UNUSED GListModel *model, guint index) {
+ PurpleRequestGroup *group = PURPLE_REQUEST_GROUP(model);
+
+ return g_list_nth_data(group->fields, index);
+}
+
+static void
+purple_request_group_list_model_init(GListModelInterface *iface) {
+ iface->get_item_type = purple_request_group_get_item_type;
+ iface->get_item = purple_request_group_get_item;
+ iface->get_n_items = purple_request_group_get_n_items;
}
-void
-purple_request_field_group_destroy(PurpleRequestFieldGroup *group)
+/******************************************************************************
+ * GObject Implementation
+ *****************************************************************************/
+G_DEFINE_TYPE_WITH_CODE(PurpleRequestGroup, purple_request_group, G_TYPE_OBJECT,
+ G_IMPLEMENT_INTERFACE(G_TYPE_LIST_MODEL,
+ purple_request_group_list_model_init))
+
+static void
+purple_request_group_get_property(GObject *obj, guint param_id, GValue *value,
+ GParamSpec *pspec)
{
- g_return_if_fail(group != NULL);
+ PurpleRequestGroup *group = PURPLE_REQUEST_GROUP(obj);
+
+ switch(param_id) {
+ case PROP_TITLE:
+ g_value_set_string(value, purple_request_group_get_title(group));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
+ break;
+ }
+}
+
+static void
+purple_request_group_set_property(GObject *obj, guint param_id,
+ const GValue *value, GParamSpec *pspec)
+{
+ PurpleRequestGroup *group = PURPLE_REQUEST_GROUP(obj);
+
+ switch(param_id) {
+ case PROP_TITLE:
+ purple_request_group_set_title(group, g_value_get_string(value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
+ break;
+ }
+}
+
+static void
+purple_request_group_finalize(GObject *obj) {
+ PurpleRequestGroup *group = PURPLE_REQUEST_GROUP(obj);
g_free(group->title);
g_list_free_full(group->fields, g_object_unref);
- g_free(group);
+ G_OBJECT_CLASS(purple_request_group_parent_class)->finalize(obj);
+}
+
+static void
+purple_request_group_init(G_GNUC_UNUSED PurpleRequestGroup *group) {
+}
+
+static void
+purple_request_group_class_init(PurpleRequestGroupClass *klass) {
+ GObjectClass *obj_class = G_OBJECT_CLASS(klass);
+
+ obj_class->finalize = purple_request_group_finalize;
+ obj_class->get_property = purple_request_group_get_property;
+ obj_class->set_property = purple_request_group_set_property;
+
+ /**
+ * PurpleRequestGroup:title:
+ *
+ * The title of the field group.
+ *
+ * Since: 3.0.0
+ */
+ properties[PROP_TITLE] = g_param_spec_string(
+ "title", "title",
+ "The title of the field group.",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
+}
+
+/******************************************************************************
+ * Public API
+ *****************************************************************************/
+PurpleRequestGroup *
+purple_request_group_new(const char *title) {
+ return g_object_new(PURPLE_TYPE_REQUEST_GROUP,
+ "title", title,
+ NULL);
}
void
-_purple_request_field_group_set_field_list(PurpleRequestFieldGroup *group,
- PurpleRequestFields *fields)
+_purple_request_group_set_field_list(PurpleRequestGroup *group,
+ PurpleRequestFields *fields)
{
- g_return_if_fail(group != NULL);
+ g_return_if_fail(PURPLE_IS_REQUEST_GROUP(group));
group->fields_list = fields;
}
void
-_purple_request_field_group_set_field_required(PurpleRequestFieldGroup *group,
- PurpleRequestField *field,
- gboolean required)
+_purple_request_group_set_field_required(PurpleRequestGroup *group,
+ PurpleRequestField *field,
+ gboolean required)
{
- g_return_if_fail(group != NULL);
+ g_return_if_fail(PURPLE_IS_REQUEST_GROUP(group));
_purple_request_field_list_set_field_required(group->fields_list, field,
required);
}
void
-_purple_request_field_group_set_field_validator(PurpleRequestFieldGroup *group,
- PurpleRequestField *field,
- gboolean validator)
+_purple_request_group_set_field_validator(PurpleRequestGroup *group,
+ PurpleRequestField *field,
+ gboolean validator)
{
- g_return_if_fail(group != NULL);
+ g_return_if_fail(PURPLE_IS_REQUEST_GROUP(group));
_purple_request_field_list_set_field_validator(group->fields_list, field,
validator);
}
void
-purple_request_field_group_add_field(PurpleRequestFieldGroup *group,
- PurpleRequestField *field)
+purple_request_group_add_field(PurpleRequestGroup *group,
+ PurpleRequestField *field)
{
- g_return_if_fail(group != NULL);
+ guint position;
+
+ g_return_if_fail(PURPLE_IS_REQUEST_GROUP(group));
g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field));
+ position = g_list_length(group->fields);
group->fields = g_list_append(group->fields, field);
if(group->fields_list != NULL) {
@@ -103,28 +218,30 @@
}
_purple_request_field_set_group(field, group);
+
+ g_list_model_items_changed(G_LIST_MODEL(group), position, 0, 1);
}
const char *
-purple_request_field_group_get_title(const PurpleRequestFieldGroup *group)
+purple_request_group_get_title(PurpleRequestGroup *group)
{
- g_return_val_if_fail(group != NULL, NULL);
+ g_return_val_if_fail(PURPLE_IS_REQUEST_GROUP(group), NULL);
return group->title;
}
GList *
-purple_request_field_group_get_fields(const PurpleRequestFieldGroup *group)
+purple_request_group_get_fields(PurpleRequestGroup *group)
{
- g_return_val_if_fail(group != NULL, NULL);
+ g_return_val_if_fail(PURPLE_IS_REQUEST_GROUP(group), NULL);
return group->fields;
}
PurpleRequestFields *
-purple_request_field_group_get_fields_list(const PurpleRequestFieldGroup *group)
+purple_request_group_get_fields_list(PurpleRequestGroup *group)
{
- g_return_val_if_fail(group != NULL, NULL);
+ g_return_val_if_fail(PURPLE_IS_REQUEST_GROUP(group), NULL);
return group->fields_list;
}
--- a/libpurple/purplerequestgroup.h Mon Mar 06 21:31:59 2023 -0600
+++ b/libpurple/purplerequestgroup.h Tue Mar 07 00:22:36 2023 -0600
@@ -33,76 +33,68 @@
#include <glib-object.h>
/**
- * PurpleRequestFieldGroup:
+ * PurpleRequestGroup:
*
* A group of fields with a title.
*/
-typedef struct _PurpleRequestFieldGroup PurpleRequestFieldGroup;
+typedef struct _PurpleRequestGroup PurpleRequestGroup;
#include "purplerequestfield.h"
+#define PURPLE_TYPE_REQUEST_GROUP (purple_request_group_get_type())
+G_DECLARE_FINAL_TYPE(PurpleRequestGroup, purple_request_group,
+ PURPLE, REQUEST_GROUP, GObject)
+
G_BEGIN_DECLS
/**
- * purple_request_field_group_new:
- * @title: The optional title to give the group.
+ * purple_request_group_new:
+ * @title: (nullable): The title to give the group.
*
* Creates a fields group with an optional title.
*
* Returns: (transfer full): A new fields group
*/
-PurpleRequestFieldGroup *purple_request_field_group_new(const char *title);
+PurpleRequestGroup *purple_request_group_new(const char *title);
/**
- * purple_request_field_group_destroy:
- * @group: The group to destroy.
- *
- * Destroys a fields group.
- */
-void purple_request_field_group_destroy(PurpleRequestFieldGroup *group);
-
-/**
- * purple_request_field_group_add_field:
+ * purple_request_group_add_field:
* @group: The group to add the field to.
* @field: (transfer full): The field to add to the group.
*
* Adds a field to the group.
*/
-void purple_request_field_group_add_field(PurpleRequestFieldGroup *group,
- PurpleRequestField *field);
+void purple_request_group_add_field(PurpleRequestGroup *group, PurpleRequestField *field);
/**
- * purple_request_field_group_get_title:
+ * purple_request_group_get_title:
* @group: The group.
*
* Returns the title of a fields group.
*
- * Returns: The title, if set.
+ * Returns: (nullable): The title, if set.
*/
-const char *purple_request_field_group_get_title(
- const PurpleRequestFieldGroup *group);
+const char *purple_request_group_get_title(PurpleRequestGroup *group);
/**
- * purple_request_field_group_get_fields:
+ * purple_request_group_get_fields:
* @group: The group.
*
* Returns a list of all fields in a group.
*
* Returns: (element-type PurpleRequestField) (transfer none): The list of fields in the group.
*/
-GList *purple_request_field_group_get_fields(
- const PurpleRequestFieldGroup *group);
+GList *purple_request_group_get_fields(PurpleRequestGroup *group);
/**
- * purple_request_field_group_get_fields_list:
+ * purple_request_group_get_fields_list:
* @group: The group.
*
* Returns a list of all fields in a group.
*
* Returns: (transfer none): The list of fields in the group.
*/
-PurpleRequestFields *purple_request_field_group_get_fields_list(
- const PurpleRequestFieldGroup *group);
+PurpleRequestFields *purple_request_group_get_fields_list(PurpleRequestGroup *group);
G_END_DECLS
--- a/libpurple/purplerequestpage.c Mon Mar 06 21:31:59 2023 -0600
+++ b/libpurple/purplerequestpage.c Tue Mar 07 00:22:36 2023 -0600
@@ -56,8 +56,7 @@
{
g_return_if_fail(fields != NULL);
- g_list_free_full(fields->groups,
- (GDestroyNotify)purple_request_field_group_destroy);
+ g_list_free_full(fields->groups, g_object_unref);
g_list_free(fields->required_fields);
g_list_free(fields->validated_fields);
g_hash_table_destroy(fields->fields);
@@ -114,19 +113,19 @@
void
purple_request_fields_add_group(PurpleRequestFields *fields,
- PurpleRequestFieldGroup *group)
+ PurpleRequestGroup *group)
{
GList *l;
PurpleRequestField *field;
g_return_if_fail(fields != NULL);
- g_return_if_fail(group != NULL);
+ g_return_if_fail(PURPLE_IS_REQUEST_GROUP(group));
fields->groups = g_list_append(fields->groups, group);
- _purple_request_field_group_set_field_list(group, fields);
+ _purple_request_group_set_field_list(group, fields);
- for (l = purple_request_field_group_get_fields(group);
+ for (l = purple_request_group_get_fields(group);
l != NULL;
l = l->next) {
--- a/libpurple/purplerequestpage.h Mon Mar 06 21:31:59 2023 -0600
+++ b/libpurple/purplerequestpage.h Tue Mar 07 00:22:36 2023 -0600
@@ -69,8 +69,7 @@
*
* Adds a group of fields to the list.
*/
-void purple_request_fields_add_group(PurpleRequestFields *fields,
- PurpleRequestFieldGroup *group);
+void purple_request_fields_add_group(PurpleRequestFields *fields, PurpleRequestGroup *group);
/**
* purple_request_fields_get_groups:
@@ -78,7 +77,7 @@
*
* Returns a list of all groups in a field list.
*
- * Returns: (element-type PurpleRequestFieldGroup) (transfer none): A list of groups.
+ * Returns: (element-type PurpleRequestGroup) (transfer none): A list of groups.
*/
GList *purple_request_fields_get_groups(const PurpleRequestFields *fields);
--- a/libpurple/request.c Mon Mar 06 21:31:59 2023 -0600
+++ b/libpurple/request.c Tue Mar 07 00:22:36 2023 -0600
@@ -629,10 +629,10 @@
itg != NULL;
itg = g_list_next(itg))
{
- PurpleRequestFieldGroup *group = itg->data;
+ PurpleRequestGroup *group = itg->data;
GList *itf;
- for (itf = purple_request_field_group_get_fields(group);
+ for (itf = purple_request_group_get_fields(group);
itf != NULL;
itf = g_list_next(itf))
{
--- a/pidgin/gtkdialogs.c Mon Mar 06 21:31:59 2023 -0600
+++ b/pidgin/gtkdialogs.c Tue Mar 07 00:22:36 2023 -0600
@@ -86,19 +86,19 @@
pidgin_dialogs_im(void)
{
PurpleRequestFields *fields;
- PurpleRequestFieldGroup *group;
+ PurpleRequestGroup *group;
PurpleRequestField *field;
fields = purple_request_fields_new();
- group = purple_request_field_group_new(NULL);
+ group = purple_request_group_new(NULL);
purple_request_fields_add_group(fields, group);
field = purple_request_field_string_new("screenname", _("_Name"), NULL, FALSE);
purple_request_field_set_type_hint(field, "screenname");
purple_request_field_set_required(field, TRUE);
purple_request_field_set_validator(field, pidgin_dialogs_im_name_validator, fields);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_account_new("account", _("_Account"), NULL);
purple_request_field_set_type_hint(field, "account");
@@ -106,7 +106,7 @@
(purple_connections_get_all() != NULL &&
purple_connections_get_all()->next != NULL));
purple_request_field_set_required(field, TRUE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
purple_request_fields(
purple_blist_get_default(), _("New Instant Message"), NULL,
@@ -161,18 +161,18 @@
pidgin_dialogs_info(void)
{
PurpleRequestFields *fields;
- PurpleRequestFieldGroup *group;
+ PurpleRequestGroup *group;
PurpleRequestField *field;
fields = purple_request_fields_new();
- group = purple_request_field_group_new(NULL);
+ group = purple_request_group_new(NULL);
purple_request_fields_add_group(fields, group);
field = purple_request_field_string_new("screenname", _("_Name"), NULL, FALSE);
purple_request_field_set_type_hint(field, "screenname");
purple_request_field_set_required(field, TRUE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
field = purple_request_field_account_new("account", _("_Account"), NULL);
purple_request_field_set_type_hint(field, "account");
@@ -180,7 +180,7 @@
(purple_connections_get_all() != NULL &&
purple_connections_get_all()->next != NULL));
purple_request_field_set_required(field, TRUE);
- purple_request_field_group_add_field(group, field);
+ purple_request_group_add_field(group, field);
purple_request_fields(
purple_blist_get_default(), _("Get User Info"), NULL,
--- a/pidgin/gtkrequest.c Mon Mar 06 21:31:59 2023 -0600
+++ b/pidgin/gtkrequest.c Tue Mar 07 00:22:36 2023 -0600
@@ -225,12 +225,12 @@
req_field_changed_common(G_GNUC_UNUSED GtkWidget *widget,
PurpleRequestField *field)
{
- PurpleRequestFieldGroup *group;
+ PurpleRequestGroup *group;
PurpleRequestFields *fields;
PidginRequestData *req_data;
group = purple_request_field_get_group(field);
- fields = purple_request_field_group_get_fields_list(group);
+ fields = purple_request_group_get_fields_list(group);
req_data = purple_request_fields_get_ui_data(fields);
gtk_widget_set_sensitive(req_data->ok_button,
@@ -1073,8 +1073,8 @@
{
if (g_str_has_prefix(type_hint, "screenname")) {
GtkWidget *optmenu = NULL;
- PurpleRequestFieldGroup *group = purple_request_field_get_group(field);
- GList *fields = purple_request_field_group_get_fields(group);
+ PurpleRequestGroup *group = purple_request_field_get_group(field);
+ GList *fields = purple_request_group_get_fields(group);
/* Ensure the account option menu is created (if the widget hasn't
* been initialized already) for username auto-completion. */
@@ -1894,7 +1894,7 @@
GtkWidget *content;
GtkSizeGroup *sg, *datasheet_buttons_sg;
GList *gl, *fl;
- PurpleRequestFieldGroup *group;
+ PurpleRequestGroup *group;
char *label_text;
char *primary_esc, *secondary_esc;
const gboolean compact = purple_request_cpar_is_compact(cpar);
@@ -2017,11 +2017,11 @@
gboolean contains_resizable = FALSE;
group = gl->data;
- field_list = purple_request_field_group_get_fields(group);
-
- if(purple_request_field_group_get_title(group) != NULL) {
+ field_list = purple_request_group_get_fields(group);
+
+ if(purple_request_group_get_title(group) != NULL) {
frame = pidgin_make_frame(vbox,
- purple_request_field_group_get_title(group));
+ purple_request_group_get_title(group));
} else {
frame = vbox;
}
--- a/pidgin/pidginmooddialog.c Mon Mar 06 21:31:59 2023 -0600
+++ b/pidgin/pidginmooddialog.c Tue Mar 07 00:22:36 2023 -0600
@@ -246,7 +246,7 @@
pidgin_mood_dialog_show(PurpleAccount *account) {
const gchar *current_mood;
PurpleRequestFields *fields;
- PurpleRequestFieldGroup *g;
+ PurpleRequestGroup *g;
PurpleRequestField *f;
PurpleConnection *gc = NULL;
PurpleProtocol *protocol = NULL;
@@ -265,7 +265,7 @@
}
fields = purple_request_fields_new();
- g = purple_request_field_group_new(NULL);
+ g = purple_request_group_new(NULL);
f = purple_request_field_list_new("mood", _("Please select your mood from the list"));
purple_request_field_list_add_icon(f, _("None"), NULL, "");
@@ -297,16 +297,16 @@
if (current_mood && purple_strequal(current_mood, mood->mood))
purple_request_field_list_add_selected(f, _(mood->description));
}
- purple_request_field_group_add_field(g, f);
+ purple_request_group_add_field(g, f);
purple_request_fields_add_group(fields, g);
/* if the connection allows setting a mood message */
if (gc && (purple_connection_get_flags(gc) & PURPLE_CONNECTION_FLAG_SUPPORT_MOOD_MESSAGES)) {
- g = purple_request_field_group_new(NULL);
+ g = purple_request_group_new(NULL);
f = purple_request_field_string_new("text",
_("Message (optional)"), NULL, FALSE);
- purple_request_field_group_add_field(g, f);
+ purple_request_group_add_field(g, f);
purple_request_fields_add_group(fields, g);
}