[gedit/wip/loader-saver] Use gtk_source_encoding_foreach()



commit 3aefe0f82fd617054e26929cbc27cb95f60c3db9
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Mon Jul 7 19:34:03 2014 +0200

    Use gtk_source_encoding_foreach()

 gedit/gedit-app.c              |   18 ++++++++----------
 gedit/gedit-encodings-dialog.c |   34 +++++++++++++++++-----------------
 2 files changed, 25 insertions(+), 27 deletions(-)
---
diff --git a/gedit/gedit-app.c b/gedit/gedit-app.c
index eed2d39..2af769b 100644
--- a/gedit/gedit-app.c
+++ b/gedit/gedit-app.c
@@ -927,6 +927,13 @@ gedit_app_command_line (GApplication            *application,
        return 0;
 }
 
+static void
+encoding_foreach_cb (const GtkSourceEncoding *encoding,
+                    gpointer                 user_data)
+{
+       g_print ("%s\n", gtk_source_encoding_get_charset (encoding));
+}
+
 static gint
 gedit_app_handle_local_options (GApplication *application,
                                 GVariantDict *options)
@@ -939,16 +946,7 @@ gedit_app_handle_local_options (GApplication *application,
 
        if (g_variant_dict_contains (options, "list-encodings"))
        {
-               gint i = 0;
-               const GtkSourceEncoding *enc;
-
-               while ((enc = gtk_source_encoding_get_from_index (i)) != NULL)
-               {
-                       g_print ("%s\n", gtk_source_encoding_get_charset (enc));
-
-                       ++i;
-               }
-
+               gtk_source_encoding_foreach (encoding_foreach_cb, NULL);
                return 0;
        }
 
diff --git a/gedit/gedit-encodings-dialog.c b/gedit/gedit-encodings-dialog.c
index 11d2225..925bb98 100644
--- a/gedit/gedit-encodings-dialog.c
+++ b/gedit/gedit-encodings-dialog.c
@@ -313,12 +313,24 @@ init_shown_in_menu_tree_model (GeditEncodingsDialog *dialog)
 }
 
 static void
+insert_encoding_foreach_cb (const GtkSourceEncoding *encoding,
+                           GeditEncodingsDialog    *dlg)
+{
+       GtkTreeIter iter;
+
+       gtk_list_store_append (dlg->priv->available_liststore, &iter);
+
+       gtk_list_store_set (dlg->priv->available_liststore,
+                           &iter,
+                           COLUMN_CHARSET, gtk_source_encoding_get_charset (encoding),
+                           COLUMN_NAME, gtk_source_encoding_get_name (encoding),
+                           -1);
+}
+
+static void
 gedit_encodings_dialog_init (GeditEncodingsDialog *dlg)
 {
-       GtkTreeIter parent_iter;
        GtkTreeSelection *selection;
-       const GtkSourceEncoding *enc;
-       int i;
 
        dlg->priv = gedit_encodings_dialog_get_instance_private (dlg);
 
@@ -341,20 +353,8 @@ gedit_encodings_dialog_init (GeditEncodingsDialog *dlg)
        /* Tree view of available encodings */
 
        /* Add the data */
-       i = 0;
-       while ((enc = gtk_source_encoding_get_from_index (i)) != NULL)
-       {
-               gtk_list_store_append (dlg->priv->available_liststore,
-                                      &parent_iter);
-               gtk_list_store_set (dlg->priv->available_liststore,
-                                   &parent_iter,
-                                   COLUMN_CHARSET,
-                                   gtk_source_encoding_get_charset (enc),
-                                   COLUMN_NAME,
-                                   gtk_source_encoding_get_name (enc), -1);
-
-               ++i;
-       }
+       gtk_source_encoding_foreach ((GtkSourceEncodingForeachFunc) insert_encoding_foreach_cb,
+                                    dlg);
 
        /* Sort model */
        gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (dlg->priv->sort_available),


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]