[gtk: 2/3] file-system-model: Refactor a helper



commit b9155dcb1aca84bf5214f729ed623a2258ee9a0b
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date:   Sun Apr 26 17:38:49 2020 -0400

    file-system-model: Refactor a helper
    
    Push more common code into the helper for
    gtk_file_system_model_query_done() and
    gtk_file_system_model_one_query_done().

 gtk/gtkfilesystemmodel.c | 46 ++++++++++++++++++++--------------------------
 1 file changed, 20 insertions(+), 26 deletions(-)
---
diff --git a/gtk/gtkfilesystemmodel.c b/gtk/gtkfilesystemmodel.c
index 9de81a4f89..0a9e348b7e 100644
--- a/gtk/gtkfilesystemmodel.c
+++ b/gtk/gtkfilesystemmodel.c
@@ -1205,16 +1205,31 @@ gtk_file_system_model_got_files (GObject *object, GAsyncResult *res, gpointer da
 /* Helper for gtk_file_system_model_query_done and
  * gtk_file_system_model_one_query_done */
 static void
-query_done_helper (GtkFileSystemModel *model,
-                   GFile              *file,
-                   GFileInfo          *info)
+query_done_helper (GObject *     object,
+                   GAsyncResult *res,
+                   gpointer      data,
+                   gboolean      do_thaw_updates)
 {
+  GtkFileSystemModel *model;
+  GFile *file = G_FILE (object);
+  GFileInfo *info;
   guint id;
 
+  info = g_file_query_info_finish (file, res, NULL);
+  if (info == NULL)
+    return;
+
+  model = GTK_FILE_SYSTEM_MODEL (data);
+
   _gtk_file_system_model_update_file (model, file, info);
 
   id = node_get_for_file (model, file);
   gtk_file_system_model_sort_node (model, id);
+
+  if (do_thaw_updates)
+    thaw_updates (model);
+
+  g_object_unref (info);
 }
 
 static void
@@ -1222,16 +1237,7 @@ gtk_file_system_model_query_done (GObject *     object,
                                   GAsyncResult *res,
                                   gpointer      data)
 {
-  GFile *file = G_FILE (object);
-  GFileInfo *info;
-
-  info = g_file_query_info_finish (file, res, NULL);
-
-  if (info != NULL)
-    {
-      query_done_helper (GTK_FILE_SYSTEM_MODEL (data), file, info);
-      g_object_unref (info);
-    }
+  query_done_helper (object, res, data, FALSE);
 }
 
 static void
@@ -2150,19 +2156,7 @@ gtk_file_system_model_one_query_done (GObject *     object,
                                       GAsyncResult *res,
                                       gpointer      data)
 {
-  GFile *file = G_FILE (object);
-  GFileInfo *info;
-
-  info = g_file_query_info_finish (file, res, NULL);
-
-  if (info != NULL)
-    {
-      GtkFileSystemModel *model = GTK_FILE_SYSTEM_MODEL (data);
-
-      query_done_helper (model, file, info);
-      g_object_unref (info);
-      thaw_updates (model);
-    }
+  query_done_helper (object, res, data, TRUE);
 }
 
 void


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