From b97df17e5b2d540896e14398a6291a79440e7e2a Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Fri, 4 May 2007 15:12:15 +0000 Subject: [PATCH] Don't use libgnome to lookup icons for MIME types, instead copy code from 2007-05-04 Ross Burton * shell/ev-sidebar-attachments.c: Don't use libgnome to lookup icons for MIME types, instead copy code from GTK+ to do it manually. svn path=/trunk/; revision=2434 --- ChangeLog | 6 ++++++ shell/ev-sidebar-attachments.c | 37 ++++++++++++++++++++-------------- 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index 042a7b23..8aace318 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-05-04 Ross Burton + + * shell/ev-sidebar-attachments.c: + Don't use libgnome to lookup icons for MIME types, instead copy + code from GTK+ to do it manually. + 2007-05-04 Ross Burton * configure.ac: diff --git a/shell/ev-sidebar-attachments.c b/shell/ev-sidebar-attachments.c index e735b131..5d2beff3 100644 --- a/shell/ev-sidebar-attachments.c +++ b/shell/ev-sidebar-attachments.c @@ -29,7 +29,6 @@ #include #include #include -#include #include "ev-file-helpers.h" #include "ev-sidebar-attachments.h" @@ -99,20 +98,28 @@ static GdkPixbuf * icon_theme_get_pixbuf_from_mime_type (GtkIconTheme *icon_theme, const gchar *mime_type) { - GdkPixbuf *pixbuf = NULL; - gchar *icon; - - icon = gnome_icon_lookup (icon_theme, - NULL, NULL, - NULL, NULL, - mime_type, - GNOME_ICON_LOOKUP_FLAGS_NONE, - NULL); - - pixbuf = gtk_icon_theme_load_icon (icon_theme, - icon, 48, 0, NULL); - g_free (icon); - + const char *separator; + GString *icon_name; + GdkPixbuf *pixbuf; + + separator = strchr (mime_type, '/'); + if (!separator) + return NULL; /* maybe we should return a GError with "invalid MIME-type" */ + + icon_name = g_string_new ("gnome-mime-"); + g_string_append_len (icon_name, mime_type, separator - mime_type); + g_string_append_c (icon_name, '-'); + g_string_append (icon_name, separator + 1); + pixbuf = gtk_icon_theme_load_icon (icon_theme, icon_name->str, 48, 0, NULL); + g_string_free (icon_name, TRUE); + if (pixbuf) + return pixbuf; + + icon_name = g_string_new ("gnome-mime-"); + g_string_append_len (icon_name, mime_type, separator - mime_type); + pixbuf = gtk_icon_theme_load_icon (icon_theme, icon_name->str, 48, 0, NULL); + g_string_free (icon_name, TRUE); + return pixbuf; } -- 2.43.5