diff --git a/ChangeLog b/ChangeLog index 66eef84b71..d18fb771d7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,22 @@ +2003-09-16 David Hampton + + * lib/egg/egg-menu-merge.[ch]: Back port the GTK2.4 UI description + language. + + * src/business/business-gnome/ui/gnc-plugin-business-ui.xml: + * src/gnome/ui/gnc-main-window-ui.xml: + * src/gnome/ui/gnc-plugin-account-tree-ui.xml: + * src/gnome/ui/gnc-plugin-page-account-tree-ui.xml: + * src/gnome/ui/gnc-plugin-page-register-ui.xml: + * src/gnome/ui/gnc-plugin-register-ui.xml: + * src/import-export/qif-import/gnc-plugin-qif-import-ui.xml: + Switch to the new UI description language. + + * src/gnome/gnc-main-window.c: + * src/gnome/gnc-plugin-page-account-tree.c: + * src/gnome/gnc-plugin-page-register.c: Check the error return + value after calling the menu-merge routines. + 2003-09-13 David Hampton * src/gnome/gnc-main-window.c: Collapse common functions into one. diff --git a/lib/egg/egg-menu-merge.c b/lib/egg/egg-menu-merge.c index a599965052..fb62ea6d4e 100644 --- a/lib/egg/egg-menu-merge.c +++ b/lib/egg/egg-menu-merge.c @@ -114,12 +114,9 @@ egg_menu_merge_init (EggMenuMerge *self) merge_id = egg_menu_merge_next_merge_id(self); - node = get_child_node(self, NULL, "Root", 4, + node = get_child_node(self, NULL, "ui", 4, EGG_MENU_MERGE_ROOT, TRUE, FALSE); egg_menu_merge_node_prepend_ui_reference(NODE_INFO(node), merge_id, 0); - node = get_child_node(self, self->root_node, "popups", 6, - EGG_MENU_MERGE_POPUPS, TRUE, FALSE); - egg_menu_merge_node_prepend_ui_reference(NODE_INFO(node), merge_id, 0); } EggMenuMerge * @@ -337,7 +334,6 @@ typedef enum { STATE_ROOT, STATE_MENU, STATE_TOOLBAR, - STATE_POPUPS, STATE_MENUITEM, STATE_TOOLITEM, STATE_END @@ -369,18 +365,15 @@ start_element_handler (GMarkupParseContext *context, gint i; const gchar *node_name; - GQuark verb_quark; + const gchar *action; + GQuark action_quark; gboolean top; gboolean raise_error = TRUE; - gchar *error_attr = NULL; - //g_message("starting element %s", element_name); - - /* work out a name for this node. Either the name attribute, or - * element name */ - node_name = element_name; - verb_quark = 0; + node_name = NULL; + action = NULL; + action_quark = 0; top = FALSE; for (i = 0; attribute_names[i] != NULL; i++) { @@ -388,34 +381,56 @@ start_element_handler (GMarkupParseContext *context, { node_name = attribute_values[i]; } - else if (!strcmp(attribute_names[i], "verb")) + else if (!strcmp(attribute_names[i], "action")) { - verb_quark = g_quark_from_string(attribute_values[i]); + action = attribute_values[i]; + action_quark = g_quark_from_string(attribute_values[i]); } - else if (!strcmp(attribute_names[i], "pos")) + else if (!strcmp(attribute_names[i], "position")) { top = !strcmp(attribute_values[i], "top"); } + else + { + gint line_number, char_number; + + g_markup_parse_context_get_position (context, + &line_number, &char_number); + g_set_error (error, + G_MARKUP_ERROR, + G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, + _("Unknown attribute '%s' on line %d char %d"), + attribute_names[i], + line_number, char_number); + return; + } + } + + /* Work out a name for this node. Either the name attribute, or + * the action, or the element name */ + if (node_name == NULL) + { + if (action != NULL) + node_name = action; + else + node_name = element_name; } - /* if no verb, then set it to the node's name */ - if (verb_quark == 0) - verb_quark = g_quark_from_string(node_name); switch (element_name[0]) { - case 'R': - if (ctx->state == STATE_START && !strcmp(element_name, "Root")) + case 'u': + if (ctx->state == STATE_START && !strcmp(element_name, "ui")) { ctx->state = STATE_ROOT; ctx->current = self->root_node; raise_error = FALSE; egg_menu_merge_node_prepend_ui_reference (NODE_INFO (ctx->current), - ctx->merge_id, verb_quark); + ctx->merge_id, action_quark); } break; case 'm': - if (ctx->state == STATE_ROOT && !strcmp(element_name, "menu")) + if (ctx->state == STATE_ROOT && !strcmp(element_name, "menubar")) { ctx->state = STATE_MENU; ctx->current = get_child_node(self, ctx->current, @@ -423,10 +438,25 @@ start_element_handler (GMarkupParseContext *context, EGG_MENU_MERGE_MENUBAR, TRUE, FALSE); if (NODE_INFO(ctx->current)->action_name == 0) - NODE_INFO(ctx->current)->action_name = verb_quark; + NODE_INFO(ctx->current)->action_name = action_quark; egg_menu_merge_node_prepend_ui_reference (NODE_INFO (ctx->current), - ctx->merge_id, verb_quark); + ctx->merge_id, action_quark); + NODE_INFO(ctx->current)->dirty = TRUE; + + raise_error = FALSE; + } + else if (ctx->state == STATE_MENU && !strcmp(element_name, "menu")) + { + ctx->current = get_child_node(self, ctx->current, + node_name, strlen(node_name), + EGG_MENU_MERGE_MENU, + TRUE, top); + if (NODE_INFO(ctx->current)->action_name == 0) + NODE_INFO(ctx->current)->action_name = action_quark; + + egg_menu_merge_node_prepend_ui_reference (NODE_INFO (ctx->current), + ctx->merge_id, action_quark); NODE_INFO(ctx->current)->dirty = TRUE; raise_error = FALSE; @@ -441,60 +471,28 @@ start_element_handler (GMarkupParseContext *context, EGG_MENU_MERGE_MENUITEM, TRUE, top); if (NODE_INFO(node)->action_name == 0) - NODE_INFO(node)->action_name = verb_quark; + NODE_INFO(node)->action_name = action_quark; egg_menu_merge_node_prepend_ui_reference (NODE_INFO (node), - ctx->merge_id, verb_quark); + ctx->merge_id, action_quark); NODE_INFO(node)->dirty = TRUE; - raise_error = FALSE; - } - break; - case 'd': - if (ctx->state == STATE_ROOT && !strcmp(element_name, "dockitem")) - { - ctx->state = STATE_TOOLBAR; - ctx->current = get_child_node(self, ctx->current, - node_name, strlen(node_name), - EGG_MENU_MERGE_TOOLBAR, - TRUE, FALSE); - if (NODE_INFO(ctx->current)->action_name == 0) - NODE_INFO(ctx->current)->action_name = verb_quark; - - egg_menu_merge_node_prepend_ui_reference (NODE_INFO (ctx->current), - ctx->merge_id, verb_quark); - NODE_INFO(ctx->current)->dirty = TRUE; - raise_error = FALSE; } break; case 'p': - if (ctx->state == STATE_ROOT && !strcmp(element_name, "popups")) - { - ctx->state = STATE_POPUPS; - ctx->current = get_child_node(self, ctx->current, - node_name, strlen(node_name), - EGG_MENU_MERGE_POPUPS, - TRUE, FALSE); - - egg_menu_merge_node_prepend_ui_reference (NODE_INFO (ctx->current), - ctx->merge_id, verb_quark); - NODE_INFO(ctx->current)->dirty = TRUE; - - raise_error = FALSE; - } - else if (ctx->state == STATE_POPUPS && !strcmp(element_name, "popup")) + if (ctx->state == STATE_ROOT && !strcmp(element_name, "popup")) { ctx->state = STATE_MENU; ctx->current = get_child_node(self, ctx->current, node_name, strlen(node_name), - EGG_MENU_MERGE_MENU, + EGG_MENU_MERGE_POPUP, TRUE, FALSE); if (NODE_INFO(ctx->current)->action_name == 0) - NODE_INFO(ctx->current)->action_name = verb_quark; + NODE_INFO(ctx->current)->action_name = action_quark; egg_menu_merge_node_prepend_ui_reference (NODE_INFO (ctx->current), - ctx->merge_id, verb_quark); + ctx->merge_id, action_quark); NODE_INFO(ctx->current)->dirty = TRUE; raise_error = FALSE; @@ -502,66 +500,66 @@ start_element_handler (GMarkupParseContext *context, else if ((ctx->state == STATE_MENU || ctx->state == STATE_TOOLBAR) && !strcmp(element_name, "placeholder")) { - if (ctx->state == STATE_MENU) - ctx->current = get_child_node(self, ctx->current, - node_name, strlen(node_name), - EGG_MENU_MERGE_MENU_PLACEHOLDER, - TRUE, top); - else + if (ctx->state == STATE_TOOLBAR) ctx->current = get_child_node(self, ctx->current, node_name, strlen(node_name), EGG_MENU_MERGE_TOOLBAR_PLACEHOLDER, TRUE, top); + else + ctx->current = get_child_node(self, ctx->current, + node_name, strlen(node_name), + EGG_MENU_MERGE_MENU_PLACEHOLDER, + TRUE, top); egg_menu_merge_node_prepend_ui_reference (NODE_INFO (ctx->current), - ctx->merge_id, verb_quark); + ctx->merge_id, action_quark); NODE_INFO(ctx->current)->dirty = TRUE; raise_error = FALSE; } break; case 's': - if (ctx->state == STATE_MENU && !strcmp(element_name, "submenu")) - { - ctx->state = STATE_MENU; - ctx->current = get_child_node(self, ctx->current, - node_name, strlen(node_name), - EGG_MENU_MERGE_MENU, - TRUE, top); - if (NODE_INFO(ctx->current)->action_name == 0) - NODE_INFO(ctx->current)->action_name = verb_quark; - - egg_menu_merge_node_prepend_ui_reference (NODE_INFO (ctx->current), - ctx->merge_id, verb_quark); - NODE_INFO(ctx->current)->dirty = TRUE; - - raise_error = FALSE; - } - else if ((ctx->state == STATE_MENU || ctx->state == STATE_TOOLBAR) && + if ((ctx->state == STATE_MENU || ctx->state == STATE_TOOLBAR) && !strcmp(element_name, "separator")) { GNode *node; - if (ctx->state == STATE_MENU) - ctx->state = STATE_MENUITEM; - else + if (ctx->state == STATE_TOOLBAR) ctx->state = STATE_TOOLITEM; + else + ctx->state = STATE_MENUITEM; node = get_child_node(self, ctx->current, node_name, strlen(node_name), EGG_MENU_MERGE_SEPARATOR, TRUE, top); if (NODE_INFO(node)->action_name == 0) - NODE_INFO(node)->action_name = verb_quark; + NODE_INFO(node)->action_name = action_quark; egg_menu_merge_node_prepend_ui_reference (NODE_INFO (node), - ctx->merge_id, verb_quark); + ctx->merge_id, action_quark); NODE_INFO(node)->dirty = TRUE; raise_error = FALSE; } break; case 't': - if (ctx->state == STATE_TOOLBAR && !strcmp(element_name, "toolitem")) + if (ctx->state == STATE_ROOT && !strcmp(element_name, "toolbar")) + { + ctx->state = STATE_TOOLBAR; + ctx->current = get_child_node(self, ctx->current, + node_name, strlen(node_name), + EGG_MENU_MERGE_TOOLBAR, + TRUE, FALSE); + if (NODE_INFO(ctx->current)->action_name == 0) + NODE_INFO(ctx->current)->action_name = action_quark; + + egg_menu_merge_node_prepend_ui_reference (NODE_INFO (ctx->current), + ctx->merge_id, action_quark); + NODE_INFO(ctx->current)->dirty = TRUE; + + raise_error = FALSE; + } + else if (ctx->state == STATE_TOOLBAR && !strcmp(element_name, "toolitem")) { GNode *node; @@ -571,10 +569,10 @@ start_element_handler (GMarkupParseContext *context, EGG_MENU_MERGE_TOOLITEM, TRUE, top); if (NODE_INFO(node)->action_name == 0) - NODE_INFO(node)->action_name = verb_quark; + NODE_INFO(node)->action_name = action_quark; egg_menu_merge_node_prepend_ui_reference (NODE_INFO (node), - ctx->merge_id, verb_quark); + ctx->merge_id, action_quark); NODE_INFO(node)->dirty = TRUE; raise_error = FALSE; @@ -589,20 +587,12 @@ start_element_handler (GMarkupParseContext *context, g_markup_parse_context_get_position (context, &line_number, &char_number); - if (error_attr) - g_set_error (error, - G_MARKUP_ERROR, - G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, - _("Unknown attribute '%s' on line %d char %d"), - error_attr, - line_number, char_number); - else - g_set_error (error, - G_MARKUP_ERROR, - G_MARKUP_ERROR_UNKNOWN_ELEMENT, - _("Unknown tag '%s' on line %d char %d"), - element_name, - line_number, char_number); + g_set_error (error, + G_MARKUP_ERROR, + G_MARKUP_ERROR_UNKNOWN_ELEMENT, + _("Unknown tag '%s' on line %d char %d"), + element_name, + line_number, char_number); } } @@ -633,8 +623,6 @@ end_element_handler (GMarkupParseContext *context, ctx->current = ctx->current->parent; if (NODE_INFO(ctx->current)->type == EGG_MENU_MERGE_ROOT) /* menubar */ ctx->state = STATE_ROOT; - else if (NODE_INFO(ctx->current)->type == EGG_MENU_MERGE_POPUPS) /* popup */ - ctx->state = STATE_POPUPS; /* else, stay in STATE_MENU state */ break; case STATE_TOOLBAR: @@ -645,10 +633,6 @@ end_element_handler (GMarkupParseContext *context, ctx->state = STATE_ROOT; /* else, stay in STATE_TOOLBAR state */ break; - case STATE_POPUPS: - ctx->current = ctx->current->parent; - ctx->state = STATE_ROOT; - break; case STATE_MENUITEM: ctx->state = STATE_MENU; break; @@ -794,6 +778,7 @@ find_menu_position (GNode *node, GtkWidget **menushell_p, gint *pos_p) g_return_val_if_fail(node != NULL, FALSE); g_return_val_if_fail(NODE_INFO(node)->type == EGG_MENU_MERGE_MENU || + NODE_INFO(node)->type == EGG_MENU_MERGE_POPUP || NODE_INFO(node)->type == EGG_MENU_MERGE_MENU_PLACEHOLDER || NODE_INFO(node)->type == EGG_MENU_MERGE_MENUITEM || NODE_INFO(node)->type == EGG_MENU_MERGE_SEPARATOR, @@ -808,6 +793,7 @@ find_menu_position (GNode *node, GtkWidget **menushell_p, gint *pos_p) switch (NODE_INFO(parent)->type) { case EGG_MENU_MERGE_MENUBAR: + case EGG_MENU_MERGE_POPUP: menushell = NODE_INFO(parent)->proxy; pos = 0; break; @@ -823,10 +809,6 @@ find_menu_position (GNode *node, GtkWidget **menushell_p, gint *pos_p) pos = g_list_index(GTK_MENU_SHELL(menushell)->children, NODE_INFO(parent)->proxy) + 1; break; - case EGG_MENU_MERGE_POPUPS: - menushell = NULL; - pos = 0; - break; default: g_warning("%s: bad parent node type %d", G_STRLOC, NODE_INFO(parent)->type); @@ -1005,6 +987,14 @@ update_node (EggMenuMerge *self, GNode *node) g_signal_emit (self, merge_signals[ADD_WIDGET], 0, info->proxy); } break; + case EGG_MENU_MERGE_POPUP: + if (info->proxy == NULL) + { + info->proxy = gtk_menu_new (); + gtk_menu_set_accel_group (GTK_MENU (info->proxy), + self->accel_group); + } + break; case EGG_MENU_MERGE_MENU: { GtkWidget *prev_submenu = NULL; @@ -1133,8 +1123,6 @@ update_node (EggMenuMerge *self, GNode *node) } } break; - case EGG_MENU_MERGE_POPUPS: - break; case EGG_MENU_MERGE_MENUITEM: /* remove the proxy if it is of the wrong type ... */ if (info->proxy && G_OBJECT_TYPE(info->proxy) != diff --git a/lib/egg/egg-menu-merge.h b/lib/egg/egg-menu-merge.h index f4c4407068..70875ecb7d 100644 --- a/lib/egg/egg-menu-merge.h +++ b/lib/egg/egg-menu-merge.h @@ -26,7 +26,7 @@ typedef enum { EGG_MENU_MERGE_TOOLBAR, EGG_MENU_MERGE_MENU_PLACEHOLDER, EGG_MENU_MERGE_TOOLBAR_PLACEHOLDER, - EGG_MENU_MERGE_POPUPS, + EGG_MENU_MERGE_POPUP, EGG_MENU_MERGE_MENUITEM, EGG_MENU_MERGE_TOOLITEM, EGG_MENU_MERGE_SEPARATOR, diff --git a/src/business/business-gnome/ui/gnc-plugin-business-ui.xml b/src/business/business-gnome/ui/gnc-plugin-business-ui.xml index 5fab48d66b..f20a2dd1a4 100644 --- a/src/business/business-gnome/ui/gnc-plugin-business-ui.xml +++ b/src/business/business-gnome/ui/gnc-plugin-business-ui.xml @@ -1,41 +1,39 @@ - - + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + diff --git a/src/gnome/gnc-main-window.c b/src/gnome/gnc-main-window.c index 48939394b7..03a2c18eb9 100644 --- a/src/gnome/gnc-main-window.c +++ b/src/gnome/gnc-main-window.c @@ -389,6 +389,7 @@ gnc_main_window_merge_actions (GncMainWindow *window, GncMainWindowActionData *data; guint i; MergedActionEntry *entry; + GError *error = NULL; g_return_if_fail (GNC_IS_MAIN_WINDOW (window)); g_return_if_fail (group_name != NULL); @@ -408,10 +409,17 @@ gnc_main_window_merge_actions (GncMainWindow *window, entry->action_group = egg_action_group_new (group_name); egg_action_group_add_actions (entry->action_group, actions, n_actions); egg_menu_merge_insert_action_group (window->ui_merge, entry->action_group, 0); - entry->merge_id = egg_menu_merge_add_ui_from_file (window->ui_merge, ui_file, NULL); - egg_menu_merge_ensure_update (window->ui_merge); - - g_hash_table_insert (window->priv->merged_actions_table, g_strdup (group_name), entry); + entry->merge_id = egg_menu_merge_add_ui_from_file (window->ui_merge, ui_file, &error); + g_assert(entry->merge_id || error); + if (entry->merge_id) { + egg_menu_merge_ensure_update (window->ui_merge); + g_hash_table_insert (window->priv->merged_actions_table, g_strdup (group_name), entry); + } else { + g_critical("Failed to load ui file.\n Filename %s\n Error %s", + ui_file, error->message); + g_error_free(error); + g_free(entry); + } } void @@ -524,9 +532,10 @@ static void gnc_main_window_setup_window (GncMainWindow *window) { GtkWidget *main_vbox; - guint i; + guint i, merge_id; GncPluginManager *manager; GList *plugins; + GError *error = NULL; /* Create widgets and add them to the window */ main_vbox = gtk_vbox_new (FALSE, 0); @@ -566,9 +575,19 @@ gnc_main_window_setup_window (GncMainWindow *window) g_signal_connect (G_OBJECT (window->ui_merge), "add_widget", G_CALLBACK (gnc_main_window_add_widget), window); - egg_menu_merge_add_ui_from_file (window->ui_merge, GNC_UI_DIR "/gnc-main-window-ui.xml", NULL); - gtk_window_add_accel_group (GTK_WINDOW (window), window->ui_merge->accel_group); - egg_menu_merge_ensure_update (window->ui_merge); + merge_id = egg_menu_merge_add_ui_from_file (window->ui_merge, + GNC_UI_DIR "/gnc-main-window-ui.xml", + &error); + g_assert(merge_id || error); + if (merge_id) { + gtk_window_add_accel_group (GTK_WINDOW (window), window->ui_merge->accel_group); + egg_menu_merge_ensure_update (window->ui_merge); + } else { + g_critical("Failed to load ui file.\n Filename %s\n Error %s", + GNC_UI_DIR "/gnc-main-window-ui.xml", error->message); + g_error_free(error); + g_assert(merge_id != 0); + } /* GncPluginManager stuff */ manager = gnc_plugin_manager_get (); diff --git a/src/gnome/gnc-plugin-page-account-tree.c b/src/gnome/gnc-plugin-page-account-tree.c index 33f79db2ae..7ccaf7f6f0 100644 --- a/src/gnome/gnc-plugin-page-account-tree.c +++ b/src/gnome/gnc-plugin-page-account-tree.c @@ -504,6 +504,7 @@ gnc_plugin_page_account_tree_merge_actions (GncPluginPage *plugin_page, EggMenuMerge *ui_merge) { GncPluginPageAccountTree *plugin_page_account_tree = GNC_PLUGIN_PAGE_ACCOUNT_TREE(plugin_page); + GError *error = NULL; ENTER("page %p, ui_merge %p", plugin_page, ui_merge); g_return_if_fail (GNC_IS_PLUGIN_PAGE_ACCOUNT_TREE (plugin_page_account_tree)); @@ -514,12 +515,18 @@ gnc_plugin_page_account_tree_merge_actions (GncPluginPage *plugin_page, plugin_page_account_tree->priv->merge_id = egg_menu_merge_add_ui_from_file (ui_merge, GNC_UI_DIR "/gnc-plugin-page-account-tree-ui.xml", - NULL); + &error); DEBUG("merge_id is %d", plugin_page_account_tree->priv->merge_id); - egg_menu_merge_ensure_update (ui_merge); - - plugin_page_account_tree->priv->ui_merge = ui_merge; + g_assert(plugin_page_account_tree->priv->merge_id || error); + if (plugin_page_account_tree->priv->merge_id) { + egg_menu_merge_ensure_update (ui_merge); + plugin_page_account_tree->priv->ui_merge = ui_merge; + } else { + g_critical("Failed to load ui file.\n Filename %s\n Error %s", + "gnc-plugin-page-account-tree-ui.xml", error->message); + g_error_free(error); + } LEAVE(" "); } @@ -581,24 +588,14 @@ gnc_plugin_page_account_tree_button_press_cb (GtkWidget *widget, GdkEventButton *event, GncPluginPageAccountTree *page) { - const gchar *popup; - gchar *path; - GtkWidget *menuitem, *menu; + GtkWidget *menu; if (event->button == 3 && page->priv->ui_merge != NULL) { /* Maybe show a different popup menu if no account is selected. */ - popup = "AccountPopup"; - - path = g_strconcat ("/popups/", popup, NULL); - menuitem = egg_menu_merge_get_widget (page->priv->ui_merge, path); - g_free (path); - - g_return_val_if_fail (menuitem != NULL, FALSE); - menu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(menuitem)); - g_return_val_if_fail (menu != NULL, FALSE); - - gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, event->button, event->time); - + menu = egg_menu_merge_get_widget (page->priv->ui_merge, "/AccountPopup"); + if (menu) + gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, + event->button, event->time); return TRUE; } diff --git a/src/gnome/gnc-plugin-page-register.c b/src/gnome/gnc-plugin-page-register.c index 59f3d18989..d7840e6c64 100644 --- a/src/gnome/gnc-plugin-page-register.c +++ b/src/gnome/gnc-plugin-page-register.c @@ -332,17 +332,26 @@ gnc_plugin_page_register_merge_actions (GncPluginPage *plugin_page, EggMenuMerge *ui_merge) { GncPluginPageRegister *plugin_page_register = GNC_PLUGIN_PAGE_REGISTER(plugin_page); + GError *error = NULL; g_return_if_fail (GNC_IS_PLUGIN_PAGE_REGISTER (plugin_page_register)); egg_menu_merge_insert_action_group (ui_merge, plugin_page_register->priv->action_group, 0); - plugin_page_register->priv->merge_id = egg_menu_merge_add_ui_from_file (ui_merge, - GNC_UI_DIR "/gnc-plugin-page-register-ui.xml", - NULL); - egg_menu_merge_ensure_update (ui_merge); + plugin_page_register->priv->merge_id = + egg_menu_merge_add_ui_from_file (ui_merge, + GNC_UI_DIR "/gnc-plugin-page-register-ui.xml", + &error); - plugin_page_register->priv->ui_merge = ui_merge; + g_assert(plugin_page_register->priv->merge_id || error); + if (plugin_page_register->priv->merge_id) { + egg_menu_merge_ensure_update (ui_merge); + plugin_page_register->priv->ui_merge = ui_merge; + } else { + g_critical("Failed to load ui file.\n Filename %s\n Error %s", + "gnc-plugin-page-register-ui.xml", error->message); + g_error_free(error); + } } static void diff --git a/src/gnome/ui/gnc-main-window-ui.xml b/src/gnome/ui/gnc-main-window-ui.xml index a309d98cbd..4580376f10 100644 --- a/src/gnome/ui/gnc-main-window-ui.xml +++ b/src/gnome/ui/gnc-main-window-ui.xml @@ -1,82 +1,83 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + diff --git a/src/gnome/ui/gnc-plugin-account-tree-ui.xml b/src/gnome/ui/gnc-plugin-account-tree-ui.xml index f0e55a6a0d..724b127180 100644 --- a/src/gnome/ui/gnc-plugin-account-tree-ui.xml +++ b/src/gnome/ui/gnc-plugin-account-tree-ui.xml @@ -1,9 +1,9 @@ - - - - - - - - - + + + + + + + + + diff --git a/src/gnome/ui/gnc-plugin-page-account-tree-ui.xml b/src/gnome/ui/gnc-plugin-page-account-tree-ui.xml index a0ce36cacc..1925602569 100644 --- a/src/gnome/ui/gnc-plugin-page-account-tree-ui.xml +++ b/src/gnome/ui/gnc-plugin-page-account-tree-ui.xml @@ -1,71 +1,71 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/gnome/ui/gnc-plugin-page-register-ui.xml b/src/gnome/ui/gnc-plugin-page-register-ui.xml index a8f57ddf5e..721fbb28e5 100644 --- a/src/gnome/ui/gnc-plugin-page-register-ui.xml +++ b/src/gnome/ui/gnc-plugin-page-register-ui.xml @@ -1,44 +1,23 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/gnome/ui/gnc-plugin-register-ui.xml b/src/gnome/ui/gnc-plugin-register-ui.xml index 0e337f100e..d91c6ee471 100644 --- a/src/gnome/ui/gnc-plugin-register-ui.xml +++ b/src/gnome/ui/gnc-plugin-register-ui.xml @@ -1,9 +1,9 @@ - - - - - - - - - + + + + + + + + + diff --git a/src/import-export/qif-import/gnc-plugin-qif-import-ui.xml b/src/import-export/qif-import/gnc-plugin-qif-import-ui.xml index 90794ffd28..eff8649bb9 100644 --- a/src/import-export/qif-import/gnc-plugin-qif-import-ui.xml +++ b/src/import-export/qif-import/gnc-plugin-qif-import-ui.xml @@ -1,11 +1,11 @@ - - - - - - - - - - - + + + + + + + + + + +