diff options
author | Alexander Larsson <alexl@src.gnome.org> | 2007-11-30 14:51:10 +0000 |
---|---|---|
committer | Alexander Larsson <alexl@src.gnome.org> | 2007-11-30 14:51:10 +0000 |
commit | 469047a2a58430026d68a3b99b223b922b18b8d1 (patch) | |
tree | 0d7422285604a348f98f3c93e39afdf570050678 /src/nautilus-emblem-sidebar.c | |
parent | ce669bd18cf00a3fc485ffedc53850e2d89b57e0 (diff) | |
download | nautilus-469047a2a58430026d68a3b99b223b922b18b8d1.tar.gz |
Merge gio-branch
svn path=/trunk/; revision=13464
Diffstat (limited to 'src/nautilus-emblem-sidebar.c')
-rw-r--r-- | src/nautilus-emblem-sidebar.c | 81 |
1 files changed, 42 insertions, 39 deletions
diff --git a/src/nautilus-emblem-sidebar.c b/src/nautilus-emblem-sidebar.c index 9cfdc180e..5d7c970ff 100644 --- a/src/nautilus-emblem-sidebar.c +++ b/src/nautilus-emblem-sidebar.c @@ -39,7 +39,6 @@ #include <eel/eel-labeled-image.h> #include <eel/eel-graphic-effects.h> #include <eel/eel-gdk-pixbuf-extensions.h> -#include <eel/eel-vfs-extensions.h> #include <eel/eel-stock-dialogs.h> #include <gdk-pixbuf/gdk-pixbuf.h> #include <gtk/gtkdnd.h> @@ -59,9 +58,7 @@ #include <glib/gi18n.h> #include <libgnomeui/gnome-uidefs.h> #include <libgnomeui/gnome-popup-menu.h> -#include <libgnomevfs/gnome-vfs-utils.h> #include <gconf/gconf-client.h> -#include <libnautilus-private/nautilus-icon-factory.h> #include <libnautilus-private/nautilus-icon-dnd.h> #include <libnautilus-private/nautilus-emblem-utils.h> #include <libnautilus-private/nautilus-file-utilities.h> @@ -456,23 +453,26 @@ create_emblem_widget (NautilusEmblemSidebar *emblem_sidebar, const char *name) { GtkWidget *ret; - char *display_name, *keyword; + const char *display_name; + char *keyword; GdkPixbuf *pixbuf; - - pixbuf = nautilus_icon_factory_get_pixbuf_from_name (name, NULL, - NAUTILUS_ICON_SIZE_STANDARD, TRUE, - &display_name); + NautilusIconInfo *info; + + info = nautilus_icon_info_lookup_from_name (name, NAUTILUS_ICON_SIZE_STANDARD); + pixbuf = nautilus_icon_info_get_pixbuf_at_size (info, NAUTILUS_ICON_SIZE_STANDARD); + + display_name = nautilus_icon_info_get_display_name (info); + keyword = nautilus_emblem_get_keyword_from_icon_name (name); if (display_name == NULL) { - display_name = g_strdup (keyword); + display_name = keyword; } ret = create_emblem_widget_with_pixbuf (emblem_sidebar, keyword, display_name, pixbuf); g_free (keyword); - g_free (display_name); - + g_object_unref (info); return ret; } @@ -727,12 +727,14 @@ nautilus_emblem_sidebar_drag_received_cb (GtkWidget *widget, Emblem *emblem; GdkPixbuf *pixbuf; char *uri, *error, *uri_utf8; - GList *uris, *l; + char **uris; + GFile *f; + int i; gboolean had_failure; had_failure = FALSE; emblems = NULL; - + switch (info) { case TARGET_URI_LIST: if (data->format != 8 || @@ -742,36 +744,36 @@ nautilus_emblem_sidebar_drag_received_cb (GtkWidget *widget, return; } - uris = nautilus_icon_dnd_uri_list_extract_uris (data->data); - l = uris; - while (l != NULL) { - uri = eel_make_uri_canonical (l->data); - l = l->next; - - if (uri == NULL) { - had_failure = TRUE; - continue; - } + uris = g_uri_list_extract_uris (data->data); + if (uris == NULL) { + break; + } - pixbuf = nautilus_emblem_load_pixbuf_for_emblem (uri); + for (i = 0; uris[i] != NULL; ++i) { + f = g_file_new_for_uri (uris[i]); + pixbuf = nautilus_emblem_load_pixbuf_for_emblem (f); if (pixbuf == NULL) { /* this one apparently isn't an image, or * at least not one that we know how to read */ had_failure = TRUE; + g_object_unref (f); continue; } emblem = g_new (Emblem, 1); - emblem->uri = uri; + emblem->uri = g_file_get_uri (f); emblem->name = NULL; /* created later on by the user */ emblem->keyword = NULL; emblem->pixbuf = pixbuf; + + g_object_unref (f); emblems = g_slist_prepend (emblems, emblem); } - nautilus_icon_dnd_uri_list_free_strings (uris); + + g_strfreev (uris); if (had_failure && emblems != NULL) { eel_show_error_dialog (_("Some of the files could not be added as emblems."), _("The emblems do not appear to be valid images."), NULL); @@ -796,12 +798,8 @@ nautilus_emblem_sidebar_drag_received_cb (GtkWidget *widget, uri = g_strndup (data->data, data->length); - if (!eel_is_valid_uri (uri)) { - eel_show_error_dialog (_("The emblem cannot be added."), _("The dragged text was not a valid file location."), NULL); - break; - } - - pixbuf = nautilus_emblem_load_pixbuf_for_emblem (uri); + f = g_file_new_for_uri (uri); + pixbuf = nautilus_emblem_load_pixbuf_for_emblem (f); if (pixbuf != NULL) { emblem = g_new (Emblem, 1); @@ -814,7 +812,7 @@ nautilus_emblem_sidebar_drag_received_cb (GtkWidget *widget, show_add_emblems_dialog (emblem_sidebar, emblems); } else { - uri_utf8 = eel_format_uri_for_display (uri); + uri_utf8 = g_file_get_parse_name (f); if (uri_utf8) { error = g_strdup_printf (_("The file '%s' does not appear to be a valid image."), uri_utf8); @@ -827,6 +825,7 @@ nautilus_emblem_sidebar_drag_received_cb (GtkWidget *widget, g_free (uri_utf8); } + g_object_unref (f); g_free (uri); break; @@ -842,20 +841,21 @@ nautilus_emblem_sidebar_drag_received_cb (GtkWidget *widget, /* apparently, this is a URI/title pair? or just a pair * of identical URIs? Regardless, this seems to work... */ - uris = nautilus_icon_dnd_uri_list_extract_uris (data->data); + uris = g_uri_list_extract_uris (data->data); if (uris == NULL) { break; } - - uri = uris->data; + uri = uris[0]; if (uri == NULL) { - nautilus_icon_dnd_uri_list_free_strings (uris); + g_strfreev (uris); break; } - pixbuf = nautilus_emblem_load_pixbuf_for_emblem (uri); + f = g_file_new_for_uri (uri); + pixbuf = nautilus_emblem_load_pixbuf_for_emblem (f); + g_object_unref (f); if (pixbuf != NULL) { emblem = g_new (Emblem, 1); @@ -874,6 +874,9 @@ nautilus_emblem_sidebar_drag_received_cb (GtkWidget *widget, eel_show_error_dialog (_("The emblem cannot be added."), error, NULL); g_free (error); } + + g_strfreev (uris); + break; } } @@ -945,7 +948,7 @@ nautilus_emblem_sidebar_populate (NautilusEmblemSidebar *emblem_sidebar) } - icons = nautilus_emblem_list_availible (); + icons = nautilus_emblem_list_available (); l = icons; widgets = NULL; |