diff options
author | Elliott Sales de Andrade <quantum.analyst@gmail.com> | 2023-03-17 00:47:16 -0500 |
---|---|---|
committer | Elliott Sales de Andrade <quantum.analyst@gmail.com> | 2023-03-17 00:47:16 -0500 |
commit | f107009d2649a96a3b93994bb197c2f2637c08a1 (patch) | |
tree | 7284403b6ecc447f99e0130f7457f5d839b4e833 /pidgin | |
parent | d492e84c03fe66bd8f2466b0fa176c179261d831 (diff) | |
download | pidgin-f107009d2649a96a3b93994bb197c2f2637c08a1.tar.gz |
Remove tracking of required fields
The field required&filled status is now encapsulated in the valid property due to /r/2351.
This means that UIs no longer need to check that all required fields are filled.
So the page no longer needs to track required fields either.
Testing Done:
Compiled and ran `ninja test`. Also opened Request Fields from Demo protocol, removed the required string or entered an invalid email, and confirmed the OK button disabled correctly.
Reviewed at https://reviews.imfreedom.org/r/2352/
Diffstat (limited to 'pidgin')
-rw-r--r-- | pidgin/gtkrequest.c | 31 |
1 files changed, 1 insertions, 30 deletions
diff --git a/pidgin/gtkrequest.c b/pidgin/gtkrequest.c index 1ac25084da..31c6d72fc6 100644 --- a/pidgin/gtkrequest.c +++ b/pidgin/gtkrequest.c @@ -222,29 +222,10 @@ field_string_focus_out_cb(GtkEventControllerFocus *controller, } static void -req_field_changed_common(G_GNUC_UNUSED GtkWidget *widget, - PurpleRequestField *field) -{ - PurpleRequestGroup *group; - PurpleRequestPage *page; - PidginRequestData *req_data; - - group = purple_request_field_get_group(field); - page = purple_request_group_get_page(group); - req_data = g_object_get_data(G_OBJECT(page), "pidgin-ui-data"); - - gtk_widget_set_sensitive(req_data->ok_button, - purple_request_page_all_required_filled(page) && - purple_request_page_is_valid(page)); -} - -static void field_bool_cb(GtkCheckButton *button, PurpleRequestField *field) { purple_request_field_bool_set_value(PURPLE_REQUEST_FIELD_BOOL(field), gtk_check_button_get_active(button)); - - req_field_changed_common(GTK_WIDGET(button), field); } static void @@ -271,8 +252,6 @@ field_account_cb(GObject *obj, G_GNUC_UNUSED GParamSpec *pspec, gpointer data) purple_request_field_account_set_value( PURPLE_REQUEST_FIELD_ACCOUNT(field), pidgin_account_chooser_get_selected(chooser)); - - req_field_changed_common(GTK_WIDGET(obj), field); } static void @@ -1066,8 +1045,6 @@ req_entry_field_changed_cb(GtkWidget *entry, PurpleRequestField *field) purple_strempty(text) ? NULL : text); } } - - req_field_changed_common(entry, field); } static void @@ -2204,13 +2181,7 @@ pidgin_request_fields(const char *title, const char *primary, g_object_unref(sg); g_object_unref(datasheet_buttons_sg); - if(!purple_request_page_all_required_filled(page)) { - gtk_widget_set_sensitive(data->ok_button, FALSE); - } - - if(!purple_request_page_is_valid(page)) { - gtk_widget_set_sensitive(data->ok_button, FALSE); - } + g_object_bind_property(page, "valid", data->ok_button, "sensitive", 0); pidgin_auto_parent_window(win); |