diff options
author | Elliott Sales de Andrade <quantum.analyst@gmail.com> | 2023-03-10 01:15:41 -0600 |
---|---|---|
committer | Elliott Sales de Andrade <quantum.analyst@gmail.com> | 2023-03-10 01:15:41 -0600 |
commit | 33dea489fea7bca54847b5c4275017676fcd2c5b (patch) | |
tree | a01ee35485a78a6694fa65d1e461447e965694ab /finch | |
parent | 36dee2d7f7b622d9e1ecf873b4bfa4779179e13d (diff) | |
download | pidgin-33dea489fea7bca54847b5c4275017676fcd2c5b.tar.gz |
Make PurpleRequestFieldAccount into a GObject
This also does an `hg cp`, though with all the renaming of the parameter names, maybe that wasn't as useful for tracking the diff, and I should just make these new files entirely?
Note, I didn't bother re-indenting some of the blocks, because they'll all eventually be moved when everything is subclassed.
Testing Done:
Compiled, and opened Request Fields from the Demo protocol.
Reviewed at https://reviews.imfreedom.org/r/2331/
Diffstat (limited to 'finch')
-rw-r--r-- | finch/gntblist.c | 18 | ||||
-rw-r--r-- | finch/gntrequest.c | 34 |
2 files changed, 32 insertions, 20 deletions
diff --git a/finch/gntblist.c b/finch/gntblist.c index 7fdd79a0ee..8536671adc 100644 --- a/finch/gntblist.c +++ b/finch/gntblist.c @@ -601,9 +601,12 @@ finch_request_add_buddy(G_GNUC_UNUSED PurpleBuddyList *list, 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_account_set_show_all(PURPLE_REQUEST_FIELD_ACCOUNT(field), + FALSE); + if(account) { + purple_request_field_account_set_value(PURPLE_REQUEST_FIELD_ACCOUNT(field), + account); + } purple_request_group_add_field(group, field); purple_request_fields(NULL, _("Add Buddy"), NULL, _("Please enter buddy information."), @@ -689,9 +692,12 @@ finch_request_add_chat(G_GNUC_UNUSED PurpleBuddyList *list, purple_request_page_add_group(page, 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_account_set_show_all(PURPLE_REQUEST_FIELD_ACCOUNT(field), + FALSE); + if(account) { + purple_request_field_account_set_value(PURPLE_REQUEST_FIELD_ACCOUNT(field), + account); + } purple_request_group_add_field(group, field); field = purple_request_field_string_new("name", _("Name"), name, FALSE); diff --git a/finch/gntrequest.c b/finch/gntrequest.c index 9385574657..224be0f40d 100644 --- a/finch/gntrequest.c +++ b/finch/gntrequest.c @@ -360,12 +360,16 @@ request_fields_cb(GntWidget *button, PurpleRequestPage *page) { purple_request_field_list_set_selected(field, selected); g_list_free(selected); - } - else if (type == PURPLE_REQUEST_FIELD_ACCOUNT) - { - GntWidget *combo = g_object_get_data(G_OBJECT(field), "finch-ui-data"); - PurpleAccount *acc = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo)); - purple_request_field_account_set_value(field, acc); + + } else if (PURPLE_IS_REQUEST_FIELD_ACCOUNT(field)) { + GntWidget *combo = NULL; + PurpleAccount *acc = NULL; + PurpleRequestFieldAccount *afield = NULL; + + combo = g_object_get_data(G_OBJECT(field), "finch-ui-data"); + acc = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo)); + afield = PURPLE_REQUEST_FIELD_ACCOUNT(field); + purple_request_field_account_set_value(afield, acc); } } } @@ -529,14 +533,15 @@ add_account_to_combo(GntWidget *combo, PurpleAccount *account) { static GntWidget* create_account_field(PurpleRequestField *field) { + PurpleRequestFieldAccount *afield = PURPLE_REQUEST_FIELD_ACCOUNT(field); gboolean all; PurpleAccount *def; GntWidget *combo = gnt_combo_box_new(); - all = purple_request_field_account_get_show_all(field); - def = purple_request_field_account_get_value(field); - if (!def) { - def = purple_request_field_account_get_default_value(field); + all = purple_request_field_account_get_show_all(afield); + def = purple_request_field_account_get_value(afield); + if(!PURPLE_IS_ACCOUNT(def)) { + def = purple_request_field_account_get_default_value(afield); } if(all) { @@ -662,7 +667,7 @@ finch_request_fields(const char *title, const char *primary, widget = create_choice_field(field); } else if (type == PURPLE_REQUEST_FIELD_LIST) { widget = create_list_field(field); - } else if (type == PURPLE_REQUEST_FIELD_ACCOUNT) { + } else if(PURPLE_IS_REQUEST_FIELD_ACCOUNT(field)) { accountlist = create_account_field(field); widget = accountlist; } else { @@ -912,6 +917,9 @@ finch_request_save_in_prefs(G_GNUC_UNUSED gpointer data, GntWidget *finch_request_field_get_widget(PurpleRequestField *field) { GntWidget *ret = NULL; + if(PURPLE_IS_REQUEST_FIELD_ACCOUNT(field)) { + ret = create_account_field(field); + } else { switch (purple_request_field_get_field_type(field)) { case PURPLE_REQUEST_FIELD_BOOLEAN: ret = create_boolean_field(field); @@ -928,14 +936,12 @@ GntWidget *finch_request_field_get_widget(PurpleRequestField *field) case PURPLE_REQUEST_FIELD_LIST: ret = create_list_field(field); break; - case PURPLE_REQUEST_FIELD_ACCOUNT: - ret = create_account_field(field); - break; default: purple_debug_error("GntRequest", "Unimplemented request-field %d\n", purple_request_field_get_field_type(field)); break; } + } return ret; } |