[gnome-photos] search-type-manager: Avoid Encapsulated PostScript (EPS) files



commit 60adc6c04fd9ab38582fa1604dc89f9edf8fda0c
Author: Umang Jain <mailumangjain gmail com>
Date:   Sat Nov 11 02:27:42 2017 +0530

    search-type-manager: Avoid Encapsulated PostScript (EPS) files
    
    https://bugzilla.gnome.org/show_bug.cgi?id=790191

 src/photos-search-type-manager.c | 29 +++++++++++++++++++++++------
 1 file changed, 23 insertions(+), 6 deletions(-)
---
diff --git a/src/photos-search-type-manager.c b/src/photos-search-type-manager.c
index ac8a3d8a..23e0633d 100644
--- a/src/photos-search-type-manager.c
+++ b/src/photos-search-type-manager.c
@@ -43,6 +43,13 @@ struct _PhotosSearchTypeManager
 G_DEFINE_TYPE (PhotosSearchTypeManager, photos_search_type_manager, PHOTOS_TYPE_BASE_MANAGER);
 
 
+static const gchar *BLACKLISTED_MIME_TYPES[] =
+{
+  "image/gif",
+  "image/x-eps"
+};
+
+
 static gchar *
 photos_search_type_manager_get_filter (PhotosBaseManager *mngr, gint flags)
 {
@@ -91,11 +98,20 @@ photos_search_type_manager_init (PhotosSearchTypeManager *self)
   PhotosSearchType *search_type;
   gchar *item_filter;
   gchar *all_filter;
+  gchar *blacklisted_mime_types_filter;
   gchar *col_filter;
-  gchar *gif_filter;
+  gchar **strv;
+  guint i;
+  guint n_elements;
+
+  n_elements = G_N_ELEMENTS (BLACKLISTED_MIME_TYPES);
+  strv = (gchar **) g_malloc0_n (n_elements + 1, sizeof (gchar *));
+  for (i = 0; i < n_elements; i++)
+    strv[i] = g_strdup_printf ("nie:mimeType(?urn) != '%s'", BLACKLISTED_MIME_TYPES[i]);
+
+  blacklisted_mime_types_filter = g_strjoinv (" && ", strv);
 
-  gif_filter = g_strdup ("nie:mimeType(?urn) != 'image/gif'");
-  item_filter = g_strdup_printf ("(fn:contains (?type, 'nmm#Photo') && %s)", gif_filter);
+  item_filter = g_strdup_printf ("(fn:contains (?type, 'nmm#Photo') && %s)", blacklisted_mime_types_filter);
   col_filter = g_strdup_printf ("(fn:contains (?type, 'nfo#DataContainer')"
                                 " && ?count > 0"
                                 " && (fn:starts-with (nao:identifier (?urn), '%s')"
@@ -122,14 +138,14 @@ photos_search_type_manager_init (PhotosSearchTypeManager *self)
   search_type = photos_search_type_new_full (PHOTOS_SEARCH_TYPE_STOCK_FAVORITES,
                                              _("Favorites"),
                                              "?urn a nmm:Photo; nao:hasTag nao:predefined-tag-favorite. ",
-                                             gif_filter);
+                                             blacklisted_mime_types_filter);
   photos_base_manager_add_object (PHOTOS_BASE_MANAGER (self), G_OBJECT (search_type));
   g_object_unref (search_type);
 
   search_type = photos_search_type_new_full (PHOTOS_SEARCH_TYPE_STOCK_PHOTOS,
                                              _("Photos"),
                                              "?urn a nmm:Photo",
-                                             gif_filter);
+                                             blacklisted_mime_types_filter);
   photos_base_manager_add_object (PHOTOS_BASE_MANAGER (self), G_OBJECT (search_type));
   g_object_unref (search_type);
 
@@ -137,8 +153,9 @@ photos_search_type_manager_init (PhotosSearchTypeManager *self)
 
   g_free (item_filter);
   g_free (all_filter);
+  g_free (blacklisted_mime_types_filter);
   g_free (col_filter);
-  g_free (gif_filter);
+  g_strfreev (strv);
 }
 
 


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