[gtk/file-filter2: 23/27] simplifications



commit 81caf9b35c6024290f7729ec46d4e71353940a26
Author: Matthias Clasen <mclasen redhat com>
Date:   Sun Jul 5 12:37:41 2020 -0400

    simplifications

 gtk/gtkfilefilter.c | 69 +++++++++++++++++++++++++----------------------------
 1 file changed, 33 insertions(+), 36 deletions(-)
---
diff --git a/gtk/gtkfilefilter.c b/gtk/gtkfilefilter.c
index c3ba18e2e9..7f2560f477 100644
--- a/gtk/gtkfilefilter.c
+++ b/gtk/gtkfilefilter.c
@@ -784,20 +784,11 @@ gtk_file_filter_filter (GtkFileFilter *filter,
                         GFileInfo     *info)
 {
   GSList *tmp_list;
-  GtkFileFilterFlags contains = GTK_FILE_FILTER_DISPLAY_NAME;
 
-  if (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE))
-    contains |= GTK_FILE_FILTER_MIME_TYPE;
-  if (g_file_info_has_attribute (info, "standard::file"))
-    contains |= GTK_FILE_FILTER_FILENAME | GTK_FILE_FILTER_URI;
-
-  for (tmp_list = filter->rules; tmp_list; tmp_list = tmp_list->next)
+  for (tmp_list = file_filter->rules; tmp_list; tmp_list = tmp_list->next)
     {
       FilterRule *rule = tmp_list->data;
 
-      if ((contains & rule->needed) != rule->needed)
-        continue;
-
       switch (rule->type)
         {
         case FILTER_RULE_MIME_TYPE:
@@ -807,52 +798,58 @@ gtk_file_filter_filter (GtkFileFilter *filter,
             gboolean match;
 
             filter_content_type = g_file_info_get_content_type (info);
-            rule_content_type = g_content_type_from_mime_type (rule->u.mime_type);
-            match = filter_content_type != NULL &&
-                    rule_content_type != NULL &&
-                    g_content_type_is_a (filter_content_type, rule_content_type);
-            g_free (rule_content_type);
-
-            if (match)
-             return TRUE;
+            if (filter_content_type)
+              {
+                rule_content_type = g_content_type_from_mime_type (rule->u.mime_type);
+                match = g_content_type_is_a (filter_content_type, rule_content_type);
+                g_free (rule_content_type);
+
+                if (match)
+                  return TRUE;
+              }
           }
           break;
+
         case FILTER_RULE_PATTERN:
           {
             const char *display_name;
 
             display_name = g_file_info_get_display_name (info);
-            if (display_name != NULL &&
-                _gtk_fnmatch (rule->u.pattern, display_name, FALSE))
-            return TRUE;
+            if (display_name)
+              {
+                if (_gtk_fnmatch (rule->u.pattern, display_name, FALSE))
+                  return TRUE;
+              }
           }
           break;
+
         case FILTER_RULE_PIXBUF_FORMATS:
           {
             const char *filter_content_type;
-            GSList *list;
 
             filter_content_type = g_file_info_get_content_type (info);
-            if (!filter_content_type)
-              break;
-
-            for (list = rule->u.pixbuf_formats; list; list = list->next)
+            if (filter_content_type)
               {
-                int i;
-                char **mime_types;
+                GSList *list;
 
-                mime_types = gdk_pixbuf_format_get_mime_types (list->data);
-
-                for (i = 0; mime_types[i] != NULL; i++)
+                for (list = rule->u.pixbuf_formats; list; list = list->next)
                   {
-                    if (strcmp (mime_types[i], filter_content_type) == 0)
+                    int i;
+                    char **mime_types;
+
+                    mime_types = gdk_pixbuf_format_get_mime_types (list->data);
+
+                    for (i = 0; mime_types[i] != NULL; i++)
                       {
-                        g_strfreev (mime_types);
-                        return TRUE;
+                        if (strcmp (mime_types[i], filter_content_type) == 0)
+                          {
+                            g_strfreev (mime_types);
+                            return TRUE;
+                          }
                       }
-                  }
 
-                g_strfreev (mime_types);
+                    g_strfreev (mime_types);
+                  }
               }
           }
           break;


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