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 /pidgin | |
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 'pidgin')
-rw-r--r-- | pidgin/gtkdialogs.c | 41 | ||||
-rw-r--r-- | pidgin/gtkrequest.c | 40 | ||||
-rw-r--r-- | pidgin/pidginmooddialog.c | 18 |
3 files changed, 48 insertions, 51 deletions
diff --git a/pidgin/gtkdialogs.c b/pidgin/gtkdialogs.c index f5f047c5f8..6b3b00feb1 100644 --- a/pidgin/gtkdialogs.c +++ b/pidgin/gtkdialogs.c @@ -47,30 +47,29 @@ struct _PidginGroupMergeObject { }; static void -pidgin_dialogs_im_cb(G_GNUC_UNUSED gpointer data, PurpleRequestFields *fields) -{ +pidgin_dialogs_im_cb(G_GNUC_UNUSED gpointer data, PurpleRequestPage *page) { PurpleAccount *account; const char *username; - account = purple_request_fields_get_account(fields, "account"); - username = purple_request_fields_get_string(fields, "screenname"); + account = purple_request_page_get_account(page, "account"); + username = purple_request_page_get_string(page, "screenname"); pidgin_dialogs_im_with_user(account, username); } static gboolean pidgin_dialogs_im_name_validator(G_GNUC_UNUSED PurpleRequestField *field, - char **errmsg, gpointer _fields) + char **errmsg, gpointer data) { - PurpleRequestFields *fields = _fields; + PurpleRequestPage *page = data; PurpleAccount *account; PurpleProtocol *protocol; const char *username; gboolean valid = FALSE; - account = purple_request_fields_get_account(fields, "account"); + account = purple_request_page_get_account(page, "account"); protocol = purple_account_get_protocol(account); - username = purple_request_fields_get_string(fields, "screenname"); + username = purple_request_page_get_string(page, "screenname"); if (username) { valid = purple_validate(protocol, username); @@ -85,19 +84,19 @@ pidgin_dialogs_im_name_validator(G_GNUC_UNUSED PurpleRequestField *field, void pidgin_dialogs_im(void) { - 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_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_set_validator(field, pidgin_dialogs_im_name_validator, page); purple_request_group_add_field(group, field); field = purple_request_field_account_new("account", _("_Account"), NULL); @@ -112,7 +111,7 @@ pidgin_dialogs_im(void) purple_blist_get_default(), _("New Instant Message"), NULL, _("Please enter the username or alias of the person " "you would like to IM."), - fields, _("OK"), G_CALLBACK(pidgin_dialogs_im_cb), _("Cancel"), + page, _("OK"), G_CALLBACK(pidgin_dialogs_im_cb), _("Cancel"), NULL, NULL, NULL); } @@ -137,16 +136,14 @@ pidgin_dialogs_im_with_user(PurpleAccount *account, const char *username) } static void -pidgin_dialogs_info_cb(G_GNUC_UNUSED gpointer data, - PurpleRequestFields *fields) -{ +pidgin_dialogs_info_cb(G_GNUC_UNUSED gpointer data, PurpleRequestPage *page) { char *username; PurpleAccount *account; const gchar *screenname = NULL; - account = purple_request_fields_get_account(fields, "account"); + account = purple_request_page_get_account(page, "account"); - screenname = purple_request_fields_get_string(fields, "screenname"); + screenname = purple_request_page_get_string(page, "screenname"); username = g_strdup(purple_normalize(account, screenname)); if(username != NULL && *username != '\0' && account != NULL) { @@ -160,14 +157,14 @@ pidgin_dialogs_info_cb(G_GNUC_UNUSED gpointer data, void pidgin_dialogs_info(void) { - 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_string_new("screenname", _("_Name"), NULL, FALSE); purple_request_field_set_type_hint(field, "screenname"); @@ -186,7 +183,7 @@ pidgin_dialogs_info(void) purple_blist_get_default(), _("Get User Info"), NULL, _("Please enter the username or alias of the person " "whose info you would like to view."), - fields, _("OK"), G_CALLBACK(pidgin_dialogs_info_cb), + page, _("OK"), G_CALLBACK(pidgin_dialogs_info_cb), _("Cancel"), NULL, NULL, NULL); } diff --git a/pidgin/gtkrequest.c b/pidgin/gtkrequest.c index d91e868f8f..478c1402a2 100644 --- a/pidgin/gtkrequest.c +++ b/pidgin/gtkrequest.c @@ -65,7 +65,7 @@ typedef struct struct { - PurpleRequestFields *fields; + PurpleRequestPage *page; } multifield; @@ -226,16 +226,16 @@ req_field_changed_common(G_GNUC_UNUSED GtkWidget *widget, PurpleRequestField *field) { PurpleRequestGroup *group; - PurpleRequestFields *fields; + PurpleRequestPage *page; PidginRequestData *req_data; group = purple_request_field_get_group(field); - fields = purple_request_group_get_fields_list(group); - req_data = purple_request_fields_get_ui_data(fields); + page = purple_request_group_get_page(group); + req_data = purple_request_page_get_ui_data(page); gtk_widget_set_sensitive(req_data->ok_button, - purple_request_fields_all_required_filled(fields) && - purple_request_fields_all_valid(fields)); + purple_request_page_all_required_filled(page) && + purple_request_page_all_valid(page)); } static void @@ -283,7 +283,7 @@ multifield_ok_cb(GtkWidget *button, PidginRequestData *data) if (data->cbs[0] != NULL) ((PurpleRequestFieldsCb)data->cbs[0])(data->user_data, - data->u.multifield.fields); + data->u.multifield.page); purple_request_close(PURPLE_REQUEST_FIELDS, data); } @@ -295,7 +295,7 @@ multifield_cancel_cb(G_GNUC_UNUSED GtkWidget *button, PidginRequestData *data) if (data->cbs[1] != NULL) ((PurpleRequestFieldsCb)data->cbs[1])(data->user_data, - data->u.multifield.fields); + data->u.multifield.page); purple_request_close(PURPLE_REQUEST_FIELDS, data); } @@ -310,7 +310,7 @@ multifield_extra_cb(GtkWidget *button, PidginRequestData *data) cb = g_object_get_data(G_OBJECT(button), "extra-cb"); if (cb != NULL) - cb(data->user_data, data->u.multifield.fields); + cb(data->user_data, data->u.multifield.page); purple_request_close(PURPLE_REQUEST_FIELDS, data); } @@ -1879,7 +1879,7 @@ create_datasheet_field(PurpleRequestField *field, GtkSizeGroup *buttons_sg) static void * pidgin_request_fields(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) { @@ -1905,9 +1905,9 @@ pidgin_request_fields(const char *title, const char *primary, data = g_new0(PidginRequestData, 1); data->type = PURPLE_REQUEST_FIELDS; data->user_data = user_data; - data->u.multifield.fields = fields; + data->u.multifield.page = page; - purple_request_fields_set_ui_data(fields, data); + purple_request_page_set_ui_data(page, data); extra_actions = purple_request_cpar_get_extra_actions(cpar); @@ -2005,10 +2005,7 @@ pidgin_request_fields(const char *title, const char *primary, gtk_box_append(GTK_BOX(vbox), label); } - for (gl = purple_request_fields_get_groups(fields); - gl != NULL; - gl = gl->next) - { + for(gl = purple_request_page_get_groups(page); gl != NULL; gl = gl->next) { GList *field_list; size_t field_count = 0; size_t cols = 1; @@ -2199,11 +2196,13 @@ pidgin_request_fields(const char *title, const char *primary, g_object_unref(sg); g_object_unref(datasheet_buttons_sg); - if (!purple_request_fields_all_required_filled(fields)) + if(!purple_request_page_all_required_filled(page)) { gtk_widget_set_sensitive(data->ok_button, FALSE); + } - if (!purple_request_fields_all_valid(fields)) + if(!purple_request_page_all_valid(page)) { gtk_widget_set_sensitive(data->ok_button, FALSE); + } pidgin_auto_parent_window(win); @@ -2424,8 +2423,9 @@ pidgin_close_request(PurpleRequestType type, void *ui_handle) gtk_window_destroy(GTK_WINDOW(data->dialog)); } - if (type == PURPLE_REQUEST_FIELDS) - purple_request_fields_destroy(data->u.multifield.fields); + if(type == PURPLE_REQUEST_FIELDS) { + g_clear_object(&data->u.multifield.page); + } g_free(data); } diff --git a/pidgin/pidginmooddialog.c b/pidgin/pidginmooddialog.c index 870ac3a3f0..dbb8bb4111 100644 --- a/pidgin/pidginmooddialog.c +++ b/pidgin/pidginmooddialog.c @@ -57,19 +57,19 @@ update_status_with_mood(PurpleAccount *account, const gchar *mood, /*< private * pidgin_mood_edit_cb: * @connection: The #PurpleConnection instance. - * @fields: The #PurpleRequestFields + * @page: The #PurpleRequestPage * * This a callback function for when the request dialog has been accepted. */ static void pidgin_mood_dialog_edit_cb(PurpleConnection *connection, - PurpleRequestFields *fields) + PurpleRequestPage *page) { PurpleRequestField *mood_field = NULL; GList *l = NULL; const gchar *mood = NULL; - mood_field = purple_request_fields_get_field(fields, "mood"); + mood_field = purple_request_page_get_field(page, "mood"); l = purple_request_field_list_get_selected(mood_field); if(l == NULL) { @@ -87,7 +87,7 @@ pidgin_mood_dialog_edit_cb(PurpleConnection *connection, if (flags & PURPLE_CONNECTION_FLAG_SUPPORT_MOOD_MESSAGES) { PurpleRequestField *text_field = NULL; - text_field = purple_request_fields_get_field(fields, "text"); + text_field = purple_request_page_get_field(page, "text"); text = purple_request_field_string_get_value(text_field); } else { text = NULL; @@ -245,7 +245,7 @@ pidgin_mood_get_global_status(void) { void pidgin_mood_dialog_show(PurpleAccount *account) { const gchar *current_mood; - PurpleRequestFields *fields; + PurpleRequestPage *page; PurpleRequestGroup *g; PurpleRequestField *f; PurpleConnection *gc = NULL; @@ -264,7 +264,7 @@ pidgin_mood_dialog_show(PurpleAccount *account) { current_mood = pidgin_mood_get_global_status(); } - fields = purple_request_fields_new(); + page = purple_request_page_new(); g = purple_request_group_new(NULL); f = purple_request_field_list_new("mood", _("Please select your mood from the list")); @@ -299,7 +299,7 @@ pidgin_mood_dialog_show(PurpleAccount *account) { } purple_request_group_add_field(g, f); - purple_request_fields_add_group(fields, g); + purple_request_page_add_group(page, g); /* if the connection allows setting a mood message */ if (gc && (purple_connection_get_flags(gc) & PURPLE_CONNECTION_FLAG_SUPPORT_MOOD_MESSAGES)) { @@ -307,11 +307,11 @@ pidgin_mood_dialog_show(PurpleAccount *account) { f = purple_request_field_string_new("text", _("Message (optional)"), NULL, FALSE); purple_request_group_add_field(g, f); - purple_request_fields_add_group(fields, g); + purple_request_page_add_group(page, g); } purple_request_fields(gc, _("Edit User Mood"), _("Edit User Mood"), - NULL, fields, + NULL, page, _("OK"), G_CALLBACK(pidgin_mood_dialog_edit_cb), _("Cancel"), NULL, purple_request_cpar_from_connection(gc), gc); |