[frogr/macosx: 4/4] Workaround mime types issue in MacOSX



commit 664b42d2ad50ddbed7177ef9f6888eaa0b61858c
Author: Mario Sanchez Prada <msanchez igalia com>
Date:   Sun Feb 20 00:26:45 2011 +0100

    Workaround mime types issue in MacOSX

 src/frogr-main-view.c      |   12 ++++++++++++
 src/frogr-picture-loader.c |   23 +++++++++++++++++------
 2 files changed, 29 insertions(+), 6 deletions(-)
---
diff --git a/src/frogr-main-view.c b/src/frogr-main-view.c
index 59908a5..c34e95f 100644
--- a/src/frogr-main-view.c
+++ b/src/frogr-main-view.c
@@ -926,11 +926,23 @@ _add_pictures_dialog (FrogrMainView *self)
 
   /* Set images filter */
   filter = gtk_file_filter_new ();
+
+#ifdef MAC_INTEGRATION
+  /* Workaround for Mac OSX, where GNOME VFS daemon won't be running,
+     so we can't check filter by mime type (will be text/plain) */
+  gtk_file_filter_add_pattern (filter, "*.[jJ][pP][gG]");
+  gtk_file_filter_add_pattern (filter, "*.[jJ][pP][eE][gG]");
+  gtk_file_filter_add_pattern (filter, "*.[pP][nN][gG]");
+  gtk_file_filter_add_pattern (filter, "*.[bB][mM][pP]");
+  gtk_file_filter_add_pattern (filter, "*.[gG][iI][fF]");
+#else
   gtk_file_filter_add_mime_type (filter, "image/jpg");
   gtk_file_filter_add_mime_type (filter, "image/jpeg");
   gtk_file_filter_add_mime_type (filter, "image/png");
   gtk_file_filter_add_mime_type (filter, "image/bmp");
   gtk_file_filter_add_mime_type (filter, "image/gif");
+#endif
+
   gtk_file_filter_set_name (filter, "images");
   gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
   gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (dialog), TRUE);
diff --git a/src/frogr-picture-loader.c b/src/frogr-picture-loader.c
index df31416..d4ec417 100644
--- a/src/frogr-picture-loader.c
+++ b/src/frogr-picture-loader.c
@@ -60,6 +60,9 @@ struct _FrogrPictureLoaderPrivate
   GObject *object;
 };
 
+#ifndef MAC_INTEGRATION
+/* Don't use this in Mac OSX, where GNOME VFS daemon won't be running,
+   so we couldn't reliably check mime types (will be text/plain) */
 static const gchar *valid_mimetypes[] = {
   "image/jpg",
   "image/jpeg",
@@ -67,6 +70,7 @@ static const gchar *valid_mimetypes[] = {
   "image/bmp",
   "image/gif",
   NULL};
+#endif
 
 /* Prototypes */
 
@@ -136,22 +140,26 @@ _load_next_picture (FrogrPictureLoader *self)
 
   if (priv->current)
     {
-      GFile *gfile = NULL;
-      GFileInfo *file_info;
       gchar *fileuri = (gchar *)priv->current->data;
+      GFile *gfile = g_file_new_for_uri (fileuri);
+      gboolean valid_mime = TRUE;
+
+#ifndef MAC_INTEGRATION
+      GFileInfo *file_info;
       const gchar *mime_type;
-      gboolean valid_mime = FALSE;
       gint i;
 
       /* Get file info */
-      gfile = g_file_new_for_uri (fileuri);
       file_info = g_file_query_info (gfile,
                                      G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
                                      G_FILE_QUERY_INFO_NONE,
                                      NULL,
                                      NULL);
-      /* Check mimetype */
+
+      /* Check mimetype (only when not in Mac OSX) */
       mime_type = g_file_info_get_content_type (file_info);
+
+      valid_mime = FALSE;
       for (i = 0; valid_mimetypes[i]; i++)
         {
           if (g_str_equal (valid_mimetypes[i], mime_type))
@@ -161,8 +169,11 @@ _load_next_picture (FrogrPictureLoader *self)
             }
         }
 
-      DEBUG ("Adding file %s (%s)", fileuri, mime_type);
+      DEBUG ("Mime detected: %s)", mime_type);
       g_object_unref (file_info);
+#endif
+
+      DEBUG ("Adding file %s", fileuri);
 
       /* Asynchronously load the picture if mime is valid */
       if (valid_mime)



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