diff options
author | Ross Burton <ross@openedhand.com> | 2007-05-04 15:12:15 (GMT) |
---|---|---|
committer | Ross Burton <rburton@src.gnome.org> | 2007-05-04 15:12:15 (GMT) |
commit | b97df17e5b2d540896e14398a6291a79440e7e2a (patch) | |
tree | 6c712c89c68f5476cecfb0461957fe8b58f0c9ca /shell | |
parent | a787589bfb2eb9a7150a072b584bd830d7e932c6 (diff) |
Don't use libgnome to lookup icons for MIME types, instead copy code from
2007-05-04 Ross Burton <ross@openedhand.com>
* 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
Diffstat (limited to 'shell')
-rw-r--r-- | shell/ev-sidebar-attachments.c | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/shell/ev-sidebar-attachments.c b/shell/ev-sidebar-attachments.c index e735b13..5d2beff 100644 --- a/shell/ev-sidebar-attachments.c +++ b/shell/ev-sidebar-attachments.c @@ -29,7 +29,6 @@ #include <glib/gstdio.h> #include <gtk/gtk.h> #include <string.h> -#include <libgnomeui/gnome-icon-lookup.h> #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; } |