[nautilus] view: use "Run" in menus for launching executables



commit fd746872e217b46faa8c4f12d1e524bd6fdacb68
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Mon Nov 5 18:39:59 2012 -0500

    view: use "Run" in menus for launching executables
    
    When the expected action is running an executable file, we should use
    the term "Run" instead of "Open" in our menus.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=687631

 src/nautilus-mime-actions.c |   10 ++++++++++
 src/nautilus-mime-actions.h |    1 +
 src/nautilus-view.c         |   21 +++++++++++++--------
 3 files changed, 24 insertions(+), 8 deletions(-)
---
diff --git a/src/nautilus-mime-actions.c b/src/nautilus-mime-actions.c
index ad4c950..137dc76 100644
--- a/src/nautilus-mime-actions.c
+++ b/src/nautilus-mime-actions.c
@@ -811,6 +811,16 @@ get_activation_action (NautilusFile *file)
 }
 
 gboolean
+nautilus_mime_file_launches (NautilusFile *file)
+{
+	ActivationAction activation_action;
+
+	activation_action = get_activation_action (file);
+
+	return (activation_action == ACTIVATION_ACTION_LAUNCH);
+}
+
+gboolean
 nautilus_mime_file_opens_in_external_app (NautilusFile *file)
 {
   ActivationAction activation_action;
diff --git a/src/nautilus-mime-actions.h b/src/nautilus-mime-actions.h
index dc65d82..8f9b73a 100644
--- a/src/nautilus-mime-actions.h
+++ b/src/nautilus-mime-actions.h
@@ -41,6 +41,7 @@ GList *                nautilus_mime_get_applications_for_files           (GList
 
 gboolean               nautilus_mime_file_opens_in_view                   (NautilusFile            *file);
 gboolean               nautilus_mime_file_opens_in_external_app           (NautilusFile            *file);
+gboolean               nautilus_mime_file_launches                        (NautilusFile            *file);
 void                   nautilus_mime_activate_files                       (GtkWindow               *parent_window,
 									   NautilusWindowSlot      *slot,
 									   GList                   *files,
diff --git a/src/nautilus-view.c b/src/nautilus-view.c
index 8f874fd..e52ca87 100644
--- a/src/nautilus-view.c
+++ b/src/nautilus-view.c
@@ -8392,7 +8392,7 @@ real_update_menus (NautilusView *view)
 	gboolean show_open_alternate;
 	gboolean show_open_in_new_tab;
 	gboolean can_open;
-	gboolean show_app;
+	gboolean show_app, show_run;
 	gboolean show_save_search;
 	gboolean save_search_sensitive;
 	gboolean show_save_search_as;
@@ -8468,7 +8468,7 @@ real_update_menus (NautilusView *view)
 					      NAUTILUS_ACTION_OPEN);
 	gtk_action_set_sensitive (action, selection_count != 0);
 	
-	can_open = show_app = selection_count != 0;
+	can_open = show_app = show_run = selection_count != 0;
 
 	for (l = selection; l != NULL; l = l->next) {
 		NautilusFile *file;
@@ -8479,7 +8479,11 @@ real_update_menus (NautilusView *view)
 			show_app = FALSE;
 		}
 
-		if (!show_app) {
+		if (!nautilus_mime_file_launches (file)) {
+			show_run = FALSE;
+		}
+
+		if (!show_app && !show_run) {
 			break;
 		}
 	} 
@@ -8507,11 +8511,14 @@ real_update_menus (NautilusView *view)
 
 		g_free (escaped_app);
 		g_object_unref (app);
+	} else if (show_run) {
+		label_with_underscore = g_strdup (_("Run"));
+	} else {
+		label_with_underscore = g_strdup (_("_Open"));
 	}
 
-	g_object_set (action, "label", 
-		      label_with_underscore ? label_with_underscore : _("_Open"),
-		      NULL);
+	g_object_set (action, "label", label_with_underscore, NULL);
+	g_free (label_with_underscore);
 
 	menuitem = gtk_ui_manager_get_widget (
 					      nautilus_view_get_ui_manager (view),
@@ -8529,8 +8536,6 @@ real_update_menus (NautilusView *view)
 	g_object_unref (app_icon);
 
 	gtk_action_set_visible (action, can_open);
-	
-	g_free (label_with_underscore);
 
 	show_open_alternate = file_list_all_are_folders (selection) &&
 		selection_count > 0 &&



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