aboutsummaryrefslogtreecommitdiffstats
path: root/mail/component-factory.c
diff options
context:
space:
mode:
authorEttore Perazzoli <ettore@src.gnome.org>2002-09-05 00:05:35 +0800
committerEttore Perazzoli <ettore@src.gnome.org>2002-09-05 00:05:35 +0800
commitddaa0af2ceba5de217424eeddfa3f650049ddfa1 (patch)
treedde4bded2ee16494bb4862632df9e346269631af /mail/component-factory.c
parenta52720a9213d760bb8a9c21b354ab46de7b763dd (diff)
downloadgsoc2013-evolution-ddaa0af2ceba5de217424eeddfa3f650049ddfa1.tar.gz
gsoc2013-evolution-ddaa0af2ceba5de217424eeddfa3f650049ddfa1.tar.zst
gsoc2013-evolution-ddaa0af2ceba5de217424eeddfa3f650049ddfa1.zip
Pass NULL as @unpopulate_folder_context_menu_fn to
* gui/component/addressbook-component.c (create_component): Pass NULL as @unpopulate_folder_context_menu_fn to evolution_shell_component_new(). * gui/component-factory.c (create_object): Pass NULL as @unpopulate_folder_context_menu_fn to evolution_shell_component_new(). * mail-account-gui.c (mail_account_gui_save): Remove unused variable. * component-factory.c (unpopulate_folder_context_menu): New. (create_component): Pass it to evolution_shell_component_new(). * component-factory.c (create_component): Pass NULL as @unpopulate_folder_context_menu_fn to evolution_shell_component_new(). * e-storage-set-view.c (popup_folder_menu): Remove the context menu items using evolution_shell_component_client_unpopulate_folder_context_menu() instead of doing it ourself, since BonoboUI sucks. * evolution-shell-component-client.c (evolution_shell_component_client_unpopulate_folder_context_menu): New. * evolution-test-component.c (register_component): Pass NULL as @unpopulate_folder_context_menu_fn to evolution_shell_component_new(). * evolution-shell-component.c: New member unpopulate_folder_context_menu_fn in EvolutionShellComponentPrivate. New member uic in EvolutionShellComponentPrivate. (init): Init new members to NULL. (destroy): bonobo_object_unref() priv->uic if not NULL. (evolution_shell_component_new): New arg @unpopulate_folder_context_menu_fn. (evolution_shell_component_construct): Likewise. (impl_populateFolderContextMenu): Set priv->uic to the newly created UIComponent. (impl_unpopulateFolderContextMenu): New, implementation for the ::unpopulateFolderContextMenu CORBA method. (class_init): Install. * Evolution-ShellComponent.idl (unpopulateFolderContextMenu): New method. (AlreadyPopulated): New exception. (populateFolderContextMenu): Can raise it. (NotPopulated): New exception. svn path=/trunk/; revision=17963
Diffstat (limited to 'mail/component-factory.c')
-rw-r--r--mail/component-factory.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/mail/component-factory.c b/mail/component-factory.c
index 3102db603b..50202fbce1 100644
--- a/mail/component-factory.c
+++ b/mail/component-factory.c
@@ -422,6 +422,28 @@ populate_folder_context_menu (EvolutionShellComponent *shell_component,
bonobo_ui_component_set_translate (uic, EVOLUTION_SHELL_COMPONENT_POPUP_PLACEHOLDER, popup_xml, NULL);
}
+static void
+unpopulate_folder_context_menu (EvolutionShellComponent *shell_component,
+ BonoboUIComponent *uic,
+ const char *physical_uri,
+ const char *type,
+ void *closure)
+{
+ if (strcmp (type, "mail") != 0)
+ return;
+
+ /* 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_rm (uic,
+ EVOLUTION_SHELL_COMPONENT_POPUP_PLACEHOLDER "/ChangeFolderPropertiesPopUp",
+ NULL);
+}
+
static char *
get_dnd_selection (EvolutionShellComponent *shell_component,
const char *physical_uri,
@@ -976,6 +998,7 @@ create_component (void)
remove_folder,
xfer_folder,
populate_folder_context_menu,
+ unpopulate_folder_context_menu,
get_dnd_selection,
request_quit,
NULL);