Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:dliang
nautilus
nautilus-desktop-file-fallback-icons.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File nautilus-desktop-file-fallback-icons.diff of Package nautilus
2005-10-06 Federico Mena Quintero <federico@ximian.com> * libnautilus-private/nautilus-link-desktop-file.c (nautilus_link_desktop_file_get_link_icon_from_desktop): If the .desktop file doesn't have an Icon property, fall back to some reasonable icons depending on the type of the .desktop file. Index: nautilus-link-desktop-file.c ================================================================================ --- nautilus-2.12.1/libnautilus-private/nautilus-link-desktop-file.c +++ nautilus-2.12.1/libnautilus-private/nautilus-link-desktop-file.c @@ -285,6 +285,7 @@ { char *icon_uri; const char *icon; + GnomeDesktopItemType desktop_type; icon_uri = g_strdup (gnome_desktop_item_get_string (desktop_file, "X-Nautilus-Icon")); if (icon_uri != NULL) { @@ -292,7 +293,34 @@ } icon = gnome_desktop_item_get_string (desktop_file, GNOME_DESKTOP_ITEM_ICON); - return g_strdup (icon); + if (icon != NULL) { + return g_strdup (icon); + } + + desktop_type = gnome_desktop_item_get_entry_type (desktop_file); + switch (desktop_type) { + case GNOME_DESKTOP_ITEM_TYPE_APPLICATION: + return g_strdup ("gnome-fs-executable"); + + case GNOME_DESKTOP_ITEM_TYPE_LINK: + return g_strdup ("gnome-dev-symlink"); + + case GNOME_DESKTOP_ITEM_TYPE_FSDEVICE: + return g_strdup ("gnome-dev-harddisk"); + + case GNOME_DESKTOP_ITEM_TYPE_DIRECTORY: + return g_strdup ("gnome-fs-directory"); + + case GNOME_DESKTOP_ITEM_TYPE_SERVICE: + case GNOME_DESKTOP_ITEM_TYPE_SERVICE_TYPE: + return g_strdup ("gnome-fs-web"); + + default: + return g_strdup ("gnome-fs-regular"); + } + + g_assert_not_reached (); + return NULL; } char *
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor