[nautilus] Make templates and scripts menus show icons



commit 1a1fa464fd16f93d9a9fbb73b894f4f6c0a098f8
Author: William Jon McCann <jmccann redhat com>
Date:   Tue Aug 14 15:43:41 2012 -0400

    Make templates and scripts menus show icons
    
    https://bugzilla.gnome.org/show_bug.cgi?id=602909

 src/nautilus-view.c |   54 +++++++++++++++++++++++++++++++++-----------------
 1 files changed, 35 insertions(+), 19 deletions(-)
---
diff --git a/src/nautilus-view.c b/src/nautilus-view.c
index 3327765..ca17e74 100644
--- a/src/nautilus-view.c
+++ b/src/nautilus-view.c
@@ -4428,9 +4428,7 @@ add_submenu (GtkUIManager *ui_manager,
 						 NULL,
 						 NULL);
 			if (pixbuf != NULL) {
-				g_object_set_data_full (G_OBJECT (action), "menu-icon",
-							g_object_ref (pixbuf),
-							g_object_unref);
+				gtk_action_set_gicon (action, G_ICON (pixbuf));
 			}
 			
 			g_object_set (action, "hide-if-empty", FALSE, NULL);
@@ -4455,6 +4453,24 @@ add_submenu (GtkUIManager *ui_manager,
 }
 
 static void
+menu_item_show_image (GtkUIManager *ui_manager,
+		      const char   *parent_path,
+		      const char   *action_name)
+{
+	char *path;
+	GtkWidget *menuitem;
+
+	path = g_strdup_printf ("%s/%s", parent_path, action_name);
+	menuitem = gtk_ui_manager_get_widget (ui_manager,
+					      path);
+	if (menuitem != NULL) {
+		gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (menuitem),
+							   TRUE);
+	}
+	g_free (path);
+}
+
+static void
 add_application_to_open_with_menu (NautilusView *view,
 				   GAppInfo *application, 
 				   GList *files,
@@ -4468,10 +4484,9 @@ add_application_to_open_with_menu (NautilusView *view,
 	char *label;
 	char *action_name;
 	char *escaped_app;
-	char *path;
 	GtkAction *action;
 	GIcon *app_icon;
-	GtkWidget *menuitem;
+	GtkUIManager *ui_manager;
 
 	launch_parameters = application_launch_parameters_new 
 		(application, files, view);
@@ -4513,7 +4528,8 @@ add_application_to_open_with_menu (NautilusView *view,
 				     action);
 	g_object_unref (action);
 
-	gtk_ui_manager_add_ui (nautilus_window_get_ui_manager (view->details->window),
+	ui_manager = nautilus_window_get_ui_manager (view->details->window);
+	gtk_ui_manager_add_ui (ui_manager,
 			       view->details->open_with_merge_id,
 			       popup_placeholder,
 			       action_name,
@@ -4521,13 +4537,8 @@ add_application_to_open_with_menu (NautilusView *view,
 			       GTK_UI_MANAGER_MENUITEM,
 			       FALSE);
 
-	path = g_strdup_printf ("%s/%s", popup_placeholder, action_name);
-	menuitem = gtk_ui_manager_get_widget (
-					      nautilus_window_get_ui_manager (view->details->window),
-					      path);
-	gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (menuitem), TRUE);
+	menu_item_show_image (ui_manager, popup_placeholder, action_name);
 
-	g_free (path);
 	g_free (action_name);
 	g_free (label);
 	g_free (tip);
@@ -5242,9 +5253,8 @@ add_script_to_scripts_menus (NautilusView *directory_view,
 
 	pixbuf = get_menu_icon_for_file (file);
 	if (pixbuf != NULL) {
-		g_object_set_data_full (G_OBJECT (action), "menu-icon",
-					pixbuf,
-					g_object_unref);
+		gtk_action_set_gicon (action, G_ICON (pixbuf));
+		g_object_unref (pixbuf);
 	}
 
 	g_signal_connect_data (action, "activate",
@@ -5280,6 +5290,10 @@ add_script_to_scripts_menus (NautilusView *directory_view,
 			       GTK_UI_MANAGER_MENUITEM,
 			       FALSE);
 
+	menu_item_show_image (ui_manager, menu_path, action_name);
+	menu_item_show_image (ui_manager, popup_path, action_name);
+	menu_item_show_image (ui_manager, popup_bg_path, action_name);
+
 	g_free (name);
 	g_free (uri);
 	g_free (tip);
@@ -5493,9 +5507,8 @@ add_template_to_templates_menus (NautilusView *directory_view,
 	
 	pixbuf = get_menu_icon_for_file (file);
 	if (pixbuf != NULL) {
-		g_object_set_data_full (G_OBJECT (action), "menu-icon",
-					pixbuf,
-					g_object_unref);
+		gtk_action_set_gicon (action, G_ICON (pixbuf));
+		g_object_unref (pixbuf);
 	}
 
 	g_signal_connect_data (action, "activate",
@@ -5524,7 +5537,10 @@ add_template_to_templates_menus (NautilusView *directory_view,
 			       action_name,
 			       GTK_UI_MANAGER_MENUITEM,
 			       FALSE);
-	
+
+	menu_item_show_image (ui_manager, menu_path, action_name);
+	menu_item_show_image (ui_manager, popup_bg_path, action_name);
+
 	g_free (escaped_label);
 	g_free (name);
 	g_free (tip);



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