Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorRoss 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)
commitb97df17e5b2d540896e14398a6291a79440e7e2a (patch)
tree6c712c89c68f5476cecfb0461957fe8b58f0c9ca /shell
parenta787589bfb2eb9a7150a072b584bd830d7e932c6 (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.c37
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;
}