[f-spot] Check if file exists for GIO
- From: Ruben Vermeersch <rubenv src gnome org>
- To: commits-list gnome org
- Cc: 
- Subject: [f-spot] Check if file exists for GIO
- Date: Sat, 22 May 2010 19:45:21 +0000 (UTC)
commit f690055fa8d27fff23f9c438bc11f12c49debd3a
Author: Paul Wellner Bou <paul purecodes org>
Date:   Fri May 21 14:25:41 2010 +0200
    Check if file exists for GIO
    
    https://bugzilla.gnome.org/show_bug.cgi?id=619282
 src/Imaging/ImageFile.cs |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)
---
diff --git a/src/Imaging/ImageFile.cs b/src/Imaging/ImageFile.cs
index be20669..c974c9f 100644
--- a/src/Imaging/ImageFile.cs
+++ b/src/Imaging/ImageFile.cs
@@ -205,8 +205,13 @@ namespace FSpot {
 			Type t = (Type) name_table [extension];
 
 			if (t == null) {
-				GLib.FileInfo info = GLib.FileFactory.NewForUri (uri).QueryInfo ("standard::type,standard::content-type", GLib.FileQueryInfoFlags.None, null);
-				t = (Type) name_table [info.ContentType];
+				// check if GIO can find the file, which is not the case
+				// with filenames with invalid encoding
+				GLib.File f = GLib.FileFactory.NewForUri (uri);
+				if (f.QueryExists (null)) {
+					GLib.FileInfo info = f.QueryInfo ("standard::type,standard::content-type", GLib.FileQueryInfoFlags.None, null);
+					t = (Type) name_table [info.ContentType];
+				}
 			}
 
 			return t;
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]