summaryrefslogtreecommitdiff
path: root/pidgin
diff options
context:
space:
mode:
authorElliott Sales de Andrade <quantum.analyst@gmail.com>2023-03-17 00:47:16 -0500
committerElliott Sales de Andrade <quantum.analyst@gmail.com>2023-03-17 00:47:16 -0500
commitf107009d2649a96a3b93994bb197c2f2637c08a1 (patch)
tree7284403b6ecc447f99e0130f7457f5d839b4e833 /pidgin
parentd492e84c03fe66bd8f2466b0fa176c179261d831 (diff)
downloadpidgin-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.c31
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);