aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-shell-view-menu.c
diff options
context:
space:
mode:
authorEttore Perazzoli <ettore@src.gnome.org>2001-09-26 05:27:00 +0800
committerEttore Perazzoli <ettore@src.gnome.org>2001-09-26 05:27:00 +0800
commit769e117e901dce718915b863209fc58c218ca3c6 (patch)
tree442c2ab0c214c4e93f52a5c1da932eafc044cb82 /shell/e-shell-view-menu.c
parent650c4690b2040f83c032b67a271b996f876fdc50 (diff)
downloadgsoc2013-evolution-769e117e901dce718915b863209fc58c218ca3c6.tar.gz
gsoc2013-evolution-769e117e901dce718915b863209fc58c218ca3c6.tar.zst
gsoc2013-evolution-769e117e901dce718915b863209fc58c218ca3c6.zip
New helper function. (command_move_folder): Pass the @folder_path argument
* e-shell-view-menu.c (get_path_for_folder_op): New helper function. (command_move_folder): Pass the @folder_path argument to `e_shell_command_move_folder' by using it. (command_copy_folder): Pass the @folder_path argument to `e_shell_command_copy_folder' by using it. (command_delete_folder): Pass the @folder_path argument to `e_shell_command_delete_folder()' by using it. (command_add_folder_to_shortcut_bar): Pass the @folder_path argument to `e_shell_command_add_to_shortcut_bar()' by using it. (command_create_folder): Pass the @parent_folder_path argument to `e_shell_command_create_new_folder()' by using it. (command_new_folder): Use `get_path_for_folder_op()'. * e-shell-folder-commands.c (e_shell_command_add_to_shortcut_bar): New arg @folder_path. (e_shell_command_copy_folder): New arg @folder_path. (e_shell_command_move_folder): New arg @folder_path. (e_shell_command_open_folder_in_other_window): New arg @folder_path. (e_shell_command_create_new_folder): New arg @parent_folder_path. (e_shell_command_delete_folder): New arg @folder_path. * e-shell-view.c (e_shell_view_get_folder_bar_right_click_path): New. * e-storage-set-view.c: New member `right_click_row_path'. (init): Init to NULL. (destroy): Free. (right_click): Set. (popup_folder_menu): Use `gnome_popup_menu_do_popup_modal()' so we are stuck in here until the menu disappears. After that, destroy the menu and call `e_tree_right_click_up()'. (e_storage_set_view_get_right_click_path): New. svn path=/trunk/; revision=13124
Diffstat (limited to 'shell/e-shell-view-menu.c')
-rw-r--r--shell/e-shell-view-menu.c49
1 files changed, 31 insertions, 18 deletions
diff --git a/shell/e-shell-view-menu.c b/shell/e-shell-view-menu.c
index 5f3520993f..3049bc93e1 100644
--- a/shell/e-shell-view-menu.c
+++ b/shell/e-shell-view-menu.c
@@ -93,6 +93,21 @@ const char *authors[] = {
};
+/* Utility functions. */
+
+static const char *
+get_path_for_folder_op (EShellView *shell_view)
+{
+ const char *path;
+
+ path = e_shell_view_get_folder_bar_right_click_path (shell_view);
+ if (path != NULL)
+ return path;
+
+ return e_shell_view_get_current_path (shell_view);
+}
+
+
/* EShellView callbacks. */
static void
@@ -285,20 +300,12 @@ command_new_folder (BonoboUIComponent *uih,
{
EShellView *shell_view;
EShell *shell;
- const char *current_uri;
- const char *default_parent_folder;
shell_view = E_SHELL_VIEW (data);
shell = e_shell_view_get_shell (shell_view);
- current_uri = e_shell_view_get_current_uri (shell_view);
-
- if (current_uri && strncmp (current_uri, E_SHELL_URI_PREFIX, E_SHELL_URI_PREFIX_LEN) == 0)
- default_parent_folder = current_uri + E_SHELL_URI_PREFIX_LEN;
- else
- default_parent_folder = NULL;
-
+
e_shell_show_folder_creation_dialog (shell, GTK_WINDOW (shell_view),
- default_parent_folder,
+ get_path_for_folder_op (shell_view),
NULL /* result_callback */,
NULL /* result_callback_data */);
}
@@ -310,13 +317,15 @@ command_open_folder_in_new_window (BonoboUIComponent *uih,
{
EShellView *shell_view, *new_view;
EShell *shell;
- const char *current_uri;
+ char *uri;
shell_view = E_SHELL_VIEW (data);
shell = e_shell_view_get_shell (shell_view);
- current_uri = e_shell_view_get_current_uri (shell_view);
- new_view = e_shell_create_view (shell, current_uri);
+ uri = g_strconcat (E_SHELL_URI_PREFIX, get_path_for_folder_op (shell_view), NULL);
+ new_view = e_shell_create_view (shell, uri);
+ g_free (uri);
+
gtk_widget_show (GTK_WIDGET (new_view));
}
@@ -331,7 +340,8 @@ command_move_folder (BonoboUIComponent *uih,
EShellView *shell_view;
shell_view = E_SHELL_VIEW (data);
- e_shell_command_move_folder (e_shell_view_get_shell (shell_view), shell_view);
+ e_shell_command_move_folder (e_shell_view_get_shell (shell_view), shell_view,
+ get_path_for_folder_op (shell_view));
}
static void
@@ -342,7 +352,8 @@ command_copy_folder (BonoboUIComponent *uih,
EShellView *shell_view;
shell_view = E_SHELL_VIEW (data);
- e_shell_command_copy_folder (e_shell_view_get_shell (shell_view), shell_view);
+ e_shell_command_copy_folder (e_shell_view_get_shell (shell_view), shell_view,
+ get_path_for_folder_op (shell_view));
}
static void
@@ -353,7 +364,8 @@ command_delete_folder (BonoboUIComponent *uih,
EShellView *shell_view;
shell_view = E_SHELL_VIEW (data);
- e_shell_command_delete_folder (e_shell_view_get_shell (shell_view), shell_view);
+ e_shell_command_delete_folder (e_shell_view_get_shell (shell_view), shell_view,
+ get_path_for_folder_op (shell_view));
}
static void
@@ -375,7 +387,8 @@ command_add_folder_to_shortcut_bar (BonoboUIComponent *uih,
EShellView *shell_view;
shell_view = E_SHELL_VIEW (data);
- e_shell_command_add_to_shortcut_bar (e_shell_view_get_shell (shell_view), shell_view);
+ e_shell_command_add_to_shortcut_bar (e_shell_view_get_shell (shell_view), shell_view,
+ get_path_for_folder_op (shell_view));
}
@@ -447,7 +460,7 @@ command_create_folder (BonoboUIComponent *uih,
shell_view = E_SHELL_VIEW (data);
shell = e_shell_view_get_shell (shell_view);
- e_shell_command_create_new_folder (shell, shell_view);
+ e_shell_command_create_new_folder (shell, shell_view, get_path_for_folder_op (shell_view));
}
static void