nautilus r14253 - branches/gnome-2-22/libnautilus-private



Author: cneumair
Date: Wed Jun 11 13:26:53 2008
New Revision: 14253
URL: http://svn.gnome.org/viewvc/nautilus?rev=14253&view=rev

Log:
2008-06-11  Christian Neumair  <cneumair gnome org>

	* libnautilus-private/nautilus-file.c (update_info_internal),
	(nautilus_file_get_icon):
	* libnautilus-private/nautilus-thumbnails.c
	(nautilus_has_valid_failed_thumbnail):
	* libnautilus-private/nautilus-thumbnails.h:
	Fix thumbnail handling. Always request thumbnailing if a file without
	any thumbnail changes its mtime, or if a failed thumbnail is not up to
	date (i.e. its mtime differs from the file's mtime).


Modified:
   branches/gnome-2-22/libnautilus-private/nautilus-file.c
   branches/gnome-2-22/libnautilus-private/nautilus-thumbnails.c
   branches/gnome-2-22/libnautilus-private/nautilus-thumbnails.h

Modified: branches/gnome-2-22/libnautilus-private/nautilus-file.c
==============================================================================
--- branches/gnome-2-22/libnautilus-private/nautilus-file.c	(original)
+++ branches/gnome-2-22/libnautilus-private/nautilus-file.c	Wed Jun 11 13:26:53 2008
@@ -1749,6 +1749,10 @@
 	if (file->details->atime != atime ||
 	    file->details->mtime != mtime ||
 	    file->details->ctime != ctime) {
+		if (file->details->thumbnail == NULL) {
+			file->details->thumbnail_is_up_to_date = FALSE;
+		}
+
 		changed = TRUE;
 	}
 	file->details->atime = atime;
@@ -3397,8 +3401,9 @@
 			return icon;
 		} else if (file->details->thumbnail_path == NULL &&
 			   file->details->can_read &&				
-			   !file->details->thumbnailing_failed &&
-			   !file->details->is_thumbnailing) {
+			   !file->details->is_thumbnailing &&
+			   (!file->details->thumbnailing_failed ||
+			    !nautilus_has_valid_failed_thumbnail (file))) {
 			if (nautilus_can_thumbnail (file)) {
 				nautilus_create_thumbnail (file);
 			}

Modified: branches/gnome-2-22/libnautilus-private/nautilus-thumbnails.c
==============================================================================
--- branches/gnome-2-22/libnautilus-private/nautilus-thumbnails.c	(original)
+++ branches/gnome-2-22/libnautilus-private/nautilus-thumbnails.c	Wed Jun 11 13:26:53 2008
@@ -790,6 +790,22 @@
 	return res;
 }
 
+gboolean
+nautilus_has_valid_failed_thumbnail (NautilusFile *file)
+{
+	GnomeThumbnailFactory *factory;
+	char *uri;
+	gboolean res;
+
+	factory = get_thumbnail_factory ();
+
+	uri = nautilus_file_get_uri (file);
+	res = gnome_thumbnail_factory_has_valid_failed_thumbnail (factory, uri, file->details->mtime);
+	g_free (uri);
+
+	return res;
+}
+
 void
 nautilus_create_thumbnail (NautilusFile *file)
 {

Modified: branches/gnome-2-22/libnautilus-private/nautilus-thumbnails.h
==============================================================================
--- branches/gnome-2-22/libnautilus-private/nautilus-thumbnails.h	(original)
+++ branches/gnome-2-22/libnautilus-private/nautilus-thumbnails.h	Wed Jun 11 13:26:53 2008
@@ -46,6 +46,7 @@
 /* Returns NULL if there's no thumbnail yet. */
 void       nautilus_create_thumbnail                (NautilusFile *file);
 gboolean   nautilus_can_thumbnail                   (NautilusFile *file);
+gboolean   nautilus_has_valid_failed_thumbnail      (NautilusFile *file);
 gboolean   nautilus_thumbnail_is_mimetype_limited_by_size
 						    (const char *mime_type);
 void       nautilus_thumbnail_frame_image           (GdkPixbuf **pixbuf);



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