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 /libpurple | |
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 'libpurple')
-rw-r--r-- | libpurple/protocols/demo/purpledemoprotocolactions.c | 1 | ||||
-rw-r--r-- | libpurple/purpleprivate.h | 2 | ||||
-rw-r--r-- | libpurple/purplerequestfield.c | 5 | ||||
-rw-r--r-- | libpurple/purplerequestgroup.c | 10 | ||||
-rw-r--r-- | libpurple/purplerequestpage.c | 42 | ||||
-rw-r--r-- | libpurple/purplerequestpage.h | 12 |
6 files changed, 1 insertions, 71 deletions
diff --git a/libpurple/protocols/demo/purpledemoprotocolactions.c b/libpurple/protocols/demo/purpledemoprotocolactions.c index 097e3539f7..ab3e9bbcda 100644 --- a/libpurple/protocols/demo/purpledemoprotocolactions.c +++ b/libpurple/protocols/demo/purpledemoprotocolactions.c @@ -486,6 +486,7 @@ purple_demo_protocol_request_fields_activate(G_GNUC_UNUSED GSimpleAction *action field = purple_request_field_string_new("string", _("A string"), _("default"), FALSE); + purple_request_field_set_required(field, TRUE); purple_request_group_add_field(group, field); field = purple_request_field_string_new("multiline-string", _("A multiline string"), diff --git a/libpurple/purpleprivate.h b/libpurple/purpleprivate.h index 8db11650a2..33f89e490b 100644 --- a/libpurple/purpleprivate.h +++ b/libpurple/purpleprivate.h @@ -339,9 +339,7 @@ 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_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_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_field_set_group(PurpleRequestField *field, PurpleRequestGroup *group); G_END_DECLS diff --git a/libpurple/purplerequestfield.c b/libpurple/purplerequestfield.c index dd35db5aa2..3e95068137 100644 --- a/libpurple/purplerequestfield.c +++ b/libpurple/purplerequestfield.c @@ -403,11 +403,6 @@ purple_request_field_set_required(PurpleRequestField *field, gboolean required) priv->required = required; - if(PURPLE_IS_REQUEST_GROUP(priv->group)) { - _purple_request_group_set_field_required(priv->group, field, - required); - } - g_object_freeze_notify(G_OBJECT(field)); g_object_notify_by_pspec(G_OBJECT(field), properties[PROP_REQUIRED]); g_object_notify_by_pspec(G_OBJECT(field), properties[PROP_VALID]); diff --git a/libpurple/purplerequestgroup.c b/libpurple/purplerequestgroup.c index 490ca7723d..c50b592144 100644 --- a/libpurple/purplerequestgroup.c +++ b/libpurple/purplerequestgroup.c @@ -230,16 +230,6 @@ _purple_request_group_set_page(PurpleRequestGroup *group, } void -_purple_request_group_set_field_required(PurpleRequestGroup *group, - PurpleRequestField *field, - gboolean required) -{ - g_return_if_fail(PURPLE_IS_REQUEST_GROUP(group)); - - _purple_request_page_set_field_required(group->page, field, required); -} - -void purple_request_group_add_field(PurpleRequestGroup *group, PurpleRequestField *field) { diff --git a/libpurple/purplerequestpage.c b/libpurple/purplerequestpage.c index d16a408295..eb08023081 100644 --- a/libpurple/purplerequestpage.c +++ b/libpurple/purplerequestpage.c @@ -37,8 +37,6 @@ struct _PurpleRequestPage { GHashTable *invalid_groups; GHashTable *fields; - - GList *required_fields; }; enum { @@ -137,7 +135,6 @@ purple_request_page_finalize(GObject *obj) { g_list_free_full(page->groups, g_object_unref); g_clear_pointer(&page->invalid_groups, g_hash_table_destroy); - g_list_free(page->required_fields); g_hash_table_destroy(page->fields); G_OBJECT_CLASS(purple_request_page_parent_class)->finalize(obj); @@ -181,20 +178,6 @@ purple_request_page_new(void) { } void -_purple_request_page_set_field_required(PurpleRequestPage *page, - PurpleRequestField *field, - gboolean required) -{ - g_return_if_fail(PURPLE_IS_REQUEST_PAGE(page)); - - if(required) { - page->required_fields = g_list_append(page->required_fields, field); - } else { - page->required_fields = g_list_remove(page->required_fields, field); - } -} - -void _purple_request_page_add_field(PurpleRequestPage *page, PurpleRequestField *field) { @@ -202,10 +185,6 @@ _purple_request_page_add_field(PurpleRequestPage *page, g_hash_table_insert(page->fields, g_strdup(purple_request_field_get_id(field)), field); - - if(purple_request_field_is_required(field)) { - page->required_fields = g_list_append(page->required_fields, field); - } } void @@ -237,11 +216,6 @@ purple_request_page_add_group(PurpleRequestPage *page, g_hash_table_insert(page->fields, g_strdup(purple_request_field_get_id(field)), field); - - if (purple_request_field_is_required(field)) { - page->required_fields = g_list_append(page->required_fields, - field); - } } g_list_model_items_changed(G_LIST_MODEL(page), position, 0, 1); @@ -278,22 +252,6 @@ purple_request_page_is_field_required(PurpleRequestPage *page, const char *id) } gboolean -purple_request_page_all_required_filled(PurpleRequestPage *page) { - GList *l; - - g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), FALSE); - - for(l = page->required_fields; l != NULL; l = l->next) { - PurpleRequestField *field = PURPLE_REQUEST_FIELD(l->data); - - if (!purple_request_field_is_filled(field)) - return FALSE; - } - - return TRUE; -} - -gboolean purple_request_page_is_valid(PurpleRequestPage *page) { g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), FALSE); diff --git a/libpurple/purplerequestpage.h b/libpurple/purplerequestpage.h index a6dd247691..851fd72c83 100644 --- a/libpurple/purplerequestpage.h +++ b/libpurple/purplerequestpage.h @@ -110,18 +110,6 @@ gboolean purple_request_page_exists(PurpleRequestPage *page, const char *id); gboolean purple_request_page_is_field_required(PurpleRequestPage *page, const char *id); /** - * 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. - * - * Since: 3.0.0 - */ -gboolean purple_request_page_all_required_filled(PurpleRequestPage *page); - -/** * purple_request_page_is_valid: * @page: The fields page. * |