nautilus r14826 - in trunk: . src



Author: alexl
Date: Fri Dec 19 11:35:20 2008
New Revision: 14826
URL: http://svn.gnome.org/viewvc/nautilus?rev=14826&view=rev

Log:
2008-12-19  Alexander Larsson  <alexl redhat com>

        * src/nautilus-property-browser.c:
	Allow deleting of custom emblems. (#112292)
	Patch from DESSAI Imrane 



Modified:
   trunk/ChangeLog
   trunk/src/nautilus-property-browser.c

Modified: trunk/src/nautilus-property-browser.c
==============================================================================
--- trunk/src/nautilus-property-browser.c	(original)
+++ trunk/src/nautilus-property-browser.c	Fri Dec 19 11:35:20 2008
@@ -942,21 +942,8 @@
 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 @@
 	} else {
 		emit_emblems_changed_signal ();
 	}
-	g_free (emblem_path);
 }
 
 /* handle removing the passed in element */
@@ -1724,6 +1710,7 @@
 
 		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 @@
 			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 @@
 			}
 		}
 		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,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]