[gthumb/ext: 54/79] Implemented the "open in file manager" command



commit cb4b90c40bdc8e97e3555f0bdfbf1df3b7319dce
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Sat Jul 18 16:38:35 2009 +0200

    Implemented the "open in file manager" command

 extensions/file_manager/actions.c      |   26 ++++++++++++++++++++++++++
 extensions/file_manager/actions.h      |    1 +
 extensions/file_manager/callbacks.c    |    7 +++++++
 gthumb/gth-browser-actions-callbacks.c |   22 ----------------------
 gthumb/gth-browser-actions-entries.h   |    5 -----
 gthumb/gth-browser-ui.h                |    2 +-
 6 files changed, 35 insertions(+), 28 deletions(-)
---
diff --git a/extensions/file_manager/actions.c b/extensions/file_manager/actions.c
index cad0793..2cfd948 100644
--- a/extensions/file_manager/actions.c
+++ b/extensions/file_manager/actions.c
@@ -496,6 +496,32 @@ gth_browser_activate_action_edit_delete (GtkAction  *action,
 
 
 void
+gth_browser_activate_action_folder_open_in_file_manager (GtkAction  *action,
+						         GthBrowser *browser)
+{
+	GthFileData *file_data;
+	char        *uri;
+	GError      *error = NULL;
+
+	file_data = gth_folder_tree_get_selected (GTH_FOLDER_TREE (gth_browser_get_folder_tree (browser)));
+	if (file_data == NULL)
+		return;
+
+	uri = g_file_get_uri (file_data->file);
+	if (! gtk_show_uri (gtk_window_get_screen (GTK_WINDOW (browser)),
+			    uri,
+                            gtk_get_current_event_time (),
+                            &error))
+	{
+		_gtk_error_dialog_from_gerror_run (GTK_WINDOW (browser), _("Could not open location"), &error);
+	}
+
+	g_free (uri);
+	g_object_unref (file_data);
+}
+
+
+void
 gth_browser_activate_action_folder_create (GtkAction  *action,
 					   GthBrowser *browser)
 {
diff --git a/extensions/file_manager/actions.h b/extensions/file_manager/actions.h
index ec2befa..efff79e 100644
--- a/extensions/file_manager/actions.h
+++ b/extensions/file_manager/actions.h
@@ -36,6 +36,7 @@ DEFINE_ACTION(gth_browser_activate_action_edit_duplicate)
 DEFINE_ACTION(gth_browser_activate_action_edit_rename)
 DEFINE_ACTION(gth_browser_activate_action_edit_trash)
 DEFINE_ACTION(gth_browser_activate_action_edit_delete)
+DEFINE_ACTION(gth_browser_activate_action_folder_open_in_file_manager)
 DEFINE_ACTION(gth_browser_activate_action_folder_create)
 DEFINE_ACTION(gth_browser_activate_action_folder_rename)
 DEFINE_ACTION(gth_browser_activate_action_folder_cut)
diff --git a/extensions/file_manager/callbacks.c b/extensions/file_manager/callbacks.c
index 8a6de8e..5e7a0bb 100644
--- a/extensions/file_manager/callbacks.c
+++ b/extensions/file_manager/callbacks.c
@@ -100,6 +100,9 @@ static const char *browser_vfs_ui_info =
 static const char *folder_popup_ui_info =
 "<ui>"
 "  <popup name='FolderListPopup'>"
+"    <placeholder name='OpenCommands'>"
+"      <menuitem action='Folder_OpenInFileManager'/>"
+"    </placeholder>"
 "    <placeholder name='SourceCommands'>"
 "      <menuitem action='Folder_Create'/>"
 "      <separator />"
@@ -149,6 +152,10 @@ static GtkActionEntry action_entries[] = {
 	  N_("_Delete"), "<shift>Delete",
 	  N_("Delete the selected files"),
 	  G_CALLBACK (gth_browser_activate_action_edit_delete) },
+	{ "Folder_OpenInFileManager", NULL,
+	  N_("Open with the _File Manager"), "",
+	  NULL,
+	  G_CALLBACK (gth_browser_activate_action_folder_open_in_file_manager) },
 	{ "Folder_Create", NULL,
 	  N_("Create _Folder"), NULL,
 	  N_("Create a new empty folder inside this folder"),
diff --git a/gthumb/gth-browser-actions-callbacks.c b/gthumb/gth-browser-actions-callbacks.c
index dfbe6f6..bdf52c3 100644
--- a/gthumb/gth-browser-actions-callbacks.c
+++ b/gthumb/gth-browser-actions-callbacks.c
@@ -327,28 +327,6 @@ gth_browser_activate_action_folder_open_in_new_window (GtkAction  *action,
 
 
 void
-gth_browser_activate_action_folder_open_in_file_manager (GtkAction  *action,
-						         GthBrowser *browser)
-{
-	GFile  *location;
-	char   *uri;
-	GError *error = NULL;
-
-	location = gth_browser_get_location (browser);
-	uri = g_file_get_uri (location);
-	if (! gtk_show_uri (gtk_window_get_screen (GTK_WINDOW (browser)),
-			    uri,
-                            gtk_get_current_event_time (),
-                            &error))
-	{
-		_gtk_error_dialog_from_gerror_run (GTK_WINDOW (browser), _("Could not open location"), &error);
-	}
-
-	g_free (uri);
-}
-
-
-void
 gth_browser_activate_action_browser_mode (GtkAction  *action,
 					  GthBrowser *browser)
 {
diff --git a/gthumb/gth-browser-actions-entries.h b/gthumb/gth-browser-actions-entries.h
index 4238176..eabd204 100644
--- a/gthumb/gth-browser-actions-entries.h
+++ b/gthumb/gth-browser-actions-entries.h
@@ -71,11 +71,6 @@ static GtkActionEntry gth_browser_action_entries[] = {
 	  NULL,
 	  G_CALLBACK (gth_browser_activate_action_folder_open_in_new_window) },
 
-	{ "Folder_OpenInFileManager", NULL,
-	  N_("Open with the _File Manager"), "",
-	  NULL,
-	  G_CALLBACK (gth_browser_activate_action_folder_open_in_file_manager) },
-
 	{ "Edit_Preferences", GTK_STOCK_PREFERENCES,
 	  NULL, NULL,
 	  N_("Edit various preferences"),
diff --git a/gthumb/gth-browser-ui.h b/gthumb/gth-browser-ui.h
index 3dcea91..a5b14ce 100644
--- a/gthumb/gth-browser-ui.h
+++ b/gthumb/gth-browser-ui.h
@@ -180,7 +180,7 @@ static const char *fixed_ui_info =
 "  <popup name='FolderListPopup'>"
 "    <menuitem action='Folder_Open'/>"
 "    <menuitem action='Folder_OpenInNewWindow'/>"
-"    <menuitem action='Folder_OpenInFileManager'/>"
+"    <placeholder name='OpenCommands'/>"
 "    <separator/>"
 "    <placeholder name='SourceCommands'/>"
 "  </popup>"



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