diff options
author | Elliott Sales de Andrade <quantum.analyst@gmail.com> | 2023-03-07 01:04:42 -0600 |
---|---|---|
committer | Elliott Sales de Andrade <quantum.analyst@gmail.com> | 2023-03-07 01:04:42 -0600 |
commit | a82fc1d0f0e040d201d31e12b1352329b6b6e0b8 (patch) | |
tree | 9ad482b2e8742f748895fbc29e3245ca582ae387 /libpurple | |
parent | 66dc29947dff7a229eee65749dafa6c6d314a0b2 (diff) | |
download | pidgin-a82fc1d0f0e040d201d31e12b1352329b6b6e0b8.tar.gz |
Convert PurpleRequestPage into a GObject
And rename it from `PurpleRequestFields`.
Also, implements `GListModel` for the groups, but nothing uses it that way get.
Testing Done:
Compiled, and opened Request Fields from Demo protocol.
Reviewed at https://reviews.imfreedom.org/r/2323/
Diffstat (limited to 'libpurple')
-rw-r--r-- | libpurple/account.c | 46 | ||||
-rw-r--r-- | libpurple/plugins/idle/idle.c | 35 | ||||
-rw-r--r-- | libpurple/protocols/demo/purpledemoprotocolactions.c | 44 | ||||
-rw-r--r-- | libpurple/protocols/facebook/util.c | 15 | ||||
-rw-r--r-- | libpurple/protocols/gg/multilogon.c | 8 | ||||
-rw-r--r-- | libpurple/protocols/gg/pubdir-prpl.c | 54 | ||||
-rw-r--r-- | libpurple/protocols/gg/status.c | 28 | ||||
-rw-r--r-- | libpurple/protocols/jabber/auth.c | 11 | ||||
-rw-r--r-- | libpurple/protocols/jabber/buddy.c | 13 | ||||
-rw-r--r-- | libpurple/protocols/jabber/jabber.c | 39 | ||||
-rw-r--r-- | libpurple/protocols/jabber/si.c | 13 | ||||
-rw-r--r-- | libpurple/protocols/jabber/xdata.c | 17 | ||||
-rw-r--r-- | libpurple/purplechatconversation.c | 14 | ||||
-rw-r--r-- | libpurple/purpleprivate.h | 8 | ||||
-rw-r--r-- | libpurple/purplerequestgroup.c | 24 | ||||
-rw-r--r-- | libpurple/purplerequestgroup.h | 4 | ||||
-rw-r--r-- | libpurple/purplerequestpage.c | 266 | ||||
-rw-r--r-- | libpurple/purplerequestpage.h | 146 | ||||
-rw-r--r-- | libpurple/request.c | 17 | ||||
-rw-r--r-- | libpurple/request.h | 12 | ||||
-rw-r--r-- | libpurple/tests/test_credential_manager.c | 2 |
21 files changed, 407 insertions, 409 deletions
diff --git a/libpurple/account.c b/libpurple/account.c index 8fc14b8182..aa23b38515 100644 --- a/libpurple/account.c +++ b/libpurple/account.c @@ -227,13 +227,12 @@ request_password_write_cb(GObject *obj, GAsyncResult *res, gpointer data) { } static void -request_password_ok_cb(PurpleAccount *account, PurpleRequestFields *fields) -{ +request_password_ok_cb(PurpleAccount *account, PurpleRequestPage *page) { const char *entry; gboolean remember; - entry = purple_request_fields_get_string(fields, "password"); - remember = purple_request_fields_get_bool(fields, "remember"); + entry = purple_request_page_get_string(page, "password"); + remember = purple_request_page_get_bool(page, "remember"); if (!entry || !*entry) { @@ -266,7 +265,7 @@ request_password_ok_cb(PurpleAccount *account, PurpleRequestFields *fields) static void request_password_cancel_cb(PurpleAccount *account, - G_GNUC_UNUSED PurpleRequestFields *fields) + G_GNUC_UNUSED PurpleRequestPage *page) { /* Disable the account as the user has cancelled connecting */ purple_account_set_enabled(account, FALSE); @@ -315,13 +314,12 @@ purple_account_connect_got_password_cb(GObject *obj, GAsyncResult *res, } static void -change_password_cb(PurpleAccount *account, PurpleRequestFields *fields) -{ +change_password_cb(PurpleAccount *account, PurpleRequestPage *page) { const char *orig_pass, *new_pass_1, *new_pass_2; - orig_pass = purple_request_fields_get_string(fields, "password"); - new_pass_1 = purple_request_fields_get_string(fields, "new_password_1"); - new_pass_2 = purple_request_fields_get_string(fields, "new_password_2"); + orig_pass = purple_request_page_get_string(page, "password"); + new_pass_1 = purple_request_page_get_string(page, "new_password_1"); + new_pass_2 = purple_request_page_get_string(page, "new_password_2"); if (g_utf8_collate(new_pass_1, new_pass_2)) { @@ -332,12 +330,12 @@ change_password_cb(PurpleAccount *account, PurpleRequestFields *fields) return; } - if ((purple_request_fields_is_field_required(fields, "password") && - (orig_pass == NULL || *orig_pass == '\0')) || - (purple_request_fields_is_field_required(fields, "new_password_1") && - (new_pass_1 == NULL || *new_pass_1 == '\0')) || - (purple_request_fields_is_field_required(fields, "new_password_2") && - (new_pass_2 == NULL || *new_pass_2 == '\0'))) + if((purple_request_page_is_field_required(page, "password") && + purple_strempty(orig_pass)) || + (purple_request_page_is_field_required(page, "new_password_1") && + purple_strempty(new_pass_1)) || + (purple_request_page_is_field_required(page, "new_password_2") && + purple_strempty(new_pass_2))) { purple_notify_error(account, NULL, _("Fill out all fields completely."), NULL, @@ -1065,7 +1063,7 @@ purple_account_request_password(PurpleAccount *account, GCallback ok_cb, const gchar *username; PurpleRequestGroup *group; PurpleRequestField *field; - PurpleRequestFields *fields; + PurpleRequestPage *page; /* Close any previous password request windows */ purple_request_close_with_handle(account); @@ -1074,9 +1072,9 @@ purple_account_request_password(PurpleAccount *account, GCallback ok_cb, primary = g_strdup_printf(_("Enter password for %s (%s)"), username, purple_account_get_protocol_name(account)); - fields = purple_request_fields_new(); + page = purple_request_page_new(); group = purple_request_group_new(NULL); - purple_request_fields_add_group(fields, group); + purple_request_page_add_group(page, group); field = purple_request_field_string_new("password", _("Enter Password"), NULL, FALSE); purple_request_field_string_set_masked(field, TRUE); @@ -1086,7 +1084,7 @@ purple_account_request_password(PurpleAccount *account, GCallback ok_cb, field = purple_request_field_bool_new("remember", _("Save password"), FALSE); purple_request_group_add_field(group, field); - purple_request_fields(account, NULL, primary, NULL, fields, _("OK"), + purple_request_fields(account, NULL, primary, NULL, page, _("OK"), ok_cb, _("Cancel"), cancel_cb, purple_request_cpar_from_account(account), user_data); g_free(primary); @@ -1095,7 +1093,7 @@ purple_account_request_password(PurpleAccount *account, GCallback ok_cb, void purple_account_request_change_password(PurpleAccount *account) { - PurpleRequestFields *fields; + PurpleRequestPage *page; PurpleRequestGroup *group; PurpleRequestField *field; PurpleConnection *gc; @@ -1109,10 +1107,10 @@ purple_account_request_change_password(PurpleAccount *account) if (gc != NULL) protocol = purple_connection_get_protocol(gc); - fields = purple_request_fields_new(); + page = purple_request_page_new(); group = purple_request_group_new(NULL); - purple_request_fields_add_group(fields, group); + purple_request_page_add_group(page, group); field = purple_request_field_string_new("password", _("Original password"), NULL, FALSE); @@ -1144,7 +1142,7 @@ purple_account_request_change_password(PurpleAccount *account) purple_request_fields(purple_account_get_connection(account), NULL, primary, _("Please enter your current password and your new " - "password."), fields, _("OK"), G_CALLBACK(change_password_cb), + "password."), page, _("OK"), G_CALLBACK(change_password_cb), _("Cancel"), NULL, purple_request_cpar_from_account(account), account); } diff --git a/libpurple/plugins/idle/idle.c b/libpurple/plugins/idle/idle.c index e5085391d1..55cdf78f36 100644 --- a/libpurple/plugins/idle/idle.c +++ b/libpurple/plugins/idle/idle.c @@ -83,11 +83,10 @@ set_idle_time(PurpleAccount *acct, int mins_idle) } static void -idle_action_ok(G_GNUC_UNUSED gpointer data, PurpleRequestFields *fields) -{ - PurpleAccount *acct = purple_request_fields_get_account(fields, "acct"); +idle_action_ok(G_GNUC_UNUSED gpointer data, PurpleRequestPage *page) { + PurpleAccount *acct = purple_request_page_get_account(page, "acct"); PurpleContactInfo *info = PURPLE_CONTACT_INFO(acct); - int tm = purple_request_fields_get_integer(fields, "mins"); + int tm = purple_request_page_get_integer(page, "mins"); /* only add the account to the GList if it's not already been idled */ if(!unidle_filter(acct)) { @@ -100,12 +99,11 @@ idle_action_ok(G_GNUC_UNUSED gpointer data, PurpleRequestFields *fields) } static void -idle_all_action_ok(G_GNUC_UNUSED gpointer data, PurpleRequestFields *fields) -{ +idle_all_action_ok(G_GNUC_UNUSED gpointer data, PurpleRequestPage *page) { PurpleAccountManager *manager = NULL; PurpleAccount *acct = NULL; GList *list, *iter; - int tm = purple_request_fields_get_integer(fields, "mins"); + int tm = purple_request_page_get_integer(page, "mins"); manager = purple_account_manager_get_default(); list = purple_account_manager_get_enabled(manager); @@ -129,9 +127,8 @@ idle_all_action_ok(G_GNUC_UNUSED gpointer data, PurpleRequestFields *fields) } static void -unidle_action_ok(G_GNUC_UNUSED gpointer data, PurpleRequestFields *fields) -{ - PurpleAccount *acct = purple_request_fields_get_account(fields, "acct"); +unidle_action_ok(G_GNUC_UNUSED gpointer data, PurpleRequestPage *page) { + PurpleAccount *acct = purple_request_page_get_account(page, "acct"); set_idle_time(acct, 0); /* unidle the account */ @@ -158,7 +155,7 @@ purple_idle_set_account_idle_time(G_GNUC_UNUSED GSimpleAction *action, { /* Use the super fancy request API */ - PurpleRequestFields *request; + PurpleRequestPage *request; PurpleRequestGroup *group; PurpleRequestField *field; @@ -172,8 +169,8 @@ purple_idle_set_account_idle_time(G_GNUC_UNUSED GSimpleAction *action, field = purple_request_field_int_new("mins", _("Minutes"), 10, 0, 9999); purple_request_group_add_field(group, field); - request = purple_request_fields_new(); - purple_request_fields_add_group(request, group); + request = purple_request_page_new(); + purple_request_page_add_group(request, group); purple_request_fields(data, N_("I'dle Mak'er"), @@ -190,7 +187,7 @@ purple_idle_unset_account_idle_time(G_GNUC_UNUSED GSimpleAction *action, G_GNUC_UNUSED GVariant *parameter, gpointer data) { - PurpleRequestFields *request; + PurpleRequestPage *request; PurpleRequestGroup *group; PurpleRequestField *field; @@ -207,8 +204,8 @@ purple_idle_unset_account_idle_time(G_GNUC_UNUSED GSimpleAction *action, purple_request_field_account_set_show_all(field, FALSE); purple_request_group_add_field(group, field); - request = purple_request_fields_new(); - purple_request_fields_add_group(request, group); + request = purple_request_page_new(); + purple_request_page_add_group(request, group); purple_request_fields(data, N_("I'dle Mak'er"), @@ -225,7 +222,7 @@ purple_idle_set_all_accounts_idle_time(G_GNUC_UNUSED GSimpleAction *action, G_GNUC_UNUSED GVariant *parameter, gpointer data) { - PurpleRequestFields *request; + PurpleRequestPage *request; PurpleRequestGroup *group; PurpleRequestField *field; @@ -234,8 +231,8 @@ purple_idle_set_all_accounts_idle_time(G_GNUC_UNUSED GSimpleAction *action, field = purple_request_field_int_new("mins", _("Minutes"), 10, 0, 9999); purple_request_group_add_field(group, field); - request = purple_request_fields_new(); - purple_request_fields_add_group(request, group); + request = purple_request_page_new(); + purple_request_page_add_group(request, group); purple_request_fields(data, N_("I'dle Mak'er"), diff --git a/libpurple/protocols/demo/purpledemoprotocolactions.c b/libpurple/protocols/demo/purpledemoprotocolactions.c index c9cae22143..9039a233d2 100644 --- a/libpurple/protocols/demo/purpledemoprotocolactions.c +++ b/libpurple/protocols/demo/purpledemoprotocolactions.c @@ -367,7 +367,7 @@ purple_demo_protocol_request_wait_activate(G_GNUC_UNUSED GSimpleAction *action, static void purple_demo_protocol_request_fields_ok_cb(G_GNUC_UNUSED gpointer data, - PurpleRequestFields *fields) + PurpleRequestPage *page) { PurpleAccount *account = NULL; PurpleRequestField *field = NULL; @@ -378,30 +378,30 @@ purple_demo_protocol_request_fields_ok_cb(G_GNUC_UNUSED gpointer data, info = g_string_new(_("Basic group:\n")); g_string_append_printf(info, _("\tString: %s\n"), - purple_request_fields_get_string(fields, "string")); + purple_request_page_get_string(page, "string")); g_string_append_printf(info, _("\tMultiline string: %s\n"), - purple_request_fields_get_string(fields, - "multiline-string")); + purple_request_page_get_string(page, + "multiline-string")); g_string_append_printf(info, _("\tMasked string: %s\n"), - purple_request_fields_get_string(fields, - "masked-string")); + purple_request_page_get_string(page, + "masked-string")); g_string_append_printf(info, _("\tAlphanumeric string: %s\n"), - purple_request_fields_get_string(fields, - "alphanumeric")); + purple_request_page_get_string(page, + "alphanumeric")); g_string_append_printf(info, _("\tEmail string: %s\n"), - purple_request_fields_get_string(fields, "email")); + purple_request_page_get_string(page, "email")); g_string_append_printf(info, _("\tInteger: %d\n"), - purple_request_fields_get_integer(fields, "int")); + purple_request_page_get_integer(page, "int")); g_string_append_printf(info, _("\tBoolean: %s\n"), - purple_request_fields_get_bool(fields, "bool") ? + purple_request_page_get_bool(page, "bool") ? _("TRUE") : _("FALSE")); g_string_append(info, _("Multiple-choice group:\n")); - tmp = (const char *)purple_request_fields_get_choice(fields, "choice"); + tmp = (const char *)purple_request_page_get_choice(page, "choice"); g_string_append_printf(info, _("\tChoice: %s\n"), tmp); - field = purple_request_fields_get_field(fields, "list"); + field = purple_request_page_get_field(page, "list"); list = purple_request_field_list_get_selected(field); if(list != NULL) { tmp = (const char *)list->data; @@ -410,7 +410,7 @@ purple_demo_protocol_request_fields_ok_cb(G_GNUC_UNUSED gpointer data, } g_string_append_printf(info, _("\tList: %s\n"), tmp); - field = purple_request_fields_get_field(fields, "multilist"); + field = purple_request_page_get_field(page, "multilist"); list = purple_request_field_list_get_selected(field); g_string_append(info, _("\tMulti-list: [")); while(list != NULL) { @@ -423,7 +423,7 @@ purple_demo_protocol_request_fields_ok_cb(G_GNUC_UNUSED gpointer data, g_string_append(info, _("Special group:\n")); - account = purple_request_fields_get_account(fields, "account"); + account = purple_request_page_get_account(page, "account"); if(PURPLE_IS_ACCOUNT(account)) { tmp = purple_contact_info_get_name_for_display(PURPLE_CONTACT_INFO(account)); } else { @@ -438,7 +438,7 @@ purple_demo_protocol_request_fields_ok_cb(G_GNUC_UNUSED gpointer data, static void purple_demo_protocol_request_fields_cancel_cb(G_GNUC_UNUSED gpointer data, - G_GNUC_UNUSED PurpleRequestFields *fields) + G_GNUC_UNUSED PurpleRequestPage *page) { g_message(_("UI cancelled field request")); } @@ -452,7 +452,7 @@ purple_demo_protocol_request_fields_activate(G_GNUC_UNUSED GSimpleAction *action const gchar *account_id = NULL; PurpleAccountManager *manager = NULL; PurpleAccount *account = NULL; - PurpleRequestFields *fields = NULL; + PurpleRequestPage *page = NULL; PurpleRequestGroup *group = NULL; PurpleRequestField *field = NULL; GBytes *icon = NULL; @@ -470,11 +470,11 @@ purple_demo_protocol_request_fields_activate(G_GNUC_UNUSED GSimpleAction *action account = purple_account_manager_find_by_id(manager, account_id); connection = purple_account_get_connection(account); - fields = purple_request_fields_new(); + page = purple_request_page_new(); /* This group will contain basic fields. */ group = purple_request_group_new(_("Basic")); - purple_request_fields_add_group(fields, group); + purple_request_page_add_group(page, group); field = purple_request_field_label_new("basic-label", _("This group contains basic fields")); @@ -512,7 +512,7 @@ purple_demo_protocol_request_fields_activate(G_GNUC_UNUSED GSimpleAction *action /* This group will contain fields with multiple options. */ group = purple_request_group_new(_("Multiple")); - purple_request_fields_add_group(fields, group); + purple_request_page_add_group(page, group); field = purple_request_field_label_new("multiple-label", _("This group contains fields with multiple options")); @@ -542,7 +542,7 @@ purple_demo_protocol_request_fields_activate(G_GNUC_UNUSED GSimpleAction *action /* This group will contain specialized fields. */ group = purple_request_group_new(_("Special")); - purple_request_fields_add_group(fields, group); + purple_request_page_add_group(page, group); field = purple_request_field_label_new("special-label", _("This group contains specialized fields")); @@ -562,7 +562,7 @@ purple_demo_protocol_request_fields_activate(G_GNUC_UNUSED GSimpleAction *action purple_request_group_add_field(group, field); purple_request_fields(connection, _("Request Fields Demo"), - _("Please fill out these fields…"), NULL, fields, + _("Please fill out these fields…"), NULL, page, _("OK"), G_CALLBACK(purple_demo_protocol_request_fields_ok_cb), _("Cancel"), diff --git a/libpurple/protocols/facebook/util.c b/libpurple/protocols/facebook/util.c index 5e0ce1bbbe..9eb99271e1 100644 --- a/libpurple/protocols/facebook/util.c +++ b/libpurple/protocols/facebook/util.c @@ -295,8 +295,7 @@ fb_util_rand_alnum(guint len) } static void -fb_util_request_buddy_ok(gpointer *request_data, PurpleRequestFields *fields) -{ +fb_util_request_buddy_ok(gpointer *request_data, PurpleRequestPage *page) { FbUtilRequestBuddyFunc func = request_data[0]; GList *l; GList *select; @@ -310,7 +309,7 @@ fb_util_request_buddy_ok(gpointer *request_data, PurpleRequestFields *fields) return; } - field = purple_request_fields_get_field(fields, "buddy"); + field = purple_request_page_get_field(page, "buddy"); select = purple_request_field_list_get_selected(field); for (l = select; l != NULL; l = l->next) { @@ -327,7 +326,7 @@ fb_util_request_buddy_ok(gpointer *request_data, PurpleRequestFields *fields) static void fb_util_request_buddy_cancel(gpointer *request_data, - G_GNUC_UNUSED PurpleRequestFields *fields) + G_GNUC_UNUSED PurpleRequestPage *page) { FbUtilRequestBuddyFunc func = request_data[1]; gpointer data = request_data[2]; @@ -382,7 +381,7 @@ fb_util_request_buddy(PurpleConnection *gc, const gchar *title, PurpleRequestCommonParameters *cpar; PurpleRequestField *field; PurpleRequestGroup *group; - PurpleRequestFields *fields; + PurpleRequestPage *page; request_data = g_new0(gpointer, 3); request_data[0] = ok_cb; @@ -393,9 +392,9 @@ fb_util_request_buddy(PurpleConnection *gc, const gchar *title, buddies = purple_blist_find_buddies(acct, NULL); buddies = g_slist_sort(buddies, fb_buddy_cmp); - fields = purple_request_fields_new(); + page = purple_request_page_new(); group = purple_request_group_new(NULL); - purple_request_fields_add_group(fields, group); + purple_request_page_add_group(page, group); field = purple_request_field_list_new("buddy", NULL); purple_request_field_list_set_multi_select(field, multi); @@ -422,7 +421,7 @@ fb_util_request_buddy(PurpleConnection *gc, const gchar *title, g_list_free_full(items, g_free); cpar = purple_request_cpar_from_connection(gc); - return purple_request_fields(gc, title, primary, secondary, fields, + return purple_request_fields(gc, title, primary, secondary, page, _("Ok"), G_CALLBACK(fb_util_request_buddy_ok), _("Cancel"), diff --git a/libpurple/protocols/gg/multilogon.c b/libpurple/protocols/gg/multilogon.c index 65c2f26180..6c5e9be9a2 100644 --- a/libpurple/protocols/gg/multilogon.c +++ b/libpurple/protocols/gg/multilogon.c @@ -217,7 +217,7 @@ ggp_multilogon_dialog(PurpleConnection *gc) { ggp_multilogon_session_data *mldata = ggp_multilogon_get_mldata(gc); PurpleRequestField *field; - PurpleRequestFields *fields; + PurpleRequestPage *page; PurpleRequestGroup *group; PurpleRequestCommonParameters *cpar; PurpleRequestDatasheet *sheet; @@ -227,9 +227,9 @@ ggp_multilogon_dialog(PurpleConnection *gc) if (mldata->dialog_handle != NULL) return; - fields = purple_request_fields_new(); + page = purple_request_page_new(); group = purple_request_group_new(NULL); - purple_request_fields_add_group(fields, group); + purple_request_page_add_group(page, group); sheet = purple_request_datasheet_new(); purple_request_datasheet_add_column(sheet, @@ -253,7 +253,7 @@ ggp_multilogon_dialog(PurpleConnection *gc) purple_request_cpar_set_icon(cpar, PURPLE_REQUEST_ICON_DIALOG); dialog_handle = purple_request_fields(gc, - _("Other Gadu-Gadu sessions"), NULL, NULL, fields, + _("Other Gadu-Gadu sessions"), NULL, NULL, page, NULL, NULL, _("Close"), NULL, cpar, NULL); mldata->sheet_handle = sheet; diff --git a/libpurple/protocols/gg/pubdir-prpl.c b/libpurple/protocols/gg/pubdir-prpl.c index 838e8c578c..379812c0d5 100644 --- a/libpurple/protocols/gg/pubdir-prpl.c +++ b/libpurple/protocols/gg/pubdir-prpl.c @@ -727,16 +727,15 @@ ggp_pubdir_search_results_display(PurpleConnection *gc, int records_count, } static void -ggp_pubdir_search_request(PurpleConnection *gc, PurpleRequestFields *fields) -{ +ggp_pubdir_search_request(PurpleConnection *gc, PurpleRequestPage *page) { ggp_pubdir_search_form *form = g_new0(ggp_pubdir_search_form, 1); purple_debug_info("gg", "ggp_pubdir_search_request"); - form->nick = g_strdup(purple_request_fields_get_string(fields, "name")); - form->city = g_strdup(purple_request_fields_get_string(fields, "city")); + form->nick = g_strdup(purple_request_page_get_string(page, "name")); + form->city = g_strdup(purple_request_page_get_string(page, "city")); form->gender = - GPOINTER_TO_INT(purple_request_fields_get_choice(fields, "gender")); + GPOINTER_TO_INT(purple_request_page_get_choice(page, "gender")); form->offset = 0; form->limit = GGP_PUBDIR_SEARCH_PER_PAGE; @@ -747,15 +746,15 @@ ggp_pubdir_search_request(PurpleConnection *gc, PurpleRequestFields *fields) void ggp_pubdir_search(PurpleConnection *gc, const ggp_pubdir_search_form *form) { - PurpleRequestFields *fields; + PurpleRequestPage *page; PurpleRequestGroup *group; PurpleRequestField *field; purple_debug_info("gg", "ggp_pubdir_search"); - fields = purple_request_fields_new(); + page = purple_request_page_new(); group = purple_request_group_new(NULL); - purple_request_fields_add_group(fields, group); + purple_request_page_add_group(page, group); field = purple_request_field_string_new("name", _("Name"), form ? form->nick : NULL, FALSE); @@ -775,7 +774,7 @@ ggp_pubdir_search(PurpleConnection *gc, const ggp_pubdir_search_form *form) purple_request_group_add_field(group, field); purple_request_fields(gc, _("Find buddies"), _("Find buddies"), - _("Please, enter your search criteria below"), fields, + _("Please, enter your search criteria below"), page, _("OK"), G_CALLBACK(ggp_pubdir_search_request), _("Cancel"), NULL, purple_request_cpar_from_connection(gc), gc); @@ -892,7 +891,7 @@ static void ggp_pubdir_set_info_got_token(PurpleConnection *gc, } static void -ggp_pubdir_set_info_request(PurpleConnection *gc, PurpleRequestFields *fields) +ggp_pubdir_set_info_request(PurpleConnection *gc, PurpleRequestPage *page) { PurpleAccount *account = purple_connection_get_account(gc); PurpleContactInfo *info = PURPLE_CONTACT_INFO(account); @@ -904,24 +903,23 @@ ggp_pubdir_set_info_request(PurpleConnection *gc, PurpleRequestFields *fields) purple_debug_info("gg", "ggp_pubdir_set_info_request"); record->uin = uin; - record->first_name = - g_strdup(purple_request_fields_get_string(fields, "first_name")); - record->last_name = - g_strdup(purple_request_fields_get_string(fields, "last_name")); - record->gender = - GPOINTER_TO_INT(purple_request_fields_get_choice(fields, "gender")); - record->city = g_strdup(purple_request_fields_get_string(fields, "city")); - record->province = GPOINTER_TO_INT( - purple_request_fields_get_choice(fields, "province")); - - birth_s = g_strdup_printf( - "%sT10:00:00+00:00", - purple_request_fields_get_string(fields, "birth_date")); + record->first_name = g_strdup(purple_request_page_get_string(page, + "first_name")); + record->last_name = g_strdup(purple_request_page_get_string(page, + "last_name")); + record->gender = GPOINTER_TO_INT(purple_request_page_get_choice(page, + "gender")); + record->city = g_strdup(purple_request_page_get_string(page, "city")); + record->province = GPOINTER_TO_INT(purple_request_page_get_choice(page, + "province")); + + birth_s = g_strdup_printf("%sT10:00:00+00:00", + purple_request_page_get_string(page, "birth_date")); record->birth = g_date_time_new_from_iso8601(birth_s, NULL); g_free(birth_s); purple_debug_info("gg", "ggp_pubdir_set_info_request: birth [%lu][%s]", g_date_time_to_unix(record->birth), - purple_request_fields_get_string(fields, "birth_date")); + purple_request_page_get_string(page, "birth_date")); url = g_strdup_printf("http://api.gadu-gadu.pl/users/%u.xml", uin); ggp_oauth_request(gc, ggp_pubdir_set_info_got_token, record, "PUT", url); @@ -934,7 +932,7 @@ ggp_pubdir_set_info_dialog(PurpleConnection *gc, int records_count, G_GNUC_UNUSED int next_offset, G_GNUC_UNUSED gpointer data) { - PurpleRequestFields *fields; + PurpleRequestPage *page; PurpleRequestGroup *group; PurpleRequestField *field; gchar *bday = NULL; @@ -946,9 +944,9 @@ ggp_pubdir_set_info_dialog(PurpleConnection *gc, int records_count, record = (records_count == 1 ? &records[0] : NULL); - fields = purple_request_fields_new(); + page = purple_request_page_new(); group = purple_request_group_new(NULL); - purple_request_fields_add_group(fields, group); + purple_request_page_add_group(page, group); field = purple_request_field_string_new("first_name", _("First name"), record ? record->first_name : NULL, @@ -1005,7 +1003,7 @@ ggp_pubdir_set_info_dialog(PurpleConnection *gc, int records_count, } purple_request_fields(gc, _("Set User Info"), _("Set User Info"), NULL, - fields, _("OK"), + page, _("OK"), G_CALLBACK(ggp_pubdir_set_info_request), _("Cancel"), NULL, purple_request_cpar_from_connection(gc), gc); } diff --git a/libpurple/protocols/gg/status.c b/libpurple/protocols/gg/status.c index 00288f6594..570df6e8a6 100644 --- a/libpurple/protocols/gg/status.c +++ b/libpurple/protocols/gg/status.c @@ -204,11 +204,6 @@ const gchar * ggp_status_get_name(const gchar *purple_status) * Own status. ******************************************************************************/ -static void ggp_status_broadcasting_dialog_ok(PurpleConnection *gc, - PurpleRequestFields *fields); - -/******************************************************************************/ - void ggp_status_set_initial(PurpleConnection *gc, struct gg_login_params *glp) { ggp_status_session_data *ssdata = ggp_status_get_ssdata(gc); @@ -339,15 +334,23 @@ void ggp_status_set_status_broadcasting(PurpleConnection *gc, purple_account_get_active_status(account)); } +static void +ggp_status_broadcasting_dialog_ok(PurpleConnection *gc, + PurpleRequestPage *page) +{ + gboolean buddies_only = purple_request_page_get_bool(page, "buddies_only"); + ggp_status_set_status_broadcasting(gc, !buddies_only); +} + void ggp_status_broadcasting_dialog(PurpleConnection *gc) { - PurpleRequestFields *fields; + PurpleRequestPage *page; PurpleRequestGroup *group; PurpleRequestField *field; - fields = purple_request_fields_new(); + page = purple_request_page_new(); group = purple_request_group_new(NULL); - purple_request_fields_add_group(fields, group); + purple_request_page_add_group(page, group); field = purple_request_field_bool_new("buddies_only", _("Show status only for buddies"), @@ -358,19 +361,12 @@ void ggp_status_broadcasting_dialog(PurpleConnection *gc) _("Change status broadcasting"), _("Please, select who can see your status"), NULL, - fields, + page, _("OK"), G_CALLBACK(ggp_status_broadcasting_dialog_ok), _("Cancel"), NULL, purple_request_cpar_from_connection(gc), gc); } -static void ggp_status_broadcasting_dialog_ok(PurpleConnection *gc, - PurpleRequestFields *fields) -{ - ggp_status_set_status_broadcasting(gc, - !purple_request_fields_get_bool(fields, "buddies_only")); -} - /******************************************************************************* * Buddy status. ******************************************************************************/ diff --git a/libpurple/protocols/jabber/auth.c b/libpurple/protocols/jabber/auth.c index d22e282862..ddba00c8bc 100644 --- a/libpurple/protocols/jabber/auth.c +++ b/libpurple/protocols/jabber/auth.c @@ -74,8 +74,7 @@ static void disallow_plaintext_auth(PurpleAccount *account) } static void -auth_old_pass_cb(PurpleConnection *gc, PurpleRequestFields *fields) -{ +auth_old_pass_cb(PurpleConnection *gc, PurpleRequestPage *page) { PurpleAccount *account; JabberStream *js; const char *entry; @@ -87,8 +86,8 @@ auth_old_pass_cb(PurpleConnection *gc, PurpleRequestFields *fields) account = purple_connection_get_account(gc); js = purple_connection_get_protocol_data(gc); - entry = purple_request_fields_get_string(fields, "password"); - remember = purple_request_fields_get_bool(fields, "remember"); + entry = purple_request_page_get_string(page, "password"); + remember = purple_request_page_get_bool(page, "remember"); if (!entry || !*entry) { @@ -116,9 +115,7 @@ auth_old_pass_cb(PurpleConnection *gc, PurpleRequestFields *fields) } static void -auth_no_pass_cb(PurpleConnection *gc, - G_GNUC_UNUSED PurpleRequestFields *fields) -{ +auth_no_pass_cb(PurpleConnection *gc, G_GNUC_UNUSED PurpleRequestPage *page) { /* TODO: the password prompt dialog doesn't get disposed if the account disconnects */ PURPLE_ASSERT_CONNECTION_IS_VALID(gc); diff --git a/libpurple/protocols/jabber/buddy.c b/libpurple/protocols/jabber/buddy.c index 19754a40aa..433dc1cffa 100644 --- a/libpurple/protocols/jabber/buddy.c +++ b/libpurple/protocols/jabber/buddy.c @@ -555,8 +555,7 @@ jabber_set_buddy_icon(G_GNUC_UNUSED PurpleProtocolServer *protocol_server, * Sets the vCard with data from PurpleRequestFields. */ static void -jabber_format_info(PurpleConnection *gc, PurpleRequestFields *fields) -{ +jabber_format_info(PurpleConnection *gc, PurpleRequestPage *page) { PurpleXmlNode *vc_node; PurpleRequestField *field; PurpleProtocol *protocol = NULL; @@ -574,7 +573,7 @@ jabber_format_info(PurpleConnection *gc, PurpleRequestFields *fields) if (*vc_tp->label == '\0') continue; - field = purple_request_fields_get_field(fields, vc_tp->tag); + field = purple_request_page_get_field(page, vc_tp->tag); text = purple_request_field_string_get_value(field); @@ -619,7 +618,7 @@ jabber_setup_set_info(G_GNUC_UNUSED GSimpleAction *action, GVariant *parameter, PurpleAccountManager *manager = NULL; PurpleAccount *account = NULL; PurpleConnection *connection = NULL; - PurpleRequestFields *fields; + PurpleRequestPage *page; PurpleRequestGroup *group; PurpleRequestField *field; const struct vcard_template *vc_tp; @@ -637,9 +636,9 @@ jabber_setup_set_info(G_GNUC_UNUSED GSimpleAction *action, GVariant *parameter, account = purple_account_manager_find_by_id(manager, account_id); connection = purple_account_get_connection(account); - fields = purple_request_fields_new(); + page = purple_request_page_new(); group = purple_request_group_new(NULL); - purple_request_fields_add_group(fields, group); + purple_request_page_add_group(page, group); /* * Get existing, XML-formatted, user info @@ -691,7 +690,7 @@ jabber_setup_set_info(G_GNUC_UNUSED GSimpleAction *action, GVariant *parameter, _("Edit XMPP vCard"), _("All items below are optional. Enter only the " "information with which you feel comfortable."), - fields, + page, _("Save"), G_CALLBACK(jabber_format_info), _("Cancel"), NULL, purple_request_cpar_from_connection(connection), diff --git a/libpurple/protocols/jabber/jabber.c b/libpurple/protocols/jabber/jabber.c index ce47eb7576..784dbab604 100644 --- a/libpurple/protocols/jabber/jabber.c +++ b/libpurple/protocols/jabber/jabber.c @@ -1861,15 +1861,14 @@ jabber_password_change_result_cb(JabberStream *js, g_free(data); } -static void jabber_password_change_cb(JabberStream *js, - PurpleRequestFields *fields) -{ +static void +jabber_password_change_cb(JabberStream *js, PurpleRequestPage *page) { const char *p1, *p2; JabberIq *iq; PurpleXmlNode *query, *y; - p1 = purple_request_fields_get_string(fields, "password1"); - p2 = purple_request_fields_get_string(fields, "password2"); + p1 = purple_request_page_get_string(page, "password1"); + p2 = purple_request_page_get_string(page, "password2"); if(!purple_strequal(p1, p2)) { purple_notify_error(js->gc, NULL, @@ -1903,7 +1902,7 @@ jabber_password_change(G_GNUC_UNUSED GSimpleAction *action, GVariant *parameter, PurpleAccount *account = NULL; PurpleConnection *connection = NULL; JabberStream *js = NULL; - PurpleRequestFields *fields; + PurpleRequestPage *page; PurpleRequestGroup *group; PurpleRequestField *field; @@ -1918,9 +1917,9 @@ jabber_password_change(G_GNUC_UNUSED GSimpleAction *action, GVariant *parameter, connection = purple_account_get_connection(account); js = purple_connection_get_protocol_data(connection); - fields = purple_request_fields_new(); + page = purple_request_page_new(); group = purple_request_group_new(NULL); - purple_request_fields_add_group(fields, group); + purple_request_page_add_group(page, group); field = purple_request_field_string_new("password1", _("Password"), "", FALSE); @@ -1937,7 +1936,7 @@ jabber_password_change(G_GNUC_UNUSED GSimpleAction *action, GVariant *parameter, purple_request_fields(connection, _("Change XMPP Password"), _("Change XMPP Password"), _("Please enter your new password"), - fields, + page, _("OK"), G_CALLBACK(jabber_password_change_cb), _("Cancel"), NULL, purple_request_cpar_from_connection(connection), js); @@ -2613,17 +2612,15 @@ typedef struct { static void jabber_media_cancel_cb(JabberMediaRequest *request, - G_GNUC_UNUSED PurpleRequestFields *fields) + G_GNUC_UNUSED PurpleRequestPage *page) { g_free(request->who); g_free(request); } static void -jabber_media_ok_cb(JabberMediaRequest *request, PurpleRequestFields *fields) -{ - PurpleRequestField *field = - purple_request_fields_get_field(fields, "resource"); +jabber_media_ok_cb(JabberMediaRequest *request, PurpleRequestPage *page) { + PurpleRequestField *field = purple_request_page_get_field(page, "resource"); const gchar *selected = purple_request_field_choice_get_value(field); gchar *who = g_strdup_printf("%s/%s", request->who, selected); jabber_initiate_media(request->media, request->account, who, request->type); @@ -2697,12 +2694,12 @@ jabber_initiate_media(PurpleProtocolMedia *media, PurpleAccount *account, * we need to pick one to initiate with */ GList *l; char *msg; - PurpleRequestFields *fields; - PurpleRequestField *field = purple_request_field_choice_new( - "resource", _("Resource"), 0); - PurpleRequestGroup *group; + PurpleRequestPage *page = NULL; + PurpleRequestField *field = NULL; + PurpleRequestGroup *group = NULL; JabberMediaRequest *request; + field = purple_request_field_choice_new("resource", _("Resource"), 0); for(l = jb->resources; l; l = l->next) { JabberBuddyResource *ljbr = l->data; @@ -2750,7 +2747,7 @@ jabber_initiate_media(PurpleProtocolMedia *media, PurpleAccount *account, } 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(); + page = purple_request_page_new(); group = purple_request_group_new(NULL); request = g_new0(JabberMediaRequest, 1); request->media = media; @@ -2759,9 +2756,9 @@ jabber_initiate_media(PurpleProtocolMedia *media, PurpleAccount *account, request->type = type; purple_request_group_add_field(group, field); - purple_request_fields_add_group(fields, group); + purple_request_page_add_group(page, group); purple_request_fields(account, _("Select a Resource"), msg, - NULL, fields, _("Initiate Media"), + NULL, page, _("Initiate Media"), G_CALLBACK(jabber_media_ok_cb), _("Cancel"), G_CALLBACK(jabber_media_cancel_cb), purple_request_cpar_from_account(account), diff --git a/libpurple/protocols/jabber/si.c b/libpurple/protocols/jabber/si.c index bc88700c03..ad259699de 100644 --- a/libpurple/protocols/jabber/si.c +++ b/libpurple/protocols/jabber/si.c @@ -1469,7 +1469,7 @@ static void jabber_si_xfer_send_disco_cb(JabberStream *js, const char *who, static void resource_select_cancel_cb(PurpleXfer *xfer, - G_GNUC_UNUSED PurpleRequestFields *fields) + G_GNUC_UNUSED PurpleRequestPage *page) { purple_xfer_cancel_local(xfer); } @@ -1516,9 +1516,10 @@ static void do_transfer_send(PurpleXfer *xfer, const char *resource) g_free(who); } -static void resource_select_ok_cb(PurpleXfer *xfer, PurpleRequestFields *fields) +static void +resource_select_ok_cb(PurpleXfer *xfer, PurpleRequestPage *page) { - PurpleRequestField *field = purple_request_fields_get_field(fields, "resource"); + PurpleRequestField *field = purple_request_page_get_field(page, "resource"); const char *selected_label = purple_request_field_choice_get_value(field); do_transfer_send(xfer, selected_label); @@ -1587,7 +1588,7 @@ static void jabber_si_xfer_xfer_init(PurpleXfer *xfer) /* we've got multiple resources, we need to pick one to send to */ GList *l; 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(); + PurpleRequestPage *page = purple_request_page_new(); PurpleRequestField *field = purple_request_field_choice_new("resource", _("Resource"), 0); PurpleRequestGroup *group = purple_request_group_new(NULL); @@ -1598,9 +1599,9 @@ static void jabber_si_xfer_xfer_init(PurpleXfer *xfer) purple_request_group_add_field(group, field); - purple_request_fields_add_group(fields, group); + purple_request_page_add_group(page, group); - purple_request_fields(jsx->js->gc, _("Select a Resource"), msg, NULL, fields, + purple_request_fields(jsx->js->gc, _("Select a Resource"), msg, NULL, page, _("Send File"), G_CALLBACK(resource_select_ok_cb), _("Cancel"), G_CALLBACK(resource_select_cancel_cb), purple_request_cpar_from_connection(jsx->js->gc), xfer); diff --git a/libpurple/protocols/jabber/xdata.c b/libpurple/protocols/jabber/xdata.c index 2372ed9433..96701a66e7 100644 --- a/libpurple/protocols/jabber/xdata.c +++ b/libpurple/protocols/jabber/xdata.c @@ -47,7 +47,8 @@ struct jabber_x_data_data { PurpleRequestGroup *actiongroup; }; -static void jabber_x_data_ok_cb(struct jabber_x_data_data *data, PurpleRequestFields *fields) { +static void +jabber_x_data_ok_cb(struct jabber_x_data_data *data, PurpleRequestPage *page) { PurpleXmlNode *result = purple_xmlnode_new("x"); GCallback cb = data->cb; gpointer user_data = data->user_data; @@ -59,7 +60,7 @@ static void jabber_x_data_ok_cb(struct jabber_x_data_data *data, PurpleRequestFi purple_xmlnode_set_namespace(result, "jabber:x:data"); purple_xmlnode_set_attrib(result, "type", "submit"); - for(groups = purple_request_fields_get_groups(fields); groups; groups = groups->next) { + for(groups = purple_request_page_get_groups(page); groups; groups = groups->next) { if(groups->data == data->actiongroup) { for(flds = purple_request_group_get_fields(groups->data); flds; flds = flds->next) { PurpleRequestField *field = flds->data; @@ -157,7 +158,7 @@ static void jabber_x_data_ok_cb(struct jabber_x_data_data *data, PurpleRequestFi static void jabber_x_data_cancel_cb(struct jabber_x_data_data *data, - G_GNUC_UNUSED PurpleRequestFields *fields) + G_GNUC_UNUSED PurpleRequestPage *page) { PurpleXmlNode *result = purple_xmlnode_new("x"); GCallback cb = data->cb; @@ -190,7 +191,7 @@ void *jabber_x_data_request_with_actions(JabberStream *js, PurpleXmlNode *packet { void *handle; PurpleXmlNode *fn, *x; - PurpleRequestFields *fields; + PurpleRequestPage *page; PurpleRequestGroup *group; PurpleRequestField *field = NULL; @@ -204,9 +205,9 @@ void *jabber_x_data_request_with_actions(JabberStream *js, PurpleXmlNode *packet data->cb = G_CALLBACK(cb); data->js = js; - fields = purple_request_fields_new(); + page = purple_request_page_new(); group = purple_request_group_new(NULL); - purple_request_fields_add_group(fields, group); + purple_request_page_add_group(page, group); for(fn = purple_xmlnode_get_child(packet, "field"); fn; fn = purple_xmlnode_get_next_twin(fn)) { PurpleXmlNode *valuenode; @@ -366,7 +367,7 @@ void *jabber_x_data_request_with_actions(JabberStream *js, PurpleXmlNode *packet int i; data->actiongroup = group = purple_request_group_new(_("Actions")); - purple_request_fields_add_group(fields, group); + purple_request_page_add_group(page, group); actionfield = purple_request_field_choice_new("libpurple:jabber:xdata:actions", _("Select an action"), GINT_TO_POINTER(defaultaction)); for(i = 0, action = actions; action; action = g_list_next(action), i++) { @@ -385,7 +386,7 @@ void *jabber_x_data_request_with_actions(JabberStream *js, PurpleXmlNode *packet if((x = purple_xmlnode_get_child(packet, "instructions"))) instructions = purple_xmlnode_get_data(x); - handle = purple_request_fields(js->gc, title, title, instructions, fields, + handle = purple_request_fields(js->gc, title, title, instructions, page, _("OK"), G_CALLBACK(jabber_x_data_ok_cb), _("Cancel"), G_CALLBACK(jabber_x_data_cancel_cb), purple_request_cpar_from_connection(js->gc), diff --git a/libpurple/purplechatconversation.c b/libpurple/purplechatconversation.c index b96c61b2c3..399d29ecfd 100644 --- a/libpurple/purplechatconversation.c +++ b/libpurple/purplechatconversation.c @@ -1035,7 +1035,7 @@ purple_chat_conversation_get_nick(PurpleChatConversation *chat) { } static void -invite_user_to_chat(gpointer data, PurpleRequestFields *fields) { +invite_user_to_chat(gpointer data, PurpleRequestPage *page) { PurpleChatConversation *chat; PurpleChatConversationPrivate *priv; PurpleConnection *pc; @@ -1044,8 +1044,8 @@ invite_user_to_chat(gpointer data, PurpleRequestFields *fields) { chat = PURPLE_CHAT_CONVERSATION(data); priv = purple_chat_conversation_get_instance_private(chat); - user = purple_request_fields_get_string(fields, "screenname"); - message = purple_request_fields_get_string(fields, "message"); + user = purple_request_page_get_string(page, "screenname"); + message = purple_request_page_get_string(page, "message"); pc = purple_conversation_get_connection(PURPLE_CONVERSATION(chat)); purple_serv_chat_invite(pc, priv->id, message, user); @@ -1057,7 +1057,7 @@ purple_chat_conversation_invite_user(PurpleChatConversation *chat, gboolean confirm) { PurpleAccount *account; - PurpleRequestFields *fields; + PurpleRequestPage *page; PurpleRequestGroup *group; PurpleRequestField *field; @@ -1076,9 +1076,9 @@ purple_chat_conversation_invite_user(PurpleChatConversation *chat, return; } - fields = purple_request_fields_new(); + page = purple_request_page_new(); group = purple_request_group_new(_("Invite to chat")); - purple_request_fields_add_group(fields, group); + purple_request_page_add_group(page, group); field = purple_request_field_string_new("screenname", _("Buddy"), user, FALSE); @@ -1093,7 +1093,7 @@ purple_chat_conversation_invite_user(PurpleChatConversation *chat, purple_request_fields(chat, _("Invite to chat"), NULL, _("Please enter the name of the user you wish to " "invite, along with an optional invite message."), - fields, + page, _("Invite"), G_CALLBACK(invite_user_to_chat), _("Cancel"), NULL, purple_request_cpar_from_conversation(PURPLE_CONVERSATION(chat)), diff --git a/libpurple/purpleprivate.h b/libpurple/purpleprivate.h index be038a2e91..afcd5f096e 100644 --- a/libpurple/purpleprivate.h +++ b/libpurple/purpleprivate.h @@ -338,10 +338,10 @@ void purple_whiteboard_manager_shutdown(void); */ G_GNUC_INTERNAL void purple_account_set_enabled_plain(PurpleAccount *account, gboolean enabled); -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_group_set_field_list(PurpleRequestGroup *group, PurpleRequestFields *fields); +G_GNUC_INTERNAL void _purple_request_page_add_field(PurpleRequestPage *fields, PurpleRequestField *field); +G_GNUC_INTERNAL void _purple_request_page_set_field_required(PurpleRequestPage *fields, PurpleRequestField *field, gboolean required); +G_GNUC_INTERNAL void _purple_request_page_set_field_validator(PurpleRequestPage *fields, PurpleRequestField *field, gboolean validator); +G_GNUC_INTERNAL void _purple_request_group_set_page(PurpleRequestGroup *group, PurpleRequestPage *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); diff --git a/libpurple/purplerequestgroup.c b/libpurple/purplerequestgroup.c index 371cb3a6f2..ba3ed4d7a7 100644 --- a/libpurple/purplerequestgroup.c +++ b/libpurple/purplerequestgroup.c @@ -28,7 +28,7 @@ struct _PurpleRequestGroup { GObject parent; - PurpleRequestFields *fields_list; + PurpleRequestPage *page; char *title; @@ -171,12 +171,12 @@ purple_request_group_new(const char *title) { } void -_purple_request_group_set_field_list(PurpleRequestGroup *group, - PurpleRequestFields *fields) +_purple_request_group_set_page(PurpleRequestGroup *group, + PurpleRequestPage *page) { g_return_if_fail(PURPLE_IS_REQUEST_GROUP(group)); - group->fields_list = fields; + group->page = page; } void @@ -186,8 +186,7 @@ _purple_request_group_set_field_required(PurpleRequestGroup *group, { g_return_if_fail(PURPLE_IS_REQUEST_GROUP(group)); - _purple_request_field_list_set_field_required(group->fields_list, field, - required); + _purple_request_page_set_field_required(group->page, field, required); } void @@ -197,8 +196,7 @@ _purple_request_group_set_field_validator(PurpleRequestGroup *group, { g_return_if_fail(PURPLE_IS_REQUEST_GROUP(group)); - _purple_request_field_list_set_field_validator(group->fields_list, field, - validator); + _purple_request_page_set_field_validator(group->page, field, validator); } void @@ -213,8 +211,8 @@ purple_request_group_add_field(PurpleRequestGroup *group, position = g_list_length(group->fields); group->fields = g_list_append(group->fields, field); - if(group->fields_list != NULL) { - _purple_request_field_list_add_field(group->fields_list, field); + if(PURPLE_IS_REQUEST_PAGE(group->page)) { + _purple_request_page_add_field(group->page, field); } _purple_request_field_set_group(field, group); @@ -238,10 +236,10 @@ purple_request_group_get_fields(PurpleRequestGroup *group) return group->fields; } -PurpleRequestFields * -purple_request_group_get_fields_list(PurpleRequestGroup *group) +PurpleRequestPage * +purple_request_group_get_page(PurpleRequestGroup *group) { g_return_val_if_fail(PURPLE_IS_REQUEST_GROUP(group), NULL); - return group->fields_list; + return group->page; } diff --git a/libpurple/purplerequestgroup.h b/libpurple/purplerequestgroup.h index 458fe6f7c5..18ab54b803 100644 --- a/libpurple/purplerequestgroup.h +++ b/libpurple/purplerequestgroup.h @@ -87,14 +87,14 @@ const char *purple_request_group_get_title(PurpleRequestGroup *group); GList *purple_request_group_get_fields(PurpleRequestGroup *group); /** - * purple_request_group_get_fields_list: + * purple_request_group_get_page: * @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_group_get_fields_list(PurpleRequestGroup *group); +PurpleRequestPage *purple_request_group_get_page(PurpleRequestGroup *group); G_END_DECLS diff --git a/libpurple/purplerequestpage.c b/libpurple/purplerequestpage.c index 21de6a36e6..cb6bff8340 100644 --- a/libpurple/purplerequestpage.c +++ b/libpurple/purplerequestpage.c @@ -25,8 +25,9 @@ #include "purplerequestpage.h" #include "purpleprivate.h" -struct _PurpleRequestFields -{ +struct _PurpleRequestPage { + GObject parent; + GList *groups; GHashTable *fields; @@ -38,92 +39,134 @@ struct _PurpleRequestFields void *ui_data; }; -PurpleRequestFields * -purple_request_fields_new(void) -{ - PurpleRequestFields *fields; +/****************************************************************************** + * GListModel Implementation + *****************************************************************************/ +static GType +purple_request_page_get_item_type(G_GNUC_UNUSED GListModel *model) { + return PURPLE_TYPE_REQUEST_GROUP; +} + +static guint +purple_request_page_get_n_items(GListModel *model) { + PurpleRequestPage *page = PURPLE_REQUEST_PAGE(model); - fields = g_new0(PurpleRequestFields, 1); + return g_list_length(page->groups); +} - fields->fields = g_hash_table_new_full(g_str_hash, g_str_equal, - g_free, NULL); +static gpointer +purple_request_page_get_item(GListModel *model, guint index) { + PurpleRequestPage *page = PURPLE_REQUEST_PAGE(model); - return fields; + return g_list_nth_data(page->groups, index); } -void -purple_request_fields_destroy(PurpleRequestFields *fields) -{ - g_return_if_fail(fields != NULL); +static void +purple_request_page_list_model_init(GListModelInterface *iface) { + iface->get_item_type = purple_request_page_get_item_type; + iface->get_item = purple_request_page_get_item; + iface->get_n_items = purple_request_page_get_n_items; +} + +/****************************************************************************** + * GObject Implementation + *****************************************************************************/ +G_DEFINE_TYPE_WITH_CODE(PurpleRequestPage, purple_request_page, G_TYPE_OBJECT, + G_IMPLEMENT_INTERFACE(G_TYPE_LIST_MODEL, + purple_request_page_list_model_init)) + +static void +purple_request_page_finalize(GObject *obj) { + PurpleRequestPage *page = PURPLE_REQUEST_PAGE(obj); - 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); - g_free(fields); + g_list_free_full(page->groups, g_object_unref); + g_list_free(page->required_fields); + g_list_free(page->validated_fields); + g_hash_table_destroy(page->fields); + + G_OBJECT_CLASS(purple_request_page_parent_class)->finalize(obj); +} + +static void +purple_request_page_init(PurpleRequestPage *page) { + page->fields = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL); +} + +static void +purple_request_page_class_init(PurpleRequestPageClass *klass) { + GObjectClass *obj_class = G_OBJECT_CLASS(klass); + + obj_class->finalize = purple_request_page_finalize; +} + +/****************************************************************************** + * Public API + *****************************************************************************/ +PurpleRequestPage * +purple_request_page_new(void) { + return g_object_new(PURPLE_TYPE_REQUEST_PAGE, NULL); } void -_purple_request_field_list_set_field_required(PurpleRequestFields *fields, - PurpleRequestField *field, - gboolean required) +_purple_request_page_set_field_required(PurpleRequestPage *page, + PurpleRequestField *field, + gboolean required) { - g_return_if_fail(fields != NULL); + g_return_if_fail(PURPLE_IS_REQUEST_PAGE(page)); if(required) { - fields->required_fields = g_list_append(fields->required_fields, field); + page->required_fields = g_list_append(page->required_fields, field); } else { - fields->required_fields = g_list_remove(fields->required_fields, field); + page->required_fields = g_list_remove(page->required_fields, field); } } void -_purple_request_field_list_set_field_validator(PurpleRequestFields *fields, - PurpleRequestField *field, - gboolean validator) +_purple_request_page_set_field_validator(PurpleRequestPage *page, + PurpleRequestField *field, + gboolean validator) { - g_return_if_fail(fields != NULL); + g_return_if_fail(PURPLE_IS_REQUEST_PAGE(page)); - fields->validated_fields = g_list_remove(fields->validated_fields, field); + page->validated_fields = g_list_remove(page->validated_fields, field); if(validator) { - fields->validated_fields = g_list_append(fields->validated_fields, - field); + page->validated_fields = g_list_append(page->validated_fields, field); } } void -_purple_request_field_list_add_field(PurpleRequestFields *fields, - PurpleRequestField *field) +_purple_request_page_add_field(PurpleRequestPage *page, + PurpleRequestField *field) { - g_return_if_fail(fields != NULL); + g_return_if_fail(PURPLE_IS_REQUEST_PAGE(page)); - g_hash_table_insert(fields->fields, + g_hash_table_insert(page->fields, g_strdup(purple_request_field_get_id(field)), field); if(purple_request_field_is_required(field)) { - fields->required_fields = g_list_append(fields->required_fields, - field); + page->required_fields = g_list_append(page->required_fields, field); } if(purple_request_field_is_validatable(field)) { - fields->validated_fields = g_list_append(fields->validated_fields, - field); + page->validated_fields = g_list_append(page->validated_fields, field); } } void -purple_request_fields_add_group(PurpleRequestFields *fields, - PurpleRequestGroup *group) +purple_request_page_add_group(PurpleRequestPage *page, + PurpleRequestGroup *group) { + guint position; GList *l; PurpleRequestField *field; - g_return_if_fail(fields != NULL); + g_return_if_fail(PURPLE_IS_REQUEST_PAGE(page)); g_return_if_fail(PURPLE_IS_REQUEST_GROUP(group)); - fields->groups = g_list_append(fields->groups, group); + position = g_list_length(page->groups); + page->groups = g_list_append(page->groups, group); - _purple_request_group_set_field_list(group, fields); + _purple_request_group_set_page(group, page); for (l = purple_request_group_get_fields(group); l != NULL; @@ -131,78 +174,75 @@ purple_request_fields_add_group(PurpleRequestFields *fields, field = l->data; - g_hash_table_insert(fields->fields, - g_strdup(purple_request_field_get_id(field)), field); + g_hash_table_insert(page->fields, + g_strdup(purple_request_field_get_id(field)), + field); if (purple_request_field_is_required(field)) { - fields->required_fields = - g_list_append(fields->required_fields, field); + page->required_fields = g_list_append(page->required_fields, + field); } if (purple_request_field_is_validatable(field)) { - fields->validated_fields = - g_list_append(fields->validated_fields, field); + page->validated_fields = g_list_append(page->validated_fields, + field); } } + + g_list_model_items_changed(G_LIST_MODEL(page), position, 0, 1); } GList * -purple_request_fields_get_groups(const PurpleRequestFields *fields) -{ - g_return_val_if_fail(fields != NULL, NULL); +purple_request_page_get_groups(PurpleRequestPage *page) { + g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), NULL); - return fields->groups; + return page->groups; } gboolean -purple_request_fields_exists(const PurpleRequestFields *fields, const char *id) -{ - g_return_val_if_fail(fields != NULL, FALSE); +purple_request_page_exists(PurpleRequestPage *page, const char *id) { + g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), FALSE); g_return_val_if_fail(id != NULL, FALSE); - return (g_hash_table_lookup(fields->fields, id) != NULL); + return (g_hash_table_lookup(page->fields, id) != NULL); } const GList * -purple_request_fields_get_required(const PurpleRequestFields *fields) -{ - g_return_val_if_fail(fields != NULL, NULL); +purple_request_page_get_required(PurpleRequestPage *page) { + g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), NULL); - return fields->required_fields; + return page->required_fields; } const GList * -purple_request_fields_get_validatable(const PurpleRequestFields *fields) -{ - g_return_val_if_fail(fields != NULL, NULL); +purple_request_page_get_validatable(PurpleRequestPage *page) { + g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), NULL); - return fields->validated_fields; + return page->validated_fields; } gboolean -purple_request_fields_is_field_required(const PurpleRequestFields *fields, - const char *id) +purple_request_page_is_field_required(PurpleRequestPage *page, const char *id) { PurpleRequestField *field; - g_return_val_if_fail(fields != NULL, FALSE); + g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), FALSE); g_return_val_if_fail(id != NULL, FALSE); - if ((field = purple_request_fields_get_field(fields, id)) == NULL) + if((field = purple_request_page_get_field(page, id)) == NULL) { return FALSE; + } return purple_request_field_is_required(field); } gboolean -purple_request_fields_all_required_filled(const PurpleRequestFields *fields) -{ +purple_request_page_all_required_filled(PurpleRequestPage *page) { GList *l; - g_return_val_if_fail(fields != NULL, FALSE); + g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), FALSE); - for (l = fields->required_fields; l != NULL; l = l->next) - { + for(l = page->required_fields; l != NULL; l = l->next) { PurpleRequestField *field = PURPLE_REQUEST_FIELD(l->data); if (!purple_request_field_is_filled(field)) @@ -213,14 +253,12 @@ purple_request_fields_all_required_filled(const PurpleRequestFields *fields) } gboolean -purple_request_fields_all_valid(const PurpleRequestFields *fields) -{ +purple_request_page_all_valid(PurpleRequestPage *page) { GList *l; - g_return_val_if_fail(fields != NULL, FALSE); + g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), FALSE); - for (l = fields->validated_fields; l != NULL; l = l->next) - { + for(l = page->validated_fields; l != NULL; l = l->next) { PurpleRequestField *field = PURPLE_REQUEST_FIELD(l->data); if (!purple_request_field_is_valid(field, NULL)) @@ -231,14 +269,13 @@ purple_request_fields_all_valid(const PurpleRequestFields *fields) } PurpleRequestField * -purple_request_fields_get_field(const PurpleRequestFields *fields, const char *id) -{ +purple_request_page_get_field(PurpleRequestPage *page, const char *id) { PurpleRequestField *field; - g_return_val_if_fail(fields != NULL, NULL); + g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), NULL); g_return_val_if_fail(id != NULL, NULL); - field = g_hash_table_lookup(fields->fields, id); + field = g_hash_table_lookup(page->fields, id); g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), NULL); @@ -246,88 +283,85 @@ purple_request_fields_get_field(const PurpleRequestFields *fields, const char *i } const char * -purple_request_fields_get_string(const PurpleRequestFields *fields, const char *id) -{ +purple_request_page_get_string(PurpleRequestPage *page, const char *id) { PurpleRequestField *field; - g_return_val_if_fail(fields != NULL, NULL); + g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), NULL); g_return_val_if_fail(id != NULL, NULL); - if ((field = purple_request_fields_get_field(fields, id)) == NULL) + if((field = purple_request_page_get_field(page, id)) == NULL) { return NULL; + } return purple_request_field_string_get_value(field); } int -purple_request_fields_get_integer(const PurpleRequestFields *fields, - const char *id) -{ +purple_request_page_get_integer(PurpleRequestPage *page, const char *id) { PurpleRequestField *field; - g_return_val_if_fail(fields != NULL, 0); + g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), 0); g_return_val_if_fail(id != NULL, 0); - if ((field = purple_request_fields_get_field(fields, id)) == NULL) + if((field = purple_request_page_get_field(page, id)) == NULL) { return 0; + } return purple_request_field_int_get_value(field); } gboolean -purple_request_fields_get_bool(const PurpleRequestFields *fields, const char *id) -{ +purple_request_page_get_bool(PurpleRequestPage *page, const char *id) { PurpleRequestField *field; - g_return_val_if_fail(fields != NULL, FALSE); + g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), FALSE); g_return_val_if_fail(id != NULL, FALSE); - if ((field = purple_request_fields_get_field(fields, id)) == NULL) + if((field = purple_request_page_get_field(page, id)) == NULL) { return FALSE; + } return purple_request_field_bool_get_value(field); } gpointer -purple_request_fields_get_choice(const PurpleRequestFields *fields, - const char *id) -{ +purple_request_page_get_choice(PurpleRequestPage *page, const char *id) { PurpleRequestField *field; - g_return_val_if_fail(fields != NULL, NULL); + g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), NULL); g_return_val_if_fail(id != NULL, NULL); - if ((field = purple_request_fields_get_field(fields, id)) == NULL) + if((field = purple_request_page_get_field(page, id)) == NULL) { return NULL; + } return purple_request_field_choice_get_value(field); } PurpleAccount * -purple_request_fields_get_account(const PurpleRequestFields *fields, - const char *id) -{ +purple_request_page_get_account(PurpleRequestPage *page, const char *id) { PurpleRequestField *field; - g_return_val_if_fail(fields != NULL, NULL); + g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), NULL); g_return_val_if_fail(id != NULL, NULL); - if ((field = purple_request_fields_get_field(fields, id)) == NULL) + if((field = purple_request_page_get_field(page, id)) == NULL) { return NULL; + } return purple_request_field_account_get_value(field); } -gpointer purple_request_fields_get_ui_data(const PurpleRequestFields *fields) -{ - g_return_val_if_fail(fields != NULL, NULL); +gpointer +purple_request_page_get_ui_data(PurpleRequestPage *page) { + g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), NULL); - return fields->ui_data; + return page->ui_data; } -void purple_request_fields_set_ui_data(PurpleRequestFields *fields, gpointer ui_data) -{ - g_return_if_fail(fields != NULL); +void +purple_request_page_set_ui_data(PurpleRequestPage *page, gpointer ui_data) { + g_return_if_fail(PURPLE_IS_REQUEST_PAGE(page)); - fields->ui_data = ui_data; + page->ui_data = ui_data; } diff --git a/libpurple/purplerequestpage.h b/libpurple/purplerequestpage.h index f6bde90072..5a02598af8 100644 --- a/libpurple/purplerequestpage.h +++ b/libpurple/purplerequestpage.h @@ -33,11 +33,11 @@ #include <glib-object.h> /** - * PurpleRequestFields: + * PurpleRequestPage: * * Multiple fields request data. */ -typedef struct _PurpleRequestFields PurpleRequestFields; +typedef struct _PurpleRequestPage PurpleRequestPage; #include "account.h" #include "purplerequestgroup.h" @@ -45,185 +45,169 @@ typedef struct _PurpleRequestFields PurpleRequestFields; G_BEGIN_DECLS -/** - * purple_request_fields_new: - * - * Creates a list of fields to pass to purple_request_fields(). - * - * Returns: (transfer full): A PurpleRequestFields structure. - */ -PurpleRequestFields *purple_request_fields_new(void); +#define PURPLE_TYPE_REQUEST_PAGE (purple_request_page_get_type()) +G_DECLARE_FINAL_TYPE(PurpleRequestPage, purple_request_page, + PURPLE, REQUEST_PAGE, GObject) /** - * purple_request_fields_destroy: - * @fields: The list of fields to destroy. + * purple_request_page_new: + * + * Creates a page of fields to pass to [func@Purple.request_fields]. * - * Destroys a list of fields. + * Returns: (transfer full): The new request page. */ -void purple_request_fields_destroy(PurpleRequestFields *fields); +PurpleRequestPage *purple_request_page_new(void); /** - * purple_request_fields_add_group: - * @fields: The fields list. - * @group: The group to add. + * purple_request_page_add_group: + * @page: The fields page. + * @group: (transfer full): The group to add. * * Adds a group of fields to the list. */ -void purple_request_fields_add_group(PurpleRequestFields *fields, PurpleRequestGroup *group); +void purple_request_page_add_group(PurpleRequestPage *page, PurpleRequestGroup *group); /** - * purple_request_fields_get_groups: - * @fields: The fields list. + * purple_request_page_get_groups: + * @page: The fields page. * * Returns a list of all groups in a field list. * * Returns: (element-type PurpleRequestGroup) (transfer none): A list of groups. */ -GList *purple_request_fields_get_groups(const PurpleRequestFields *fields); +GList *purple_request_page_get_groups(PurpleRequestPage *page); /** - * purple_request_fields_exists: - * @fields: The fields list. - * @id: The ID of the field. + * purple_request_page_exists: + * @page: The fields page. + * @id: The ID of the field. * * Returns whether or not the field with the specified ID exists. * * Returns: TRUE if the field exists, or FALSE. */ -gboolean purple_request_fields_exists(const PurpleRequestFields *fields, - const char *id); +gboolean purple_request_page_exists(PurpleRequestPage *page, const char *id); /** - * purple_request_fields_get_required: - * @fields: The fields list. + * purple_request_page_get_required: + * @page: The fields page. * * Returns a list of all required fields. * * Returns: (element-type PurpleRequestField) (transfer none): The list of required fields. */ -const GList *purple_request_fields_get_required( - const PurpleRequestFields *fields); +const GList *purple_request_page_get_required(PurpleRequestPage *page); /** - * purple_request_fields_get_validatable: - * @fields: The fields list. + * purple_request_page_get_validatable: + * @page: The fields page. * * Returns a list of all validated fields. * * Returns: (element-type PurpleRequestField) (transfer none): The list of validated fields. */ -const GList *purple_request_fields_get_validatable( - const PurpleRequestFields *fields); +const GList *purple_request_page_get_validatable(PurpleRequestPage *page); /** - * purple_request_fields_is_field_required: - * @fields: The fields list. - * @id: The field ID. + * purple_request_page_is_field_required: + * @page: The fields page. + * @id: The field ID. * * Returns whether or not a field with the specified ID is required. * * Returns: TRUE if the specified field is required, or FALSE. */ -gboolean purple_request_fields_is_field_required(const PurpleRequestFields *fields, - const char *id); +gboolean purple_request_page_is_field_required(PurpleRequestPage *page, const char *id); /** - * purple_request_fields_all_required_filled: - * @fields: The fields list. + * purple_request_page_all_required_filled: + * @page: The fields page. * * Returns whether or not all required fields have values. * * Returns: TRUE if all required fields have values, or FALSE. */ -gboolean purple_request_fields_all_required_filled( - const PurpleRequestFields *fields); +gboolean purple_request_page_all_required_filled(PurpleRequestPage *page); /** - * purple_request_fields_all_valid: - * @fields: The fields list. + * purple_request_page_all_valid: + * @page: The fields page. * * Returns whether or not all fields are valid. * * Returns: TRUE if all fields are valid, or FALSE. */ -gboolean purple_request_fields_all_valid(const PurpleRequestFields *fields); +gboolean purple_request_page_all_valid(PurpleRequestPage *page); /** - * purple_request_fields_get_field: - * @fields: The fields list. - * @id: The ID of the field. + * purple_request_page_get_field: + * @page: The fields page. + * @id: The ID of the field. * * Return the field with the specified ID. * * Returns: (transfer none): The field, if found. */ -PurpleRequestField *purple_request_fields_get_field( - const PurpleRequestFields *fields, const char *id); +PurpleRequestField *purple_request_page_get_field(PurpleRequestPage *page, const char *id); /** - * purple_request_fields_get_string: - * @fields: The fields list. - * @id: The ID of the field. + * purple_request_page_get_string: + * @page: The fields page. + * @id: The ID of the field. * * Returns the string value of a field with the specified ID. * * Returns: The string value, if found, or %NULL otherwise. */ -const char *purple_request_fields_get_string(const PurpleRequestFields *fields, - const char *id); +const char *purple_request_page_get_string(PurpleRequestPage *page, const char *id); /** - * purple_request_fields_get_integer: - * @fields: The fields list. - * @id: The ID of the field. + * purple_request_page_get_integer: + * @page: The fields page. + * @id: The ID of the field. * * Returns the integer value of a field with the specified ID. * * Returns: The integer value, if found, or 0 otherwise. */ -int purple_request_fields_get_integer(const PurpleRequestFields *fields, - const char *id); +int purple_request_page_get_integer(PurpleRequestPage *page, const char *id); /** - * purple_request_fields_get_bool: - * @fields: The fields list. - * @id: The ID of the field. + * purple_request_page_get_bool: + * @page: The fields page. + * @id: The ID of the field. * * Returns the boolean value of a field with the specified ID. * * Returns: The boolean value, if found, or %FALSE otherwise. */ -gboolean purple_request_fields_get_bool(const PurpleRequestFields *fields, - const char *id); +gboolean purple_request_page_get_bool(PurpleRequestPage *page, const char *id); /** - * purple_request_fields_get_choice: - * @fields: The fields list. + * purple_request_page_get_choice: + * @page: The fields page. * @id: The ID of the field. * * Returns the choice index of a field with the specified ID. * * Returns: The choice value, if found, or NULL otherwise. */ -gpointer -purple_request_fields_get_choice(const PurpleRequestFields *fields, - const char *id); +gpointer purple_request_page_get_choice(PurpleRequestPage *page, const char *id); /** - * purple_request_fields_get_account: - * @fields: The fields list. + * purple_request_page_get_account: + * @page: The fields page. * @id: The ID of the field. * * Returns the account of a field with the specified ID. * * Returns: (transfer none): The account value, if found, or %NULL otherwise. */ -PurpleAccount *purple_request_fields_get_account(const PurpleRequestFields *fields, - const char *id); +PurpleAccount *purple_request_page_get_account(PurpleRequestPage *page, const char *id); /** - * purple_request_fields_get_ui_data: - * @fields: The fields list. + * purple_request_page_get_ui_data: + * @page: The fields page. * * Returns the UI data associated with this object. * @@ -231,16 +215,16 @@ PurpleAccount *purple_request_fields_get_account(const PurpleRequestFields *fiel * convenience field provided to the UIs--it is not * used by the libpurple core. */ -gpointer purple_request_fields_get_ui_data(const PurpleRequestFields *fields); +gpointer purple_request_page_get_ui_data(PurpleRequestPage *page); /** - * purple_request_fields_set_ui_data: - * @fields: The fields list. + * purple_request_page_set_ui_data: + * @page: The fields page. * @ui_data: A pointer to associate with this object. * * Set the UI data associated with this object. */ -void purple_request_fields_set_ui_data(PurpleRequestFields *fields, gpointer ui_data); +void purple_request_page_set_ui_data(PurpleRequestPage *page, gpointer ui_data); G_END_DECLS diff --git a/libpurple/request.c b/libpurple/request.c index ba1a216e1b..59ab382d8b 100644 --- a/libpurple/request.c +++ b/libpurple/request.c @@ -621,11 +621,11 @@ purple_request_wait_progress(void *ui_handle, gfloat fraction) } static void -purple_request_fields_strip_html(PurpleRequestFields *fields) +purple_request_fields_strip_html(PurpleRequestPage *page) { GList *itg; - for (itg = purple_request_fields_get_groups(fields); + for (itg = purple_request_page_get_groups(page); itg != NULL; itg = g_list_next(itg)) { @@ -652,18 +652,18 @@ purple_request_fields_strip_html(PurpleRequestFields *fields) void * purple_request_fields(void *handle, const char *title, const char *primary, - const char *secondary, PurpleRequestFields *fields, const char *ok_text, + const char *secondary, PurpleRequestPage *page, const char *ok_text, GCallback ok_cb, const char *cancel_text, GCallback cancel_cb, PurpleRequestCommonParameters *cpar, void *user_data) { PurpleRequestUiOps *ops; - if (G_UNLIKELY(fields == NULL || + if(G_UNLIKELY(!PURPLE_IS_REQUEST_PAGE(page) || ((ok_text == NULL) != (ok_cb == NULL)) || cancel_text == NULL)) { purple_request_cpar_unref(cpar); - g_warn_if_fail(fields != NULL); + g_warn_if_fail(PURPLE_IS_REQUEST_PAGE(page)); g_warn_if_fail((ok_text == NULL) != (ok_cb == NULL)); g_warn_if_fail(cancel_text != NULL); g_return_val_if_reached(NULL); @@ -674,7 +674,7 @@ purple_request_fields(void *handle, const char *title, const char *primary, if (purple_request_cpar_is_html(cpar) && !((ops->features & PURPLE_REQUEST_FEATURE_HTML))) { - purple_request_fields_strip_html(fields); + purple_request_fields_strip_html(page); } if (ops != NULL && ops->request_fields != NULL) { @@ -687,8 +687,9 @@ purple_request_fields(void *handle, const char *title, const char *primary, info->type = PURPLE_REQUEST_FIELDS; info->handle = handle; info->ui_handle = ops->request_fields(title, primary, secondary, - fields, ok_text, ok_cb, cancel_text, cancel_cb, - cpar, user_data); + page, ok_text, ok_cb, + cancel_text, cancel_cb, cpar, + user_data); handles = g_list_append(handles, info); diff --git a/libpurple/request.h b/libpurple/request.h index e02f557cc3..8ebc462546 100644 --- a/libpurple/request.h +++ b/libpurple/request.h @@ -165,7 +165,7 @@ struct _PurpleRequestUiOps gfloat fraction); void *(*request_fields)(const char *title, const char *primary, - const char *secondary, PurpleRequestFields *fields, + const char *secondary, PurpleRequestPage *page, const char *ok_text, GCallback ok_cb, const char *cancel_text, GCallback cancel_cb, PurpleRequestCommonParameters *cpar, void *user_data); @@ -210,7 +210,7 @@ typedef void (*PurpleRequestActionCb)(void *data, int action); * values of those choice. */ typedef void (*PurpleRequestChoiceCb)(void *data, gpointer value); -typedef void (*PurpleRequestFieldsCb)(void *data, PurpleRequestFields *fields); +typedef void (*PurpleRequestFieldsCb)(void *data, PurpleRequestPage *page); typedef void (*PurpleRequestFileCb)(void *data, const char *filename); typedef void (*PurpleRequestHelpCb)(gpointer data); @@ -461,7 +461,7 @@ purple_request_cpar_get_help_cb(PurpleRequestCommonParameters *cpar, * #PurpleRequestFieldsCb function to use when the button is clicked. * Should be terminated with the NULL label. * - * Sets extra actions for the PurpleRequestFields dialog. + * Sets extra actions for the PurpleRequestPage dialog. */ void purple_request_cpar_set_extra_actions(PurpleRequestCommonParameters *cpar, ...); @@ -470,7 +470,7 @@ purple_request_cpar_set_extra_actions(PurpleRequestCommonParameters *cpar, ...); * purple_request_cpar_get_extra_actions: * @cpar: The parameters set (may be %NULL). * - * Gets extra actions for the PurpleRequestFields dialog. + * Gets extra actions for the PurpleRequestPage dialog. * * Returns: (element-type PurpleKeyValuePair) (transfer none): A list of actions (pairs of arguments, as in * setter). @@ -763,7 +763,7 @@ purple_request_wait_progress(void *ui_handle, gfloat fraction); * @primary: The main point of the message, or %NULL if you're * feeling enigmatic. * @secondary: Secondary information, or %NULL if there is none. - * @fields: The list of fields. + * @page: The page of fields. * @ok_text: The text for the <literal>OK</literal> button, which may not be * %NULL. * @ok_cb: (scope notified): The callback for the <literal>OK</literal> button, which may @@ -783,7 +783,7 @@ purple_request_wait_progress(void *ui_handle, gfloat fraction); */ void * purple_request_fields(void *handle, const char *title, const char *primary, - const char *secondary, PurpleRequestFields *fields, + const char *secondary, PurpleRequestPage *page, const char *ok_text, GCallback ok_cb, const char *cancel_text, GCallback cancel_cb, PurpleRequestCommonParameters *cpar, diff --git a/libpurple/tests/test_credential_manager.c b/libpurple/tests/test_credential_manager.c index 02fabd7c64..376c436481 100644 --- a/libpurple/tests/test_credential_manager.c +++ b/libpurple/tests/test_credential_manager.c @@ -54,8 +54,6 @@ G_DECLARE_FINAL_TYPE(TestPurpleCredentialProvider, struct _TestPurpleCredentialProvider { PurpleCredentialProvider parent; - - PurpleRequestFields *fields; }; G_DEFINE_TYPE(TestPurpleCredentialProvider, |