diff options
-rw-r--r-- | mail/ChangeLog | 9 | ||||
-rw-r--r-- | mail/component-factory.c | 30 |
2 files changed, 31 insertions, 8 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index 02144c733f..2547011c7a 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,12 @@ +2002-01-30 Not Zed <NotZed@Ximian.com> + + * component-factory.c (create_component): re-enable popup menu. + (populate_folder_context_menu): If we're on a vfolder, and its not + UNMATCHED, create a change properties item, and set it up + approriately. + (change_prop_popup): Callback to edit the vfolder rule. For + #3358. + 2002-01-29 Dave West <kat@unleashed.org> * mail-callbacks.c (create_msg_composer): Changed the function diff --git a/mail/component-factory.c b/mail/component-factory.c index cfd4478875..b754887c5e 100644 --- a/mail/component-factory.c +++ b/mail/component-factory.c @@ -420,7 +420,14 @@ xfer_folder (EvolutionShellComponent *shell_component, camel_url_free(dst); } -#if 0 +static void +configure_folder_popup(BonoboUIComponent *component, void *user_data, const char *cname) +{ + char *uri = user_data; + + vfolder_edit_rule(uri); +} + static void populate_folder_context_menu (EvolutionShellComponent *shell_component, BonoboUIComponent *uic, @@ -432,16 +439,23 @@ populate_folder_context_menu (EvolutionShellComponent *shell_component, static char popup_xml_i18n[] = {N_("Properties..."), N_("Change this folder's properties")}; #endif static char popup_xml[] = - "<menuitem name=\"ChangeFolderProperties\" verb=\"ChangeFolderProperties\"" + "<menuitem name=\"ChangeFolderPropertiesPopUp\" verb=\"ChangeFolderPropertiesPopUp\"" " _label=\"Properties...\" _tip=\"Change this folder's properties\"/>"; - + if (strcmp (type, "mail") != 0) return; - - bonobo_ui_component_set_translate (uic, EVOLUTION_SHELL_COMPONENT_POPUP_PLACEHOLDER, - popup_xml, NULL); + + /* FIXME: handle other types */ + + /* the unmatched test is a bit of a hack but it works */ + if (strncmp(physical_uri, "vfolder:", 8) != 0 + || strstr(physical_uri, "#" CAMEL_UNMATCHED_NAME) != NULL) + return; + + bonobo_ui_component_add_verb_full(uic, "ChangeFolderPropertiesPopUp", configure_folder_popup, g_strdup(physical_uri), g_free); + + bonobo_ui_component_set_translate (uic, EVOLUTION_SHELL_COMPONENT_POPUP_PLACEHOLDER, popup_xml, NULL); } -#endif static char * get_dnd_selection (EvolutionShellComponent *shell_component, @@ -938,7 +952,7 @@ create_component (void) create_folder, remove_folder, xfer_folder, - /*populate_folder_context_menu*/NULL, + populate_folder_context_menu, get_dnd_selection, NULL); |