From 01854c4070196fe173fc1cd67b19c98fee0039ac Mon Sep 17 00:00:00 2001 From: Andre Miranda <andreldm@xfce.org> Date: Sat, 2 Jun 2018 19:35:31 -0300 Subject: [PATCH] Use GResource for thumbnail frame Also make it work again, the /.thumbnails/ path has changed to /.cache/thumbnails/ --- .gitignore | 2 +- thunar/Makefile.am | 42 ++++++++++++++++++--------------- thunar/thunar-icon-factory.c | 26 ++++++++++++++++---- thunar/thunar-thumbnail-frame.h | 31 ------------------------ thunar/thunar.gresource.xml | 6 +++++ 5 files changed, 52 insertions(+), 55 deletions(-) delete mode 100644 thunar/thunar-thumbnail-frame.h create mode 100644 thunar/thunar.gresource.xml diff --git a/.gitignore b/.gitignore index 3362ead75..40ec2eaaf 100644 --- a/.gitignore +++ b/.gitignore @@ -108,10 +108,10 @@ thunar/thunar thunar/thunar-dbus-service-infos.[ch] thunar/thunar-fallback-icon.c thunar/thunar-thumbnail-cache-proxy.[ch] -thunar/thunar-thumbnail-frame.c thunar/thunar-thumbnailer-manager-proxy.h thunar/thunar-thumbnailer-proxy.[ch] thunar/thunar-marshal.[ch] +thunar/thunar-resources.[ch] thunar/Thunar thunar/core.* thunar/*.core diff --git a/thunar/Makefile.am b/thunar/Makefile.am index e27c95e59..cd747267e 100644 --- a/thunar/Makefile.am +++ b/thunar/Makefile.am @@ -22,22 +22,23 @@ bin_PROGRAMS = \ thunar thunar_built_sources = \ - thunar-marshal.c \ - thunar-marshal.h \ - thunar-abstract-icon-view-ui.h \ + thunar-marshal.c \ + thunar-marshal.h \ + thunar-abstract-icon-view-ui.h \ thunar-details-view-ui.h \ thunar-launcher-ui.h \ thunar-shortcuts-pane-ui.h \ thunar-renamer-dialog-ui.h \ thunar-standard-view-ui.h \ - thunar-thumbnail-frame.c \ thunar-dbus-service-infos.h \ thunar-dbus-service-infos.c \ thunar-thumbnailer-proxy.c \ thunar-thumbnailer-proxy.h \ - thunar-thumbnail-cache-proxy.h \ - thunar-thumbnail-cache-proxy.c \ - thunar-window-ui.h + thunar-thumbnail-cache-proxy.h \ + thunar-thumbnail-cache-proxy.c \ + thunar-window-ui.h \ + thunar-resources.h \ + thunar-resources.c thunar_SOURCES = \ @@ -200,7 +201,6 @@ thunar_SOURCES = \ thunar-thumbnail-cache.h \ thunar-thumbnailer.c \ thunar-thumbnailer.h \ - thunar-thumbnail-frame.h \ thunar-transfer-job.c \ thunar-transfer-job.h \ thunar-trash-action.c \ @@ -298,9 +298,6 @@ thunar-thumbnailer-proxy.h thunar-thumbnailer-proxy.c: $(srcdir)/thunar-thumbnai thunar-thumbnail-cache-proxy.h thunar-thumbnail-cache-proxy.c: $(srcdir)/thunar-thumbnail-cache-dbus.xml Makefile $(AM_V_GEN) gdbus-codegen --c-namespace Thunar --generate-c-code thunar-thumbnail-cache-proxy $(srcdir)/thunar-thumbnail-cache-dbus.xml -thunar-thumbnail-frame.c: $(srcdir)/thunar-thumbnail-frame.png Makefile - $(AM_V_GEN) (echo "#include <thunar/thunar-thumbnail-frame.h>" && gdk-pixbuf-csource --extern --raw --stream --name=thunar_thumbnail_frame $(srcdir)/thunar-thumbnail-frame.png) > thunar-thumbnail-frame.c - thunar-abstract-icon-view-ui.h: Makefile $(srcdir)/thunar-abstract-icon-view-ui.xml $(AM_V_GEN) exo-csource --strip-comments --strip-content --static --name=thunar_abstract_icon_view_ui $(srcdir)/thunar-abstract-icon-view-ui.xml > thunar-abstract-icon-view-ui.h @@ -349,17 +346,24 @@ thunar-marshal.c: thunar-marshal.list Makefile && cp xgen-tmc thunar-marshal.c \ && rm -f xgen-tmc \ ) + +thunar-resources.c: thunar.gresource.xml + glib-compile-resources --target=$@ --sourcedir=$(srcdir) --generate-source --c-name thunar $(srcdir)/thunar.gresource.xml + +thunar-resources.h: thunar.gresource.xml + glib-compile-resources --target=$@ --sourcedir=$(srcdir) --generate-header --c-name thunar $(srcdir)/thunar.gresource.xml endif EXTRA_DIST = \ - thunar-abstract-icon-view-ui.xml \ - thunar-dbus-service-infos.xml \ - thunar-details-view-ui.xml \ - thunar-launcher-ui.xml \ + thunar-abstract-icon-view-ui.xml \ + thunar-dbus-service-infos.xml \ + thunar-details-view-ui.xml \ + thunar-launcher-ui.xml \ thunar-marshal.list \ - thunar-renamer-dialog-ui.xml \ - thunar-standard-view-ui.xml \ - thunar-thumbnail-frame.png \ - thunar-window-ui.xml \ + thunar-renamer-dialog-ui.xml \ + thunar-standard-view-ui.xml \ + thunar-thumbnail-frame.png \ + thunar-window-ui.xml \ thunar-settings \ + thunar.gresource.xml \ $(desktop_in_files) diff --git a/thunar/thunar-icon-factory.c b/thunar/thunar-icon-factory.c index 6bc08477d..b39f414be 100644 --- a/thunar/thunar-icon-factory.c +++ b/thunar/thunar-icon-factory.c @@ -34,7 +34,6 @@ #include <thunar/thunar-icon-factory.h> #include <thunar/thunar-preferences.h> #include <thunar/thunar-private.h> -#include <thunar/thunar-thumbnail-frame.h> #include <thunar/thunar-util.h> @@ -399,6 +398,26 @@ thumbnail_needs_frame (const GdkPixbuf *thumbnail, +static GdkPixbuf* +thunar_icon_factory_get_thumbnail_frame (void) +{ + GInputStream *stream; + static GdkPixbuf *frame = NULL; + + if (G_LIKELY (frame != NULL)) + return frame; + + stream = g_resources_open_stream ("/org/xfce/thunar/thumbnail-frame.png", 0, NULL); + if (G_UNLIKELY (stream != NULL)) { + frame = gdk_pixbuf_new_from_stream (stream, NULL, NULL); + g_object_unref (stream); + } + + return frame; +} + + + static GdkPixbuf* thunar_icon_factory_load_from_file (ThunarIconFactory *factory, const gchar *path, @@ -424,7 +443,7 @@ thunar_icon_factory_load_from_file (ThunarIconFactory *factory, /* check if we want to add a frame to the image (we really don't * want to do this for icons displayed in the details view). */ - needs_frame = (strstr (path, G_DIR_SEPARATOR_S ".thumbnails" G_DIR_SEPARATOR_S) != NULL) + needs_frame = (strstr (path, G_DIR_SEPARATOR_S ".cache/thumbnails" G_DIR_SEPARATOR_S) != NULL) && (size >= 32) && thumbnail_needs_frame (pixbuf, width, height); /* be sure to make framed thumbnails fit into the size */ @@ -452,10 +471,9 @@ thunar_icon_factory_load_from_file (ThunarIconFactory *factory, if (G_LIKELY (needs_frame)) { /* add a frame to the thumbnail */ - frame = gdk_pixbuf_new_from_inline (-1, thunar_thumbnail_frame, FALSE, NULL); + frame = thunar_icon_factory_get_thumbnail_frame (); tmp = exo_gdk_pixbuf_frame (pixbuf, frame, 4, 3, 5, 6); g_object_unref (G_OBJECT (pixbuf)); - g_object_unref (G_OBJECT (frame)); pixbuf = tmp; } } diff --git a/thunar/thunar-thumbnail-frame.h b/thunar/thunar-thumbnail-frame.h deleted file mode 100644 index 8ac881981..000000000 --- a/thunar/thunar-thumbnail-frame.h +++ /dev/null @@ -1,31 +0,0 @@ -/* vi:set et ai sw=2 sts=2 ts=2: */ -/*- - * Copyright (c) 2005 Benedikt Meurer <benny@xfce.org> - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef __THUNAR_THUMBNAIL_FRAME_H__ -#define __THUNAR_THUMBNAIL_FRAME_H__ - -#include <glib.h> - -G_BEGIN_DECLS; - -extern const guint8 thunar_thumbnail_frame[]; - -G_END_DECLS; - -#endif /* !__THUNAR_THUMBNAIL_FRAME_H__ */ diff --git a/thunar/thunar.gresource.xml b/thunar/thunar.gresource.xml new file mode 100644 index 000000000..1f521a496 --- /dev/null +++ b/thunar/thunar.gresource.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<gresources> + <gresource prefix="/org/xfce/thunar"> + <file compressed="true" alias="thumbnail-frame.png">thunar-thumbnail-frame.png</file> + </gresource> +</gresources> -- GitLab