rpms/nautilus/F-11 nautilus-2.28.0-thumbnailing-limit.patch, NONE, 1.1 nautilus.spec, 1.275, 1.276

Tomas Bzatek tbzatek at fedoraproject.org
Fri Sep 25 12:47:43 UTC 2009


Author: tbzatek

Update of /cvs/extras/rpms/nautilus/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv24581

Modified Files:
	nautilus.spec 
Added Files:
	nautilus-2.28.0-thumbnailing-limit.patch 
Log Message:
* Fri Sep 25 2009 Tomas Bzatek <tbzatek at redhat.com> - 2.26.4-2
- Don't load files for thumbnailing that we can't thumbnail anyway


nautilus-2.28.0-thumbnailing-limit.patch:
 nautilus-file.c       |    3 ++-
 nautilus-thumbnails.c |   30 ++++++++++++++++++++++++------
 nautilus-thumbnails.h |    2 +-
 3 files changed, 27 insertions(+), 8 deletions(-)

--- NEW FILE nautilus-2.28.0-thumbnailing-limit.patch ---
>From 048473e42ac2e37bd43159cda4394c11f7f68568 Mon Sep 17 00:00:00 2001
From: Alexander Larsson <alexl at redhat.com>
Date: Fri, 25 Sep 2009 12:41:28 +0000
Subject: Don't load files for thumbnailing that we can't thumbnail anyway

When zooming out we read the real image and use that as the thumbnail.
However, we should only do this for files gdk-pixbuf can read as other
things can't be read anyway and may potentially be very large (such as
videos) since the thumbnail size limit only applies for images.

Cherry picked from master
---
diff --git a/libnautilus-private/nautilus-file.c b/libnautilus-private/nautilus-file.c
index fb6d92b..a2a84f0 100644
--- a/libnautilus-private/nautilus-file.c
+++ b/libnautilus-private/nautilus-file.c
@@ -3588,7 +3588,8 @@ nautilus_file_get_icon (NautilusFile *file,
 			   since the zoom level 150% gives thumbnails at 144, which is
 			   ok to scale up from 128. */
 			if (modified_size > 128*1.25 &&
-			    !file->details->thumbnail_wants_original) {
+			    !file->details->thumbnail_wants_original &&
+			    nautilus_can_thumbnail_internally (file)) {
 				/* Invalidate if we resize upward */
 				file->details->thumbnail_wants_original = TRUE;
 				nautilus_file_invalidate_attributes (file, NAUTILUS_FILE_ATTRIBUTE_THUMBNAIL);
diff --git a/libnautilus-private/nautilus-thumbnails.c b/libnautilus-private/nautilus-thumbnails.c
index f064135..2a3fede 100644
--- a/libnautilus-private/nautilus-thumbnails.c
+++ b/libnautilus-private/nautilus-thumbnails.c
@@ -765,17 +765,35 @@ get_types_table (void)
 	return image_mime_types;
 }
 
-gboolean
-nautilus_thumbnail_is_mimetype_limited_by_size (const char *mime_type)
+static gboolean
+pixbuf_can_load_type (const char *mime_type)
 {
 	GHashTable *image_mime_types;
-	
+
 	image_mime_types = get_types_table ();
-        if (g_hash_table_lookup (image_mime_types, mime_type)) {
-                return TRUE;
+	if (g_hash_table_lookup (image_mime_types, mime_type)) {
+		return TRUE;
 	}
 
-        return FALSE;
+	return FALSE;
+}
+
+gboolean
+nautilus_can_thumbnail_internally (NautilusFile *file)
+{
+	char *mime_type;
+	gboolean res;
+
+	mime_type = nautilus_file_get_mime_type (file);
+	res = pixbuf_can_load_type (mime_type);
+	g_free (mime_type);
+	return res;
+}
+
+gboolean
+nautilus_thumbnail_is_mimetype_limited_by_size (const char *mime_type)
+{
+	return pixbuf_can_load_type (mime_type);
 }
 
 gboolean
diff --git a/libnautilus-private/nautilus-thumbnails.h b/libnautilus-private/nautilus-thumbnails.h
index 82007ba..3028c92 100644
--- a/libnautilus-private/nautilus-thumbnails.h
+++ b/libnautilus-private/nautilus-thumbnails.h
@@ -47,6 +47,7 @@ typedef void (* NautilusThumbnailAsyncLoadFunc) (NautilusThumbnailAsyncLoadHandl
 void       nautilus_create_thumbnail                (NautilusFile *file);
 gboolean   nautilus_can_thumbnail                   (NautilusFile *file);
 gboolean   nautilus_has_valid_failed_thumbnail      (NautilusFile *file);
+gboolean   nautilus_can_thumbnail_internally        (NautilusFile *file);
 gboolean   nautilus_thumbnail_is_mimetype_limited_by_size
 						    (const char *mime_type);
 void       nautilus_thumbnail_frame_image           (GdkPixbuf **pixbuf);
--
cgit v0.8.2


Index: nautilus.spec
===================================================================
RCS file: /cvs/extras/rpms/nautilus/F-11/nautilus.spec,v
retrieving revision 1.275
retrieving revision 1.276
diff -u -p -r1.275 -r1.276
--- nautilus.spec	25 Sep 2009 08:46:11 -0000	1.275
+++ nautilus.spec	25 Sep 2009 12:47:42 -0000	1.276
@@ -16,7 +16,7 @@
 Name:		nautilus
 Summary:        File manager for GNOME
 Version: 	2.26.4
-Release:	1%{?dist}
+Release:	2%{?dist}
 License: 	GPLv2+
 Group:          User Interface/Desktops
 Source: 	http://download.gnome.org/sources/%{name}/2.26/%{name}-%{version}.tar.bz2
@@ -91,6 +91,9 @@ Patch17:	nautilus-filetype-symlink-fix.p
 # https://bugzilla.redhat.com/show_bug.cgi?id=505919
 Patch18:	nautilus-2.27.2-dark-text-on-dark-bg.patch
 
+# Don't load files for thumbnailing that we can't thumbnail anyway
+Patch19:	nautilus-2.28.0-thumbnailing-limit.patch
+
 
 %description
 Nautilus is the file manager and graphical shell for the GNOME desktop
@@ -130,6 +133,7 @@ for developing nautilus extensions.
 %patch10 -p1 -b .gvfs-desktop-key
 %patch17 -p0 -b .symlink
 %patch18 -p1 -b .dark-text
+%patch19 -p1 -b .thumbnail-limit
 
 %build
 
@@ -267,6 +271,9 @@ fi
 
 
 %changelog
+* Fri Sep 25 2009 Tomas Bzatek <tbzatek at redhat.com> - 2.26.4-2
+- Don't load files for thumbnailing that we can't thumbnail anyway
+
 * Fri Sep 25 2009 Tomas Bzatek <tbzatek at redhat.com> - 2.26.4-1
 - Update to 2.26.4
 




More information about the scm-commits mailing list