[evolution-patches] 3rd time: please review patch for bug 43846 and 19965.



Resend again. Hope someone have time to take a look.

The bugs are:
shortcut not deleted when target folder deleted
(http://bugzilla.ximian.com/show_bug.cgi?id=43846)
Delete VFolder leaves dangling shortcut
(http://bugzilla.ximian.com/show_bug.cgi?id=19965)

Thanks.
Calvin

Index: shell/e-shell-folder-commands.c
===================================================================
RCS file: /cvs/gnome/evolution/shell/e-shell-folder-commands.c,v
retrieving revision 1.58.4.1
diff -u -r1.58.4.1 e-shell-folder-commands.c
--- shell/e-shell-folder-commands.c 9 Jul 2003 19:44:53 -0000 1.58.4.1
+++ shell/e-shell-folder-commands.c 20 Oct 2003 10:05:56 -0000
@@ -424,6 +424,35 @@
}

void
+remove_shortcuts_from_shortcut_bar (EShell *shell,
+ const char *folder_path)
+{
+ EShortcuts *shortcuts;
+ EShortcutItem *item;
+ const GSList *group;
+ int group_num;
+ int loopGroup;
+ int shortcut_num;
+ int loopShortcut;
+
+ char *uri_of_shortcut;
+
+ uri_of_shortcut = g_strconcat (E_SHELL_URI_PREFIX, folder_path, NULL);
+ shortcuts = e_shell_get_shortcuts (shell);
+ group_num = e_shortcuts_get_num_groups(shortcuts);
+ for ( loopGroup = 0; loopGroup < group_num; loopGroup ++ ){
+ group = e_shortcuts_get_shortcuts_in_group ( shortcuts, loopGroup);
+ shortcut_num = g_slist_length (group);
+ for ( loopShortcut = shortcut_num - 1; loopShortcut >= 0; loopShortcut
-- ){
+ item = e_shortcuts_get_shortcut (shortcuts, loopGroup, loopShortcut);
+ if ( 0 == g_strcasecmp ( item->uri, uri_of_shortcut ) ){
+ e_shortcuts_remove_shortcut ( shortcuts, loopGroup, loopShortcut);
+ }
+ }
+ }
+}
+
+void
e_shell_command_delete_folder (EShell *shell,
EShellView *shell_view,
const char *folder_path)
@@ -441,8 +470,10 @@
if (folder_path == NULL)
folder_path = e_shell_view_get_current_path (shell_view);

- if (delete_dialog (shell_view, get_folder_name (shell, folder_path))
== GTK_RESPONSE_OK)
+ if (delete_dialog (shell_view, get_folder_name (shell, folder_path))
== GTK_RESPONSE_OK){
+ remove_shortcuts_from_shortcut_bar (shell, folder_path);
e_storage_set_async_remove_folder (storage_set, folder_path, delete_cb,
shell_view);
+ }
}





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