add a component name argument, so we don't use 'this_component', and

2004-04-13  Not Zed  <NotZed@Ximian.com>

        * e-user-creatable-items-handler.c (create_verb): add a component
        name argument, so we don't use 'this_component', and everything
        comes from tasks!  Fix callers to pass the component alias.
        (struct _EUserCreatableItemsHandlerPrivate): change
        default_menu_item to be fallback_menu_item for the mail message
        new fallback.  Make default_menu_item be the default for the view
        (which some code seems to think it should be).  Fixes #56866.
        (ensure_menu_items): setup the fallback_menu_item here.
        (get_default_action_for_view): use the fallback as the fallback,
        not default.
        (setup_toolbar_button): set the default menu item here for the
        current view.

svn path=/trunk/; revision=25429
This commit is contained in:
Not Zed
2004-04-13 10:37:19 +00:00
committed by Michael Zucci
parent f8574c815f
commit cf89e7ea3f
2 changed files with 27 additions and 15 deletions

View File

@ -1,3 +1,18 @@
2004-04-13 Not Zed <NotZed@Ximian.com>
* e-user-creatable-items-handler.c (create_verb): add a component
name argument, so we don't use 'this_component', and everything
comes from tasks! Fix callers to pass the component alias.
(struct _EUserCreatableItemsHandlerPrivate): change
default_menu_item to be fallback_menu_item for the mail message
new fallback. Make default_menu_item be the default for the view
(which some code seems to think it should be). Fixes #56866.
(ensure_menu_items): setup the fallback_menu_item here.
(get_default_action_for_view): use the fallback as the fallback,
not default.
(setup_toolbar_button): set the default menu item here for the
current view.
2004-04-09 Jeffrey Stedfast <fejj@ximian.com>
* e-shell.c (e_shell_attempt_upgrade): Don't activate the

View File

@ -90,6 +90,7 @@ struct _EUserCreatableItemsHandlerPrivate {
component in the view we are in doesn't provide a default user
creatable type. This pointer always points to one of the menu items
in ->objects. */
const MenuItem *fallback_menu_item;
const MenuItem *default_menu_item;
char *menu_xml;
@ -216,15 +217,11 @@ item_is_default (const MenuItem *item,
}
static char *
create_verb (EUserCreatableItemsHandler *handler,
int component_num, const char *type_id)
create_verb (EUserCreatableItemsHandler *handler, int component_num, const char *comp, const char *type_id)
{
return g_strdup_printf ("EUserCreatableItemsHandler-%s:%d:%s",
handler->priv->this_component,
component_num, type_id);
return g_strdup_printf ("EUserCreatableItemsHandler-%s:%d:%s", comp, component_num, type_id);
}
/* Setting up menu items for the "File -> New" submenu and the "New" toolbar
button. */
@ -259,7 +256,7 @@ ensure_menu_items (EUserCreatableItemsHandler *handler)
item = g_new (MenuItem, 1);
item->label = corba_item->menuDescription;
item->shortcut = corba_item->menuShortcut;
item->verb = create_verb (handler, component_num, corba_item->id);
item->verb = create_verb (handler, component_num, component->alias, corba_item->id);
item->tooltip = corba_item->tooltip;
item->component = g_strdup (component->alias);
@ -288,14 +285,14 @@ ensure_menu_items (EUserCreatableItemsHandler *handler)
priv->objects = g_slist_reverse (objects);
priv->folders = g_slist_reverse (folders);
priv->default_menu_item = NULL;
priv->fallback_menu_item = NULL;
if (default_verb != NULL) {
for (p = priv->objects; p != NULL; p = p->next) {
const MenuItem *item;
item = (const MenuItem *) p->data;
if (strcmp (item->verb, default_verb) == 0)
priv->default_menu_item = item;
priv->fallback_menu_item = item;
}
}
}
@ -340,7 +337,7 @@ get_default_action_for_view (EUserCreatableItemsHandler *handler)
return item;
}
return priv->default_menu_item;
return priv->fallback_menu_item;
}
@ -427,6 +424,7 @@ add_verbs (EUserCreatableItemsHandler *handler,
verb_name = create_verb (handler,
component_num,
component->alias,
component->type_list->_buffer[i].id);
bonobo_ui_component_add_verb (ui_component, verb_name, verb_fn, handler);
@ -671,7 +669,6 @@ static void
setup_toolbar_button (EUserCreatableItemsHandler *handler)
{
EUserCreatableItemsHandlerPrivate *priv;
const MenuItem *default_menu_item;
priv = handler->priv;
@ -691,8 +688,8 @@ setup_toolbar_button (EUserCreatableItemsHandler *handler)
priv->new_control = bonobo_control_new (priv->new_button);
default_menu_item = get_default_action_for_view (handler);
if (!default_menu_item) {
priv->default_menu_item = get_default_action_for_view (handler);
if (!priv->default_menu_item) {
gtk_widget_set_sensitive (priv->new_button, FALSE);
return;
}
@ -700,13 +697,13 @@ setup_toolbar_button (EUserCreatableItemsHandler *handler)
gtk_widget_set_sensitive (priv->new_button, TRUE);
e_combo_button_set_icon (E_COMBO_BUTTON (priv->new_button),
default_menu_item->icon);
priv->default_menu_item->icon);
priv->tooltips = gtk_tooltips_new ();
gtk_object_ref (GTK_OBJECT (priv->tooltips));
gtk_object_sink (GTK_OBJECT (priv->tooltips));
gtk_tooltips_set_tip (priv->tooltips, priv->new_button,
default_menu_item->tooltip, NULL);
priv->default_menu_item->tooltip, NULL);
}