From c7d2b0945dc9532369c319eca797adf0aeb78d0f Mon Sep 17 00:00:00 2001 From: Robert Ancell Date: Tue, 1 Dec 2020 10:33:37 +1300 Subject: [PATCH] common: Consolidate CcLanguageChooser functions --- panels/common/cc-language-chooser.c | 44 ++++++++++------------------- 1 file changed, 15 insertions(+), 29 deletions(-) diff --git a/panels/common/cc-language-chooser.c b/panels/common/cc-language-chooser.c index a48968c1f..08cd71bce 100644 --- a/panels/common/cc-language-chooser.c +++ b/panels/common/cc-language-chooser.c @@ -53,41 +53,27 @@ struct _CcLanguageChooser { G_DEFINE_TYPE (CcLanguageChooser, cc_language_chooser, GTK_TYPE_DIALOG) -static void -add_languages (CcLanguageChooser *chooser, - gchar **locale_ids, - GHashTable *initial) -{ - while (*locale_ids) { - gchar *locale_id; - gboolean is_initial; - CcLanguageRow *row; - - locale_id = *locale_ids; - locale_ids ++; - - if (!cc_common_language_has_font (locale_id)) - continue; - - is_initial = (g_hash_table_lookup (initial, locale_id) != NULL); - row = cc_language_row_new (locale_id); - cc_language_row_set_is_extra (row, !is_initial); - gtk_widget_show (GTK_WIDGET (row)); - gtk_list_box_prepend (chooser->language_listbox, GTK_WIDGET (row)); - } -} - static void add_all_languages (CcLanguageChooser *chooser) { - gchar **locale_ids; - GHashTable *initial; + g_auto(GStrv) locale_ids = NULL; + g_autoptr(GHashTable) initial = NULL; locale_ids = gnome_get_all_locales (); initial = cc_common_language_get_initial_languages (); - add_languages (chooser, locale_ids, initial); - g_hash_table_destroy (initial); - g_strfreev (locale_ids); + for (int i = 0; locale_ids[i] != NULL; i++) { + CcLanguageRow *row; + gboolean is_initial; + + if (!cc_common_language_has_font (locale_ids[i])) + continue; + + row = cc_language_row_new (locale_ids[i]); + gtk_widget_show (GTK_WIDGET (row)); + is_initial = (g_hash_table_lookup (initial, locale_ids[i]) != NULL); + cc_language_row_set_is_extra (row, !is_initial); + gtk_list_box_prepend (chooser->language_listbox, GTK_WIDGET (row)); + } } static gboolean