[frogr/macosx: 4/4] Workaround mime types issue in MacOSX
- From: Mario Sanchez Prada <msanchez src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [frogr/macosx: 4/4] Workaround mime types issue in MacOSX
- Date: Tue, 22 Feb 2011 01:56:56 +0000 (UTC)
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]