summaryrefslogtreecommitdiff
path: root/src/nautilus-property-browser.c
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2008-12-19 11:35:20 +0000
committerAlexander Larsson <alexl@src.gnome.org>2008-12-19 11:35:20 +0000
commit915fd601dc700233fbc28b7c5ca8c5f48986b96e (patch)
tree73bdf9e11fea1425b2ff312972a9a36d8fbeed77 /src/nautilus-property-browser.c
parent9b38945b5da0185f295e873cf9b171a40d8448d6 (diff)
downloadnautilus-915fd601dc700233fbc28b7c5ca8c5f48986b96e.tar.gz
Allow deleting of custom emblems. (#112292) Patch from DESSAI Imrane
2008-12-19 Alexander Larsson <alexl@redhat.com> * src/nautilus-property-browser.c: Allow deleting of custom emblems. (#112292) Patch from DESSAI Imrane svn path=/trunk/; revision=14826
Diffstat (limited to 'src/nautilus-property-browser.c')
-rw-r--r--src/nautilus-property-browser.c25
1 files changed, 9 insertions, 16 deletions
diff --git a/src/nautilus-property-browser.c b/src/nautilus-property-browser.c
index 3beed0466..fe9772df1 100644
--- a/src/nautilus-property-browser.c
+++ b/src/nautilus-property-browser.c
@@ -942,21 +942,8 @@ remove_pattern(NautilusPropertyBrowser *property_browser, const char* pattern_na
static void
remove_emblem (NautilusPropertyBrowser *property_browser, const char* emblem_name)
{
- /* build the pathname of the emblem */
- char *emblem_path;
- char *user_directory;
-
- user_directory = nautilus_get_user_directory ();
-
- emblem_path = g_build_filename (user_directory,
- "emblems",
- emblem_name,
- NULL);
-
- g_free (user_directory);
-
/* delete the emblem from the emblem directory */
- if (g_unlink (emblem_path) != 0) {
+ if (nautilus_emblem_remove_emblem (emblem_name) == FALSE) {
char *message = g_strdup_printf (_("Sorry, but emblem %s could not be deleted."), emblem_name);
char *detail = _("Check that you have permission to delete the emblem.");
eel_show_error_dialog (message, detail, GTK_WINDOW (property_browser));
@@ -964,7 +951,6 @@ remove_emblem (NautilusPropertyBrowser *property_browser, const char* emblem_nam
} else {
emit_emblems_changed_signal ();
}
- g_free (emblem_path);
}
/* handle removing the passed in element */
@@ -1724,6 +1710,7 @@ make_properties_from_directories (NautilusPropertyBrowser *property_browser)
icons = nautilus_emblem_list_available ();
+ property_browser->details->has_local = FALSE;
l = icons;
while (l != NULL) {
icon_name = (char *)l->data;
@@ -1732,7 +1719,14 @@ make_properties_from_directories (NautilusPropertyBrowser *property_browser)
if (!nautilus_emblem_should_show_in_list (icon_name)) {
continue;
}
+
object_name = nautilus_emblem_get_keyword_from_icon_name (icon_name);
+ if (nautilus_emblem_can_remove_emblem (object_name)) {
+ property_browser->details->has_local = TRUE;
+ } else if (property_browser->details->remove_mode) {
+ g_free (object_name);
+ continue;
+ }
info = nautilus_icon_info_lookup_from_name (icon_name, NAUTILUS_ICON_SIZE_STANDARD);
object_pixbuf = nautilus_icon_info_get_pixbuf_at_size (info, NAUTILUS_ICON_SIZE_STANDARD);
object_label = g_strdup (nautilus_icon_info_get_display_name (info));
@@ -1759,7 +1753,6 @@ make_properties_from_directories (NautilusPropertyBrowser *property_browser)
}
}
eel_g_list_free_deep (icons);
- property_browser->details->has_local = FALSE;
} else {
customization_data = nautilus_customization_data_new (property_browser->details->category,
!property_browser->details->remove_mode,