I also fixed the spelling of an xml key name. (also note: ::response doesn't take a guint, it takes int - hence that change in case it wasn't obvious) Jeff -- Jeffrey Stedfast Evolution Hacker - Novell, Inc. fejj ximian com - www.novell.com
Index: ChangeLog =================================================================== RCS file: /cvs/gnome/evolution/mail/ChangeLog,v retrieving revision 1.3446 diff -u -r1.3446 ChangeLog --- ChangeLog 30 Aug 2004 18:55:34 -0000 1.3446 +++ ChangeLog 30 Aug 2004 19:18:51 -0000 @@ -1,3 +1,11 @@ +2004-08-30 Jeffrey Stedfast <fejj novell com> + + * em-folder-tree.c (emft_popup_delete_folder): Set the store and + full_name info on the dialog. + (emft_popup_delete_response): Use the requisite data stored on the + dialog object rather than examining the selection again. Fixes bug + #62665. + 2004-08-27 Not Zed <NotZed Ximian com> ** See bug #63456. Index: em-folder-tree.c =================================================================== RCS file: /cvs/gnome/evolution/mail/em-folder-tree.c,v retrieving revision 1.125 diff -u -r1.125 em-folder-tree.c --- em-folder-tree.c 26 Aug 2004 15:05:48 -0000 1.125 +++ em-folder-tree.c 30 Aug 2004 19:18:52 -0000 @@ -2523,36 +2523,26 @@ } static void -emft_popup_delete_response (GtkWidget *dialog, guint response, EMFolderTree *emft) +emft_popup_delete_response (GtkWidget *dialog, int response, EMFolderTree *emft) { - struct _EMFolderTreePrivate *priv = emft->priv; - GtkTreeSelection *selection; - GtkTreeModel *model; CamelStore *store; CamelException ex; - GtkTreeIter iter; char *full_name; - gtk_widget_destroy (dialog); - if (response != GTK_RESPONSE_OK) - return; + full_name = g_object_get_data ((GObject *) dialog, "full_name"); + store = g_object_get_data ((GObject *) dialog, "store"); - selection = gtk_tree_view_get_selection (priv->treeview); - if (!emft_selection_get_selected (selection, &model, &iter)) - return; - - gtk_tree_model_get (model, &iter, COL_STRING_FULL_NAME, &full_name, - COL_POINTER_CAMEL_STORE, &store, -1); - - camel_exception_init (&ex); - emft_popup_delete_folders (store, full_name, &ex); - if (camel_exception_is_set (&ex)) { - e_error_run((GtkWindow *)gtk_widget_get_toplevel((GtkWidget *)emft), - "mail:no-delete-folder", full_name, ex.desc, NULL); - camel_exception_clear (&ex); + if (response == GTK_RESPONSE_OK) { + camel_exception_init (&ex); + emft_popup_delete_folders (store, full_name, &ex); + if (camel_exception_is_set (&ex)) { + e_error_run((GtkWindow *)gtk_widget_get_toplevel((GtkWidget *)emft), + "mail:no-delete-folder", full_name, ex.desc, NULL); + camel_exception_clear (&ex); + } } - g_free (full_name); + gtk_widget_destroy (dialog); } static void @@ -2576,15 +2566,18 @@ local = mail_component_peek_local_store (NULL); if (store == local && is_special_local_folder (full_name)) { - e_error_run(NULL, "mail:no-delete-spethal-folder", full_name, NULL); + e_error_run(NULL, "mail:no-delete-special-folder", full_name, NULL); return; } - + + camel_object_ref (store); + dialog = e_error_new((GtkWindow *)gtk_widget_get_toplevel((GtkWidget *)emft), "mail:ask-delete-folder", full_name, NULL); + g_object_set_data_full ((GObject *) dialog, "full_name", full_name, g_free); + g_object_set_data_full ((GObject *) dialog, "store", store, camel_object_unref); g_signal_connect (dialog, "response", G_CALLBACK (emft_popup_delete_response), emft); gtk_widget_show (dialog); - g_free (full_name); } static void @@ -2614,7 +2607,7 @@ /* don't allow user to rename one of the special local folders */ if (store == local && is_special_local_folder (full_name)) { e_error_run((GtkWindow *)gtk_widget_get_toplevel((GtkWidget *)emft), - "mail:no-rename-spethal-folder", full_name, NULL); + "mail:no-rename-special-folder", full_name, NULL); g_free (full_name); g_free (name); g_free (uri); Index: mail-errors.xml =================================================================== RCS file: /cvs/gnome/evolution/mail/mail-errors.xml,v retrieving revision 1.5 diff -u -r1.5 mail-errors.xml --- mail-errors.xml 21 Aug 2004 06:55:07 -0000 1.5 +++ mail-errors.xml 30 Aug 2004 19:18:52 -0000 @@ -164,12 +164,12 @@ <secondary>Because "{1}".</secondary> </error> - <error id="no-delete-spethal-folder" type="error"> + <error id="no-delete-special-folder" type="error"> <primary>Cannot delete system folder "{0}".</primary> <secondary>System folders are required for Ximian Evolution to function correctly and cannot be renamed, moved, or deleted.</secondary> </error> - <error id="no-rename-spethal-folder" type="error"> + <error id="no-rename-special-folder" type="error"> <primary>Cannot rename or move system folder "{0}".</primary> <secondary>System folders are required for Ximian Evolution to function correctly and cannot be renamed, moved, or deleted.</secondary> </error>
Attachment:
smime.p7s
Description: S/MIME cryptographic signature