diff options
author | Alexander Larsson <alexl@redhat.com> | 2008-03-06 20:51:30 +0000 |
---|---|---|
committer | Alexander Larsson <alexl@src.gnome.org> | 2008-03-06 20:51:30 +0000 |
commit | 29bf92644a4d8c9bada48faadcdb99ee21b80a8e (patch) | |
tree | 8ef3e017f12d8f2759ab0913daf4dd5747e766e3 /daemon/gvfsbackendsmb.c | |
parent | d6ee41978959a8f3d3ac63e63f291d9f32ba4755 (diff) | |
download | gvfs-29bf92644a4d8c9bada48faadcdb99ee21b80a8e.tar.gz |
Use g_content_type_get_icon() instead of open coding it. Also picks up
2008-03-06 Alexander Larsson <alexl@redhat.com>
* daemon/gvfsbackendsftp.c:
* daemon/gvfsbackendsmb.c:
Use g_content_type_get_icon() instead of open
coding it. Also picks up more icons since
that has been fixed. (#520742)
svn path=/trunk/; revision=1586
Diffstat (limited to 'daemon/gvfsbackendsmb.c')
-rw-r--r-- | daemon/gvfsbackendsmb.c | 42 |
1 files changed, 8 insertions, 34 deletions
diff --git a/daemon/gvfsbackendsmb.c b/daemon/gvfsbackendsmb.c index 5b0c302d..349b8bfa 100644 --- a/daemon/gvfsbackendsmb.c +++ b/daemon/gvfsbackendsmb.c @@ -1295,35 +1295,9 @@ set_info_from_stat (GVfsBackendSmb *backend, if (content_type) { - char *mimetype_icon, *generic_mimetype_icon, *type_icon, *p; - char *icon_names[3]; - int i; - - mimetype_icon = g_strdup (content_type); - g_strdelimit (mimetype_icon, "/", '-'); - - p = strchr (content_type, '/'); - if (p == NULL) - p = content_type + strlen (content_type); - - generic_mimetype_icon = g_malloc (p - content_type + strlen ("-x-generic") + 1); - memcpy (generic_mimetype_icon, content_type, p - content_type); - memcpy (generic_mimetype_icon + (p - content_type), "-x-generic", strlen ("-x-generic")); - generic_mimetype_icon[(p - content_type) + strlen ("-x-generic")] = 0; - - type_icon = "text-x-generic"; - - i = 0; - icon_names[i++] = mimetype_icon; - icon_names[i++] = generic_mimetype_icon; - if (strcmp (generic_mimetype_icon, type_icon) != 0 && - strcmp (mimetype_icon, type_icon) != 0) - icon_names[i++] = type_icon; - - icon = g_themed_icon_new_from_names (icon_names, i); - - g_free (mimetype_icon); - g_free (generic_mimetype_icon); + icon = g_content_type_get_icon (content_type); + if (G_IS_THEMED_ICON (icon)) + g_themed_icon_append_name (G_THEMED_ICON (icon), "text-x-generic"); } } @@ -1332,12 +1306,12 @@ set_info_from_stat (GVfsBackendSmb *backend, g_file_info_set_content_type (info, content_type); g_free (content_type); } + + if (icon == NULL) + icon = g_themed_icon_new ("text-x-generic"); - if (icon) - { - g_file_info_set_icon (info, icon); - g_object_unref (icon); - } + g_file_info_set_icon (info, icon); + g_object_unref (icon); } /* Don't trust n_link, uid, gid, etc returned from libsmb, its just made up. |