mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Switch to the GTK2.4 UI description language.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/branches/gnucash-gnome2-dev@9346 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
19
ChangeLog
19
ChangeLog
@@ -1,3 +1,22 @@
|
|||||||
|
2003-09-16 David Hampton <hampton@employees.org>
|
||||||
|
|
||||||
|
* 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 <hampton@employees.org>
|
2003-09-13 David Hampton <hampton@employees.org>
|
||||||
|
|
||||||
* src/gnome/gnc-main-window.c: Collapse common functions into one.
|
* src/gnome/gnc-main-window.c: Collapse common functions into one.
|
||||||
|
|||||||
@@ -114,12 +114,9 @@ egg_menu_merge_init (EggMenuMerge *self)
|
|||||||
|
|
||||||
|
|
||||||
merge_id = egg_menu_merge_next_merge_id(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_ROOT, TRUE, FALSE);
|
||||||
egg_menu_merge_node_prepend_ui_reference(NODE_INFO(node), merge_id, 0);
|
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 *
|
EggMenuMerge *
|
||||||
@@ -337,7 +334,6 @@ typedef enum {
|
|||||||
STATE_ROOT,
|
STATE_ROOT,
|
||||||
STATE_MENU,
|
STATE_MENU,
|
||||||
STATE_TOOLBAR,
|
STATE_TOOLBAR,
|
||||||
STATE_POPUPS,
|
|
||||||
STATE_MENUITEM,
|
STATE_MENUITEM,
|
||||||
STATE_TOOLITEM,
|
STATE_TOOLITEM,
|
||||||
STATE_END
|
STATE_END
|
||||||
@@ -369,18 +365,15 @@ start_element_handler (GMarkupParseContext *context,
|
|||||||
|
|
||||||
gint i;
|
gint i;
|
||||||
const gchar *node_name;
|
const gchar *node_name;
|
||||||
GQuark verb_quark;
|
const gchar *action;
|
||||||
|
GQuark action_quark;
|
||||||
gboolean top;
|
gboolean top;
|
||||||
|
|
||||||
gboolean raise_error = TRUE;
|
gboolean raise_error = TRUE;
|
||||||
gchar *error_attr = NULL;
|
|
||||||
|
|
||||||
//g_message("starting element %s", element_name);
|
node_name = NULL;
|
||||||
|
action = NULL;
|
||||||
/* work out a name for this node. Either the name attribute, or
|
action_quark = 0;
|
||||||
* element name */
|
|
||||||
node_name = element_name;
|
|
||||||
verb_quark = 0;
|
|
||||||
top = FALSE;
|
top = FALSE;
|
||||||
for (i = 0; attribute_names[i] != NULL; i++)
|
for (i = 0; attribute_names[i] != NULL; i++)
|
||||||
{
|
{
|
||||||
@@ -388,34 +381,56 @@ start_element_handler (GMarkupParseContext *context,
|
|||||||
{
|
{
|
||||||
node_name = attribute_values[i];
|
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");
|
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])
|
switch (element_name[0])
|
||||||
{
|
{
|
||||||
case 'R':
|
case 'u':
|
||||||
if (ctx->state == STATE_START && !strcmp(element_name, "Root"))
|
if (ctx->state == STATE_START && !strcmp(element_name, "ui"))
|
||||||
{
|
{
|
||||||
ctx->state = STATE_ROOT;
|
ctx->state = STATE_ROOT;
|
||||||
ctx->current = self->root_node;
|
ctx->current = self->root_node;
|
||||||
raise_error = FALSE;
|
raise_error = FALSE;
|
||||||
|
|
||||||
egg_menu_merge_node_prepend_ui_reference (NODE_INFO (ctx->current),
|
egg_menu_merge_node_prepend_ui_reference (NODE_INFO (ctx->current),
|
||||||
ctx->merge_id, verb_quark);
|
ctx->merge_id, action_quark);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'm':
|
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->state = STATE_MENU;
|
||||||
ctx->current = get_child_node(self, ctx->current,
|
ctx->current = get_child_node(self, ctx->current,
|
||||||
@@ -423,10 +438,25 @@ start_element_handler (GMarkupParseContext *context,
|
|||||||
EGG_MENU_MERGE_MENUBAR,
|
EGG_MENU_MERGE_MENUBAR,
|
||||||
TRUE, FALSE);
|
TRUE, FALSE);
|
||||||
if (NODE_INFO(ctx->current)->action_name == 0)
|
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),
|
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;
|
NODE_INFO(ctx->current)->dirty = TRUE;
|
||||||
|
|
||||||
raise_error = FALSE;
|
raise_error = FALSE;
|
||||||
@@ -441,60 +471,28 @@ start_element_handler (GMarkupParseContext *context,
|
|||||||
EGG_MENU_MERGE_MENUITEM,
|
EGG_MENU_MERGE_MENUITEM,
|
||||||
TRUE, top);
|
TRUE, top);
|
||||||
if (NODE_INFO(node)->action_name == 0)
|
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),
|
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;
|
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;
|
raise_error = FALSE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'p':
|
case 'p':
|
||||||
if (ctx->state == STATE_ROOT && !strcmp(element_name, "popups"))
|
if (ctx->state == STATE_ROOT && !strcmp(element_name, "popup"))
|
||||||
{
|
|
||||||
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"))
|
|
||||||
{
|
{
|
||||||
ctx->state = STATE_MENU;
|
ctx->state = STATE_MENU;
|
||||||
ctx->current = get_child_node(self, ctx->current,
|
ctx->current = get_child_node(self, ctx->current,
|
||||||
node_name, strlen(node_name),
|
node_name, strlen(node_name),
|
||||||
EGG_MENU_MERGE_MENU,
|
EGG_MENU_MERGE_POPUP,
|
||||||
TRUE, FALSE);
|
TRUE, FALSE);
|
||||||
if (NODE_INFO(ctx->current)->action_name == 0)
|
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),
|
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;
|
NODE_INFO(ctx->current)->dirty = TRUE;
|
||||||
|
|
||||||
raise_error = FALSE;
|
raise_error = FALSE;
|
||||||
@@ -502,66 +500,66 @@ start_element_handler (GMarkupParseContext *context,
|
|||||||
else if ((ctx->state == STATE_MENU || ctx->state == STATE_TOOLBAR) &&
|
else if ((ctx->state == STATE_MENU || ctx->state == STATE_TOOLBAR) &&
|
||||||
!strcmp(element_name, "placeholder"))
|
!strcmp(element_name, "placeholder"))
|
||||||
{
|
{
|
||||||
if (ctx->state == STATE_MENU)
|
if (ctx->state == STATE_TOOLBAR)
|
||||||
ctx->current = get_child_node(self, ctx->current,
|
|
||||||
node_name, strlen(node_name),
|
|
||||||
EGG_MENU_MERGE_MENU_PLACEHOLDER,
|
|
||||||
TRUE, top);
|
|
||||||
else
|
|
||||||
ctx->current = get_child_node(self, ctx->current,
|
ctx->current = get_child_node(self, ctx->current,
|
||||||
node_name, strlen(node_name),
|
node_name, strlen(node_name),
|
||||||
EGG_MENU_MERGE_TOOLBAR_PLACEHOLDER,
|
EGG_MENU_MERGE_TOOLBAR_PLACEHOLDER,
|
||||||
TRUE, top);
|
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),
|
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;
|
NODE_INFO(ctx->current)->dirty = TRUE;
|
||||||
|
|
||||||
raise_error = FALSE;
|
raise_error = FALSE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
if (ctx->state == STATE_MENU && !strcmp(element_name, "submenu"))
|
if ((ctx->state == STATE_MENU || ctx->state == STATE_TOOLBAR) &&
|
||||||
{
|
|
||||||
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) &&
|
|
||||||
!strcmp(element_name, "separator"))
|
!strcmp(element_name, "separator"))
|
||||||
{
|
{
|
||||||
GNode *node;
|
GNode *node;
|
||||||
|
|
||||||
if (ctx->state == STATE_MENU)
|
if (ctx->state == STATE_TOOLBAR)
|
||||||
ctx->state = STATE_MENUITEM;
|
|
||||||
else
|
|
||||||
ctx->state = STATE_TOOLITEM;
|
ctx->state = STATE_TOOLITEM;
|
||||||
|
else
|
||||||
|
ctx->state = STATE_MENUITEM;
|
||||||
node = get_child_node(self, ctx->current,
|
node = get_child_node(self, ctx->current,
|
||||||
node_name, strlen(node_name),
|
node_name, strlen(node_name),
|
||||||
EGG_MENU_MERGE_SEPARATOR,
|
EGG_MENU_MERGE_SEPARATOR,
|
||||||
TRUE, top);
|
TRUE, top);
|
||||||
if (NODE_INFO(node)->action_name == 0)
|
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),
|
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;
|
NODE_INFO(node)->dirty = TRUE;
|
||||||
|
|
||||||
raise_error = FALSE;
|
raise_error = FALSE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 't':
|
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;
|
GNode *node;
|
||||||
|
|
||||||
@@ -571,10 +569,10 @@ start_element_handler (GMarkupParseContext *context,
|
|||||||
EGG_MENU_MERGE_TOOLITEM,
|
EGG_MENU_MERGE_TOOLITEM,
|
||||||
TRUE, top);
|
TRUE, top);
|
||||||
if (NODE_INFO(node)->action_name == 0)
|
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),
|
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;
|
NODE_INFO(node)->dirty = TRUE;
|
||||||
|
|
||||||
raise_error = FALSE;
|
raise_error = FALSE;
|
||||||
@@ -589,20 +587,12 @@ start_element_handler (GMarkupParseContext *context,
|
|||||||
|
|
||||||
g_markup_parse_context_get_position (context,
|
g_markup_parse_context_get_position (context,
|
||||||
&line_number, &char_number);
|
&line_number, &char_number);
|
||||||
if (error_attr)
|
g_set_error (error,
|
||||||
g_set_error (error,
|
G_MARKUP_ERROR,
|
||||||
G_MARKUP_ERROR,
|
G_MARKUP_ERROR_UNKNOWN_ELEMENT,
|
||||||
G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE,
|
_("Unknown tag '%s' on line %d char %d"),
|
||||||
_("Unknown attribute '%s' on line %d char %d"),
|
element_name,
|
||||||
error_attr,
|
line_number, char_number);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -633,8 +623,6 @@ end_element_handler (GMarkupParseContext *context,
|
|||||||
ctx->current = ctx->current->parent;
|
ctx->current = ctx->current->parent;
|
||||||
if (NODE_INFO(ctx->current)->type == EGG_MENU_MERGE_ROOT) /* menubar */
|
if (NODE_INFO(ctx->current)->type == EGG_MENU_MERGE_ROOT) /* menubar */
|
||||||
ctx->state = STATE_ROOT;
|
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 */
|
/* else, stay in STATE_MENU state */
|
||||||
break;
|
break;
|
||||||
case STATE_TOOLBAR:
|
case STATE_TOOLBAR:
|
||||||
@@ -645,10 +633,6 @@ end_element_handler (GMarkupParseContext *context,
|
|||||||
ctx->state = STATE_ROOT;
|
ctx->state = STATE_ROOT;
|
||||||
/* else, stay in STATE_TOOLBAR state */
|
/* else, stay in STATE_TOOLBAR state */
|
||||||
break;
|
break;
|
||||||
case STATE_POPUPS:
|
|
||||||
ctx->current = ctx->current->parent;
|
|
||||||
ctx->state = STATE_ROOT;
|
|
||||||
break;
|
|
||||||
case STATE_MENUITEM:
|
case STATE_MENUITEM:
|
||||||
ctx->state = STATE_MENU;
|
ctx->state = STATE_MENU;
|
||||||
break;
|
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 != NULL, FALSE);
|
||||||
g_return_val_if_fail(NODE_INFO(node)->type == EGG_MENU_MERGE_MENU ||
|
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_MENU_PLACEHOLDER ||
|
||||||
NODE_INFO(node)->type == EGG_MENU_MERGE_MENUITEM ||
|
NODE_INFO(node)->type == EGG_MENU_MERGE_MENUITEM ||
|
||||||
NODE_INFO(node)->type == EGG_MENU_MERGE_SEPARATOR,
|
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)
|
switch (NODE_INFO(parent)->type)
|
||||||
{
|
{
|
||||||
case EGG_MENU_MERGE_MENUBAR:
|
case EGG_MENU_MERGE_MENUBAR:
|
||||||
|
case EGG_MENU_MERGE_POPUP:
|
||||||
menushell = NODE_INFO(parent)->proxy;
|
menushell = NODE_INFO(parent)->proxy;
|
||||||
pos = 0;
|
pos = 0;
|
||||||
break;
|
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,
|
pos = g_list_index(GTK_MENU_SHELL(menushell)->children,
|
||||||
NODE_INFO(parent)->proxy) + 1;
|
NODE_INFO(parent)->proxy) + 1;
|
||||||
break;
|
break;
|
||||||
case EGG_MENU_MERGE_POPUPS:
|
|
||||||
menushell = NULL;
|
|
||||||
pos = 0;
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
g_warning("%s: bad parent node type %d", G_STRLOC,
|
g_warning("%s: bad parent node type %d", G_STRLOC,
|
||||||
NODE_INFO(parent)->type);
|
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);
|
g_signal_emit (self, merge_signals[ADD_WIDGET], 0, info->proxy);
|
||||||
}
|
}
|
||||||
break;
|
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:
|
case EGG_MENU_MERGE_MENU:
|
||||||
{
|
{
|
||||||
GtkWidget *prev_submenu = NULL;
|
GtkWidget *prev_submenu = NULL;
|
||||||
@@ -1133,8 +1123,6 @@ update_node (EggMenuMerge *self, GNode *node)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EGG_MENU_MERGE_POPUPS:
|
|
||||||
break;
|
|
||||||
case EGG_MENU_MERGE_MENUITEM:
|
case EGG_MENU_MERGE_MENUITEM:
|
||||||
/* remove the proxy if it is of the wrong type ... */
|
/* remove the proxy if it is of the wrong type ... */
|
||||||
if (info->proxy && G_OBJECT_TYPE(info->proxy) !=
|
if (info->proxy && G_OBJECT_TYPE(info->proxy) !=
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ typedef enum {
|
|||||||
EGG_MENU_MERGE_TOOLBAR,
|
EGG_MENU_MERGE_TOOLBAR,
|
||||||
EGG_MENU_MERGE_MENU_PLACEHOLDER,
|
EGG_MENU_MERGE_MENU_PLACEHOLDER,
|
||||||
EGG_MENU_MERGE_TOOLBAR_PLACEHOLDER,
|
EGG_MENU_MERGE_TOOLBAR_PLACEHOLDER,
|
||||||
EGG_MENU_MERGE_POPUPS,
|
EGG_MENU_MERGE_POPUP,
|
||||||
EGG_MENU_MERGE_MENUITEM,
|
EGG_MENU_MERGE_MENUITEM,
|
||||||
EGG_MENU_MERGE_TOOLITEM,
|
EGG_MENU_MERGE_TOOLITEM,
|
||||||
EGG_MENU_MERGE_SEPARATOR,
|
EGG_MENU_MERGE_SEPARATOR,
|
||||||
|
|||||||
@@ -1,41 +1,39 @@
|
|||||||
<Root>
|
<ui>
|
||||||
<menu>
|
<menubar>
|
||||||
|
<placeholder name="AdditionalMenusPlaceholder">
|
||||||
|
<menu action="BusinessAction">
|
||||||
|
<menu name="CustomerMenu" action="CustomerMenuAction">
|
||||||
|
<menuitem name="CustomerNewCustomerOpen" action="CustomerNewCustomerOpenAction"/>
|
||||||
|
<menuitem name="CustomerFindCustomerOpen" action="CustomerFindCustomerOpenAction"/>
|
||||||
|
<menuitem name="CustomerNewInvoiceOpen" action="CustomerNewInvoiceOpenAction"/>
|
||||||
|
<menuitem name="CustomerFindInvoiceOpen" action="CustomerFindInvoiceOpenAction"/>
|
||||||
|
<menuitem name="CustomerNewJobOpen" action="CustomerNewJobOpenAction"/>
|
||||||
|
<menuitem name="CustomerFindJobOpen" action="CustomerFindJobOpenAction"/>
|
||||||
|
<menuitem name="CustomerProcessPayment" action="CustomerProcessPaymentAction"/>
|
||||||
|
</menu>
|
||||||
|
|
||||||
<placeholder name="AdditionalMenusPlaceholder">
|
<menu name="VendorMenu" action="VendorMenuAction">
|
||||||
<submenu verb="BusinessAction">
|
<menuitem name="VendorNewVendorOpen" action="VendorNewVendorOpenAction"/>
|
||||||
<submenu name="CustomerMenu" verb="CustomerMenuAction">
|
<menuitem name="VendorFindVendorOpen" action="VendorFindVendorOpenAction"/>
|
||||||
<menuitem name="CustomerNewCustomerOpen" verb="CustomerNewCustomerOpenAction"/>
|
<menuitem name="VendorNewBillOpen" action="VendorNewBillOpenAction"/>
|
||||||
<menuitem name="CustomerFindCustomerOpen" verb="CustomerFindCustomerOpenAction"/>
|
<menuitem name="VendorFindBillOpen" action="VendorFindBillOpenAction"/>
|
||||||
<menuitem name="CustomerNewInvoiceOpen" verb="CustomerNewInvoiceOpenAction"/>
|
<menuitem name="VendorNewJobOpen" action="VendorNewJobOpenAction"/>
|
||||||
<menuitem name="CustomerFindInvoiceOpen" verb="CustomerFindInvoiceOpenAction"/>
|
<menuitem name="VendorFindJobOpen" action="VendorFindJobOpenAction"/>
|
||||||
<menuitem name="CustomerNewJobOpen" verb="CustomerNewJobOpenAction"/>
|
<menuitem name="VendorProcessPayment" action="VendorProcessPaymentAction"/>
|
||||||
<menuitem name="CustomerFindJobOpen" verb="CustomerFindJobOpenAction"/>
|
</menu>
|
||||||
<menuitem name="CustomerProcessPayment" verb="CustomerProcessPaymentAction"/>
|
|
||||||
</submenu>
|
|
||||||
|
|
||||||
<submenu name="VendorMenu" verb="VendorMenuAction">
|
<menu name="EmployeeMenu" action="EmployeeMenuAction">
|
||||||
<menuitem name="VendorNewVendorOpen" verb="VendorNewVendorOpenAction"/>
|
<menuitem name="EmployeeNewEmployeeOpen" action="EmployeeNewEmployeeOpenAction"/>
|
||||||
<menuitem name="VendorFindVendorOpen" verb="VendorFindVendorOpenAction"/>
|
<menuitem name="EmployeeFindEmployeeOpen" action="EmployeeFindEmployeeOpenAction"/>
|
||||||
<menuitem name="VendorNewBillOpen" verb="VendorNewBillOpenAction"/>
|
<menuitem name="EmployeeNewExpenseOpen" action="EmployeeNewExpenseVoucherOpenAction"/>
|
||||||
<menuitem name="VendorFindBillOpen" verb="VendorFindBillOpenAction"/>
|
<menuitem name="EmployeeFindExpenseOpen" action="EmployeeFindExpenseVoucherOpenAction"/>
|
||||||
<menuitem name="VendorNewJobOpen" verb="VendorNewJobOpenAction"/>
|
<menuitem name="EmployeeProcessPayment" action="EmployeeProcessPaymentAction"/>
|
||||||
<menuitem name="VendorFindJobOpen" verb="VendorFindJobOpenAction"/>
|
</menu>
|
||||||
<menuitem name="VendorProcessPayment" verb="VendorProcessPaymentAction"/>
|
|
||||||
</submenu>
|
|
||||||
|
|
||||||
<submenu name="EmployeeMenu" verb="EmployeeMenuAction">
|
<menuitem name="TaxTablesOpen" action="TaxTablesOpenAction"/>
|
||||||
<menuitem name="EmployeeNewEmployeeOpen" verb="EmployeeNewEmployeeOpenAction"/>
|
<menuitem name="BillingTermsOpen" action="BillingTermsOpenAction"/>
|
||||||
<menuitem name="EmployeeFindEmployeeOpen" verb="EmployeeFindEmployeeOpenAction"/>
|
<menuitem name="BillsDueReminderOpen" action="BillsDueReminderOpenAction"/>
|
||||||
<menuitem name="EmployeeNewExpenseOpen" verb="EmployeeNewExpenseVoucherOpenAction"/>
|
</menu>
|
||||||
<menuitem name="EmployeeFindExpenseOpen" verb="EmployeeFindExpenseVoucherOpenAction"/>
|
</placeholder>
|
||||||
<menuitem name="EmployeeProcessPayment" verb="EmployeeProcessPaymentAction"/>
|
</menubar>
|
||||||
</submenu>
|
</ui>
|
||||||
|
|
||||||
<menuitem name="TaxTablesOpen" verb="TaxTablesOpenAction"/>
|
|
||||||
<menuitem name="BillingTermsOpen" verb="BillingTermsOpenAction"/>
|
|
||||||
<menuitem name="BillsDueReminderOpen" verb="BillsDueReminderOpenAction"/>
|
|
||||||
</submenu>
|
|
||||||
</placeholder>
|
|
||||||
|
|
||||||
</menu>
|
|
||||||
</Root>
|
|
||||||
|
|||||||
@@ -389,6 +389,7 @@ gnc_main_window_merge_actions (GncMainWindow *window,
|
|||||||
GncMainWindowActionData *data;
|
GncMainWindowActionData *data;
|
||||||
guint i;
|
guint i;
|
||||||
MergedActionEntry *entry;
|
MergedActionEntry *entry;
|
||||||
|
GError *error = NULL;
|
||||||
|
|
||||||
g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
|
g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
|
||||||
g_return_if_fail (group_name != NULL);
|
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);
|
entry->action_group = egg_action_group_new (group_name);
|
||||||
egg_action_group_add_actions (entry->action_group, actions, n_actions);
|
egg_action_group_add_actions (entry->action_group, actions, n_actions);
|
||||||
egg_menu_merge_insert_action_group (window->ui_merge, entry->action_group, 0);
|
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);
|
entry->merge_id = egg_menu_merge_add_ui_from_file (window->ui_merge, ui_file, &error);
|
||||||
egg_menu_merge_ensure_update (window->ui_merge);
|
g_assert(entry->merge_id || error);
|
||||||
|
if (entry->merge_id) {
|
||||||
g_hash_table_insert (window->priv->merged_actions_table, g_strdup (group_name), entry);
|
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
|
void
|
||||||
@@ -524,9 +532,10 @@ static void
|
|||||||
gnc_main_window_setup_window (GncMainWindow *window)
|
gnc_main_window_setup_window (GncMainWindow *window)
|
||||||
{
|
{
|
||||||
GtkWidget *main_vbox;
|
GtkWidget *main_vbox;
|
||||||
guint i;
|
guint i, merge_id;
|
||||||
GncPluginManager *manager;
|
GncPluginManager *manager;
|
||||||
GList *plugins;
|
GList *plugins;
|
||||||
|
GError *error = NULL;
|
||||||
|
|
||||||
/* Create widgets and add them to the window */
|
/* Create widgets and add them to the window */
|
||||||
main_vbox = gtk_vbox_new (FALSE, 0);
|
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_signal_connect (G_OBJECT (window->ui_merge), "add_widget",
|
||||||
G_CALLBACK (gnc_main_window_add_widget), window);
|
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);
|
merge_id = egg_menu_merge_add_ui_from_file (window->ui_merge,
|
||||||
gtk_window_add_accel_group (GTK_WINDOW (window), window->ui_merge->accel_group);
|
GNC_UI_DIR "/gnc-main-window-ui.xml",
|
||||||
egg_menu_merge_ensure_update (window->ui_merge);
|
&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 */
|
/* GncPluginManager stuff */
|
||||||
manager = gnc_plugin_manager_get ();
|
manager = gnc_plugin_manager_get ();
|
||||||
|
|||||||
@@ -504,6 +504,7 @@ gnc_plugin_page_account_tree_merge_actions (GncPluginPage *plugin_page,
|
|||||||
EggMenuMerge *ui_merge)
|
EggMenuMerge *ui_merge)
|
||||||
{
|
{
|
||||||
GncPluginPageAccountTree *plugin_page_account_tree = GNC_PLUGIN_PAGE_ACCOUNT_TREE(plugin_page);
|
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);
|
ENTER("page %p, ui_merge %p", plugin_page, ui_merge);
|
||||||
g_return_if_fail (GNC_IS_PLUGIN_PAGE_ACCOUNT_TREE (plugin_page_account_tree));
|
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 =
|
plugin_page_account_tree->priv->merge_id =
|
||||||
egg_menu_merge_add_ui_from_file (ui_merge,
|
egg_menu_merge_add_ui_from_file (ui_merge,
|
||||||
GNC_UI_DIR "/gnc-plugin-page-account-tree-ui.xml",
|
GNC_UI_DIR "/gnc-plugin-page-account-tree-ui.xml",
|
||||||
NULL);
|
&error);
|
||||||
DEBUG("merge_id is %d", plugin_page_account_tree->priv->merge_id);
|
DEBUG("merge_id is %d", plugin_page_account_tree->priv->merge_id);
|
||||||
|
|
||||||
egg_menu_merge_ensure_update (ui_merge);
|
g_assert(plugin_page_account_tree->priv->merge_id || error);
|
||||||
|
if (plugin_page_account_tree->priv->merge_id) {
|
||||||
plugin_page_account_tree->priv->ui_merge = ui_merge;
|
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(" ");
|
LEAVE(" ");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -581,24 +588,14 @@ gnc_plugin_page_account_tree_button_press_cb (GtkWidget *widget,
|
|||||||
GdkEventButton *event,
|
GdkEventButton *event,
|
||||||
GncPluginPageAccountTree *page)
|
GncPluginPageAccountTree *page)
|
||||||
{
|
{
|
||||||
const gchar *popup;
|
GtkWidget *menu;
|
||||||
gchar *path;
|
|
||||||
GtkWidget *menuitem, *menu;
|
|
||||||
|
|
||||||
if (event->button == 3 && page->priv->ui_merge != NULL) {
|
if (event->button == 3 && page->priv->ui_merge != NULL) {
|
||||||
/* Maybe show a different popup menu if no account is selected. */
|
/* Maybe show a different popup menu if no account is selected. */
|
||||||
popup = "AccountPopup";
|
menu = egg_menu_merge_get_widget (page->priv->ui_merge, "/AccountPopup");
|
||||||
|
if (menu)
|
||||||
path = g_strconcat ("/popups/", popup, NULL);
|
gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL,
|
||||||
menuitem = egg_menu_merge_get_widget (page->priv->ui_merge, path);
|
event->button, event->time);
|
||||||
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);
|
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -332,17 +332,26 @@ gnc_plugin_page_register_merge_actions (GncPluginPage *plugin_page,
|
|||||||
EggMenuMerge *ui_merge)
|
EggMenuMerge *ui_merge)
|
||||||
{
|
{
|
||||||
GncPluginPageRegister *plugin_page_register = GNC_PLUGIN_PAGE_REGISTER(plugin_page);
|
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));
|
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);
|
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,
|
plugin_page_register->priv->merge_id =
|
||||||
GNC_UI_DIR "/gnc-plugin-page-register-ui.xml",
|
egg_menu_merge_add_ui_from_file (ui_merge,
|
||||||
NULL);
|
GNC_UI_DIR "/gnc-plugin-page-register-ui.xml",
|
||||||
egg_menu_merge_ensure_update (ui_merge);
|
&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
|
static void
|
||||||
|
|||||||
@@ -1,82 +1,83 @@
|
|||||||
<Root>
|
<ui>
|
||||||
<menu>
|
<menubar>
|
||||||
<submenu name="File" verb="FileAction">
|
<menu name="File" action="FileAction">
|
||||||
<menuitem name="FileNew" verb="FileNewAction"/>
|
<menuitem name="FileNew" action="FileNewAction"/>
|
||||||
<placeholder name="FileNewPlaceholder"/>
|
<placeholder name="FileNewPlaceholder"/>
|
||||||
<separator name="FileSep1"/>
|
<separator name="FileSep1"/>
|
||||||
<menuitem name="FileOpen" verb="FileOpenAction"/>
|
<menuitem name="FileOpen" action="FileOpenAction"/>
|
||||||
<placeholder name="FileOpenPlaceholder"/>
|
<placeholder name="FileOpenPlaceholder"/>
|
||||||
<menuitem name="FileOpenNewWindow" verb="FileOpenNewWindowAction"/>
|
<menuitem name="FileOpenNewWindow" action="FileOpenNewWindowAction"/>
|
||||||
<submenu name="FileOpenRecent" verb="FileOpenRecentAction"/>
|
<menu name="FileOpenRecent" action="FileOpenRecentAction"/>
|
||||||
<separator name="FileSep2"/>
|
<separator name="FileSep2"/>
|
||||||
<menuitem name="FileSave" verb="FileSaveAction"/>
|
<menuitem name="FileSave" action="FileSaveAction"/>
|
||||||
<menuitem name="FileSaveAs" verb="FileSaveAsAction"/>
|
<menuitem name="FileSaveAs" action="FileSaveAsAction"/>
|
||||||
<placeholder name="FileSavePlaceholder"/>
|
<placeholder name="FileSavePlaceholder"/>
|
||||||
<separator name="FileSep3"/>
|
<separator name="FileSep3"/>
|
||||||
<submenu name="FileImport" verb="FileImportAction">
|
<menu name="FileImport" action="FileImportAction">
|
||||||
<placeholder name="FileImportPlaceholder"/>
|
<placeholder name="FileImportPlaceholder"/>
|
||||||
</submenu>
|
</menu>
|
||||||
<submenu name="FileExport" verb="FileExportAction">
|
<menu name="FileExport" action="FileExportAction">
|
||||||
<menuitem name="FileExportAccounts" verb="FileExportAccountsAction"/>
|
<menuitem name="FileExportAccounts" action="FileExportAccountsAction"/>
|
||||||
<placeholder name="FileExportPlaceholder"/>
|
<placeholder name="FileExportPlaceholder"/>
|
||||||
</submenu>
|
</menu>
|
||||||
<separator name="FileSep4"/>
|
<separator name="FileSep4"/>
|
||||||
<menuitem name="FilePrint" verb="FilePrintAction"/>
|
<menuitem name="FilePrint" action="FilePrintAction"/>
|
||||||
<separator name="FileSep5"/>
|
<separator name="FileSep5"/>
|
||||||
<menuitem name="FileClose" verb="FileCloseAction"/>
|
<menuitem name="FileClose" action="FileCloseAction"/>
|
||||||
<menuitem name="FileQuit" verb="FileQuitAction"/>
|
<menuitem name="FileQuit" action="FileQuitAction"/>
|
||||||
</submenu>
|
</menu>
|
||||||
|
|
||||||
|
<menu name="Edit" action="EditAction">
|
||||||
|
<menuitem name="EditCut" action="EditCutAction"/>
|
||||||
|
<menuitem name="EditCopy" action="EditCopyAction"/>
|
||||||
|
<menuitem name="EditPaste" action="EditPasteAction"/>
|
||||||
|
<separator name="EditSep1"/>
|
||||||
|
<placeholder name="EditPlaceholder"/>
|
||||||
|
<menuitem name="EditPreferences" action="EditPreferencesAction"/>
|
||||||
|
<placeholder name="EditPreferencesPlaceholder"/>
|
||||||
|
<menuitem name="EditTaxOptions" action="EditTaxOptionsAction"/>
|
||||||
|
</menu>
|
||||||
|
|
||||||
|
<menu name="View" action="ViewAction">
|
||||||
|
<menuitem name="ViewRefresh" action="ViewRefreshAction"/>
|
||||||
|
<separator name="ViewSep1"/>
|
||||||
|
<menuitem name="ViewToolbar" action="ViewToolbarAction"/>
|
||||||
|
<menuitem name="ViewSummary" action="ViewSummaryAction"/>
|
||||||
|
<menuitem name="ViewStatusbar" action="ViewStatusbarAction"/>
|
||||||
|
</menu>
|
||||||
|
|
||||||
|
<menu name="Actions" action="ActionsAction">
|
||||||
|
<menu name="ActionsScheduledTransactions" action="ActionsScheduledTransactionsAction">
|
||||||
|
<menuitem name="ActionsScheduledTransactionEditor" action="ActionsScheduledTransactionEditorAction"/>
|
||||||
|
<menuitem name="ActionsSinceLastRun" action="ActionsSinceLastRunAction"/>
|
||||||
|
<menuitem name="ActionsMortgageLoan" action="ActionsMortgageLoanAction"/>
|
||||||
|
</menu>
|
||||||
|
<placeholder name="ActionsPlaceholder"/>
|
||||||
|
</menu>
|
||||||
|
|
||||||
|
<placeholder name="AdditionalMenusPlaceholder"/>
|
||||||
|
|
||||||
|
<menu name="Tools" action="ToolsAction">
|
||||||
|
<placeholder name="ToolsPlaceholder"/>
|
||||||
|
<menuitem name="ToolsPriceEditor" action="ToolsPriceEditorAction"/>
|
||||||
|
<menuitem name="ToolsCommodityEditor" action="ToolsCommodityEditorAction"/>
|
||||||
|
<menuitem name="ToolsFinancialCalculator" action="ToolsFinancialCalculatorAction"/>
|
||||||
|
<menuitem name="ToolsFindTransactions" action="ToolsFindTransactionsAction"/>
|
||||||
|
</menu>
|
||||||
|
|
||||||
|
<menu name="Help" action="HelpAction">
|
||||||
|
<menuitem name="HelpTutorial" action="HelpTutorialAction"/>
|
||||||
|
<menuitem name="HelpTipsOfTheDay" action="HelpTipsOfTheDayAction"/>
|
||||||
|
<menuitem name="HelpContents" action="HelpContentsAction"/>
|
||||||
|
<menuitem name="HelpAbout" action="HelpAboutAction"/>
|
||||||
|
</menu>
|
||||||
|
</menubar>
|
||||||
|
|
||||||
<submenu name="Edit" verb="EditAction">
|
<toolbar name="DefaultToolbar">
|
||||||
<menuitem name="EditCut" verb="EditCutAction"/>
|
<toolitem name="ToolbarSave" action="FileSaveAction"/>
|
||||||
<menuitem name="EditCopy" verb="EditCopyAction"/>
|
<toolitem name="ToolbarClose" action="FileCloseAction"/>
|
||||||
<menuitem name="EditPaste" verb="EditPasteAction"/>
|
<placeholder name="DefaultToolbarPlaceholder"/>
|
||||||
<separator name="EditSep1"/>
|
<separator name="ToolbarSep1"/>
|
||||||
<placeholder name="EditPlaceholder"/>
|
<toolitem name="ToolbarQuit" action="FileQuitAction"/>
|
||||||
<menuitem name="EditPreferences" verb="EditPreferencesAction"/>
|
</toolbar>
|
||||||
<placeholder name="EditPreferencesPlaceholder"/>
|
</ui>
|
||||||
<menuitem name="EditTaxOptions" verb="EditTaxOptionsAction"/>
|
|
||||||
</submenu>
|
|
||||||
|
|
||||||
<submenu name="View" verb="ViewAction">
|
|
||||||
<menuitem name="ViewRefresh" verb="ViewRefreshAction"/>
|
|
||||||
<separator name="ViewSep1"/>
|
|
||||||
<menuitem name="ViewToolbar" verb="ViewToolbarAction"/>
|
|
||||||
<menuitem name="ViewSummary" verb="ViewSummaryAction"/>
|
|
||||||
<menuitem name="ViewStatusbar" verb="ViewStatusbarAction"/>
|
|
||||||
</submenu>
|
|
||||||
|
|
||||||
<submenu name="Actions" verb="ActionsAction">
|
|
||||||
<submenu name="ActionsScheduledTransactions" verb="ActionsScheduledTransactionsAction">
|
|
||||||
<menuitem name="ActionsScheduledTransactionEditor" verb="ActionsScheduledTransactionEditorAction"/>
|
|
||||||
<menuitem name="ActionsSinceLastRun" verb="ActionsSinceLastRunAction"/>
|
|
||||||
<menuitem name="ActionsMortgageLoan" verb="ActionsMortgageLoanAction"/>
|
|
||||||
</submenu>
|
|
||||||
<placeholder name="ActionsPlaceholder"/>
|
|
||||||
</submenu>
|
|
||||||
|
|
||||||
<placeholder name="AdditionalMenusPlaceholder"/>
|
|
||||||
|
|
||||||
<submenu name="Tools" verb="ToolsAction">
|
|
||||||
<placeholder name="ToolsPlaceholder"/>
|
|
||||||
<menuitem name="ToolsPriceEditor" verb="ToolsPriceEditorAction"/>
|
|
||||||
<menuitem name="ToolsCommodityEditor" verb="ToolsCommodityEditorAction"/>
|
|
||||||
<menuitem name="ToolsFinancialCalculator" verb="ToolsFinancialCalculatorAction"/>
|
|
||||||
<menuitem name="ToolsFindTransactions" verb="ToolsFindTransactionsAction"/>
|
|
||||||
</submenu>
|
|
||||||
|
|
||||||
<submenu name="Help" verb="HelpAction">
|
|
||||||
<menuitem name="HelpTutorial" verb="HelpTutorialAction"/>
|
|
||||||
<menuitem name="HelpTipsOfTheDay" verb="HelpTipsOfTheDayAction"/>
|
|
||||||
<menuitem name="HelpContents" verb="HelpContentsAction"/>
|
|
||||||
<menuitem name="HelpAbout" verb="HelpAboutAction"/>
|
|
||||||
</submenu>
|
|
||||||
</menu>
|
|
||||||
<dockitem name="DefaultToolbar">
|
|
||||||
<toolitem name="ToolbarSave" verb="FileSaveAction"/>
|
|
||||||
<toolitem name="ToolbarClose" verb="FileCloseAction"/>
|
|
||||||
<placeholder name="DefaultToolbarPlaceholder"/>
|
|
||||||
<separator name="ToolbarSep1"/>
|
|
||||||
<toolitem name="ToolbarQuit" verb="FileQuitAction"/>
|
|
||||||
</dockitem>
|
|
||||||
</Root>
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<Root>
|
<ui>
|
||||||
<menu>
|
<menubar>
|
||||||
<submenu name="File" verb="FileAction">
|
<menu name="File" action="FileAction">
|
||||||
<placeholder name="FileNewPlaceholder">
|
<placeholder name="FileNewPlaceholder">
|
||||||
<menuitem name="FileNewAccountTree" verb="FileNewAccountTreeAction"/>
|
<menuitem name="FileNewAccountTree" action="FileNewAccountTreeAction"/>
|
||||||
</placeholder>
|
</placeholder>
|
||||||
</submenu>
|
</menu>
|
||||||
</menu>
|
</menubar>
|
||||||
</Root>
|
</ui>
|
||||||
|
|||||||
@@ -1,71 +1,71 @@
|
|||||||
<Root>
|
<ui>
|
||||||
<menu>
|
<menubar>
|
||||||
<submenu name="File" verb="FileAction">
|
<menu name="File" action="FileAction">
|
||||||
<placeholder name="FileNewPlaceholder">
|
<placeholder name="FileNewPlaceholder">
|
||||||
<menuitem name="FileNewAccount" verb="FileNewAccountAction"/>
|
<menuitem name="FileNewAccount" action="FileNewAccountAction"/>
|
||||||
</placeholder>
|
</placeholder>
|
||||||
<placeholder name="FileOpenPlaceholder">
|
<placeholder name="FileOpenPlaceholder">
|
||||||
<menuitem name="FileOpenAccount" verb="FileOpenAccountAction"/>
|
<menuitem name="FileOpenAccount" action="FileOpenAccountAction"/>
|
||||||
<menuitem name="FileOpenSubaccounts" verb="FileOpenSubaccountsAction"/>
|
<menuitem name="FileOpenSubaccounts" action="FileOpenSubaccountsAction"/>
|
||||||
</placeholder>
|
</placeholder>
|
||||||
</submenu>
|
</menu>
|
||||||
<submenu name="Edit" verb="EditAction">
|
<menu name="Edit" action="EditAction">
|
||||||
<placeholder name="EditPlaceholder">
|
<placeholder name="EditPlaceholder">
|
||||||
<menuitem name="EditEditAccount" verb="EditEditAccountAction"/>
|
<menuitem name="EditEditAccount" action="EditEditAccountAction"/>
|
||||||
<menuitem name="EditDeleteAccount" verb="EditDeleteAccountAction"/>
|
<menuitem name="EditDeleteAccount" action="EditDeleteAccountAction"/>
|
||||||
<separator name="EditSep2"/>
|
<separator name="EditSep2"/>
|
||||||
</placeholder>
|
</placeholder>
|
||||||
<placeholder name="EditPreferencesPlaceholder">
|
<placeholder name="EditPreferencesPlaceholder">
|
||||||
<menuitem name="EditAccountViewOptions" verb="EditAccountViewOptionsAction"/>
|
<menuitem name="EditAccountViewOptions" action="EditAccountViewOptionsAction"/>
|
||||||
</placeholder>
|
</placeholder>
|
||||||
</submenu>
|
</menu>
|
||||||
<submenu name="Actions" verb="ActionsAction">
|
<menu name="Actions" action="ActionsAction">
|
||||||
<placeholder name="ActionsPlaceholder">
|
<placeholder name="ActionsPlaceholder">
|
||||||
<separator name="ActionsSep1"/>
|
<separator name="ActionsSep1"/>
|
||||||
<menuitem name="ActionsReconcile" verb="ActionsReconcileAction"/>
|
<menuitem name="ActionsReconcile" action="ActionsReconcileAction"/>
|
||||||
<menuitem name="ActionsTransfer" verb="ActionsTransferAction"/>
|
<menuitem name="ActionsTransfer" action="ActionsTransferAction"/>
|
||||||
<menuitem name="ActionsStockSplit" verb="ActionsStockSplitAction"/>
|
<menuitem name="ActionsStockSplit" action="ActionsStockSplitAction"/>
|
||||||
<separator name="ActionsSep2"/>
|
<separator name="ActionsSep2"/>
|
||||||
<submenu name="ScrubMenu" verb="ScrubMenuAction">
|
<menu name="ScrubMenu" action="ScrubMenuAction">
|
||||||
<menuitem name="Scrub" verb="ScrubAction"/>
|
<menuitem name="Scrub" action="ScrubAction"/>
|
||||||
<menuitem name="ScrubSub" verb="ScrubSubAction"/>
|
<menuitem name="ScrubSub" action="ScrubSubAction"/>
|
||||||
<menuitem name="ScrubAll" verb="ScrubAllAction"/>
|
<menuitem name="ScrubAll" action="ScrubAllAction"/>
|
||||||
</submenu>
|
</menu>
|
||||||
</placeholder>
|
</placeholder>
|
||||||
</submenu>
|
</menu>
|
||||||
</menu>
|
</menubar>
|
||||||
<popups>
|
|
||||||
<popup name="AccountPopup" verb="FakeToplevel">
|
<popup name="AccountPopup" action="FakeToplevel">
|
||||||
<menuitem name="AccountOpenAccount" verb="FileOpenAccountAction"/>
|
<menuitem name="AccountOpenAccount" action="FileOpenAccountAction"/>
|
||||||
<menuitem name="AccountOpenSubaccounts" verb="FileOpenSubaccountsAction"/>
|
<menuitem name="AccountOpenSubaccounts" action="FileOpenSubaccountsAction"/>
|
||||||
<menuitem name="AccountEditAccount" verb="EditEditAccountAction"/>
|
<menuitem name="AccountEditAccount" action="EditEditAccountAction"/>
|
||||||
<separator name="AccountSep1"/>
|
<separator name="AccountSep1"/>
|
||||||
<menuitem name="AccountReconcile" verb="ActionsReconcileAction"/>
|
<menuitem name="AccountReconcile" action="ActionsReconcileAction"/>
|
||||||
<menuitem name="AccountTransfer" verb="ActionsTransferAction"/>
|
<menuitem name="AccountTransfer" action="ActionsTransferAction"/>
|
||||||
<menuitem name="AccountStockSplit" verb="ActionsStockSplitAction"/>
|
<menuitem name="AccountStockSplit" action="ActionsStockSplitAction"/>
|
||||||
<separator name="AccountSep2"/>
|
<separator name="AccountSep2"/>
|
||||||
<menuitem name="AccountNewAccount" verb="FileNewAccountAction"/>
|
<menuitem name="AccountNewAccount" action="FileNewAccountAction"/>
|
||||||
<menuitem name="AccountDeleteAccount" verb="EditDeleteAccountAction"/>
|
<menuitem name="AccountDeleteAccount" action="EditDeleteAccountAction"/>
|
||||||
<separator name="AccountSep3"/>
|
<separator name="AccountSep3"/>
|
||||||
<submenu name="ScrubMenu" verb="ScrubMenuAction">
|
<menu name="ScrubMenu" action="ScrubMenuAction">
|
||||||
<menuitem name="Scrub" verb="ScrubAction"/>
|
<menuitem name="Scrub" action="ScrubAction"/>
|
||||||
<menuitem name="ScrubSub" verb="ScrubSubAction"/>
|
<menuitem name="ScrubSub" action="ScrubSubAction"/>
|
||||||
<menuitem name="ScrubAll" verb="ScrubAllAction"/>
|
<menuitem name="ScrubAll" action="ScrubAllAction"/>
|
||||||
</submenu>
|
</menu>
|
||||||
<separator name="AccountSep4"/>
|
<separator name="AccountSep4"/>
|
||||||
<menuitem name="AccountViewOptions" verb="EditAccountViewOptionsAction"/>
|
<menuitem name="AccountViewOptions" action="EditAccountViewOptionsAction"/>
|
||||||
</popup>
|
</popup>
|
||||||
</popups>
|
|
||||||
<dockitem name="DefaultToolbar">
|
<toolbar name="DefaultToolbar">
|
||||||
<placeholder name="DefaultToolbarPlaceholder">
|
<placeholder name="DefaultToolbarPlaceholder">
|
||||||
<separator name="ToolbarSep2"/>
|
<separator name="ToolbarSep2"/>
|
||||||
<toolitem name="ToolbarOpenAccount" verb="FileOpenAccountAction"/>
|
<toolitem name="ToolbarOpenAccount" action="FileOpenAccountAction"/>
|
||||||
<toolitem name="ToolbarEditAccount" verb="EditEditAccountAction"/>
|
<toolitem name="ToolbarEditAccount" action="EditEditAccountAction"/>
|
||||||
<separator name="ToolbarSep3"/>
|
<separator name="ToolbarSep3"/>
|
||||||
<toolitem name="ToolbarAccountViewOptions" verb="EditAccountViewOptionsAction"/>
|
<toolitem name="ToolbarAccountViewOptions" action="EditAccountViewOptionsAction"/>
|
||||||
<separator name="ToolbarSep4"/>
|
<separator name="ToolbarSep4"/>
|
||||||
<toolitem name="ToolbarNewAccount" verb="FileNewAccountAction"/>
|
<toolitem name="ToolbarNewAccount" action="FileNewAccountAction"/>
|
||||||
<toolitem name="ToolbarDeleteAccount" verb="EditDeleteAccountAction"/>
|
<toolitem name="ToolbarDeleteAccount" action="EditDeleteAccountAction"/>
|
||||||
</placeholder>
|
</placeholder>
|
||||||
</dockitem>
|
</toolbar>
|
||||||
</Root>
|
</ui>
|
||||||
|
|||||||
@@ -1,44 +1,23 @@
|
|||||||
<Root>
|
<ui>
|
||||||
<menu>
|
<menubar>
|
||||||
<submenu name="Actions">
|
<menu name="Actions">
|
||||||
<placeholder name="ActionsPlaceholder">
|
<placeholder name="ActionsPlaceholder">
|
||||||
<separator name="ActionsSep3"/>
|
<separator name="ActionsSep3"/>
|
||||||
<menuitem name="RecordTransaction" verb="RecordTransactionAction"/>
|
<menuitem name="RecordTransaction" action="RecordTransactionAction"/>
|
||||||
<menuitem name="CancelTransaction" verb="CancelTransactionAction"/>
|
<menuitem name="CancelTransaction" action="CancelTransactionAction"/>
|
||||||
<menuitem name="DeleteTransaction" verb="DeleteTransactionAction"/>
|
<menuitem name="DeleteTransaction" action="DeleteTransactionAction"/>
|
||||||
<menuitem name="DuplicateTransaction" verb="DuplicateTransactionAction"/>
|
<menuitem name="DuplicateTransaction" action="DuplicateTransactionAction"/>
|
||||||
</placeholder>
|
</placeholder>
|
||||||
</submenu>
|
</menu>
|
||||||
</menu>
|
</menubar>
|
||||||
<!--popups>
|
|
||||||
<popup name="AccountPopup" verb="FakeToplevel">
|
<toolbar name="DefaultToolbar">
|
||||||
<menuitem name="AccountOpenAccount" verb="FileOpenAccountAction"/>
|
<placeholder name="DefaultToolbarPlaceholder">
|
||||||
<menuitem name="AccountOpenSubaccounts" verb="FileOpenSubaccountsAction"/>
|
<separator name="ToolbarSep2"/>
|
||||||
<menuitem name="AccountEditAccount" verb="EditEditAccountAction"/>
|
<toolitem name="ToolbarRecordTransaction" action="RecordTransactionAction"/>
|
||||||
<separator name="AccountSep1"/>
|
<toolitem name="ToolbarCancelTransaction" action="CancelTransactionAction"/>
|
||||||
<menuitem name="AccountReconcile" verb="ActionsReconcileAction"/>
|
<toolitem name="ToolbarDeleteTransaction" action="DeleteTransactionAction"/>
|
||||||
<menuitem name="AccountTransfer" verb="ActionsTransferAction"/>
|
<toolitem name="ToolbarDuplicateTransaction" action="DuplicateTransactionAction"/>
|
||||||
<menuitem name="AccountStockSplit" verb="ActionsStockSplitAction"/>
|
</placeholder>
|
||||||
<separator name="AccountSep2"/>
|
</toolbar>
|
||||||
<menuitem name="AccountNewAccount" verb="FileNewAccountAction"/>
|
</ui>
|
||||||
<menuitem name="AccountDeleteAccount" verb="EditDeleteAccountAction"/>
|
|
||||||
<separator name="AccountSep3"/>
|
|
||||||
<submenu name="ScrubMenu" verb="ScrubMenuAction">
|
|
||||||
<menuitem name="Scrub" verb="ScrubAction"/>
|
|
||||||
<menuitem name="ScrubSub" verb="ScrubSubAction"/>
|
|
||||||
<menuitem name="ScrubAll" verb="ScrubAllAction"/>
|
|
||||||
</submenu>
|
|
||||||
<separator name="AccountSep4"/>
|
|
||||||
<menuitem name="AccountViewOptions" verb="EditAccountViewOptionsAction"/>
|
|
||||||
</popup>
|
|
||||||
</popups-->
|
|
||||||
<dockitem name="DefaultToolbar">
|
|
||||||
<placeholder name="DefaultToolbarPlaceholder">
|
|
||||||
<separator name="ToolbarSep2"/>
|
|
||||||
<toolitem name="ToolbarRecordTransaction" verb="RecordTransactionAction"/>
|
|
||||||
<toolitem name="ToolbarCancelTransaction" verb="CancelTransactionAction"/>
|
|
||||||
<toolitem name="ToolbarDeleteTransaction" verb="DeleteTransactionAction"/>
|
|
||||||
<toolitem name="ToolbarDuplicateTransaction" verb="DuplicateTransactionAction"/>
|
|
||||||
</placeholder>
|
|
||||||
</dockitem>
|
|
||||||
</Root>
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<Root>
|
<ui>
|
||||||
<menu>
|
<menubar>
|
||||||
<submenu name="Tools" verb="ToolsAction">
|
<menu name="Tools" action="ToolsAction">
|
||||||
<placeholder name="ToolsPlaceholder">
|
<placeholder name="ToolsPlaceholder">
|
||||||
<menuitem name="ToolsGeneralLedger" verb="ToolsGeneralLedgerAction"/>
|
<menuitem name="ToolsGeneralLedger" action="ToolsGeneralLedgerAction"/>
|
||||||
</placeholder>
|
</placeholder>
|
||||||
</submenu>
|
</menu>
|
||||||
</menu>
|
</menubar>
|
||||||
</Root>
|
</ui>
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
<Root>
|
<ui>
|
||||||
<menu>
|
<menubar>
|
||||||
<submenu name="File" verb="FileAction">
|
<menu name="File" action="FileAction">
|
||||||
<submenu name="FileImport" verb="FileImportAction">
|
<menu name="FileImport" action="FileImportAction">
|
||||||
<placeholder name="FileImportPlaceholder">
|
<placeholder name="FileImportPlaceholder">
|
||||||
<menuitem name="FileQIFImport" verb="QIFImportAction"/>
|
<menuitem name="FileQIFImport" action="QIFImportAction"/>
|
||||||
</placeholder>
|
</placeholder>
|
||||||
</submenu>
|
</menu>
|
||||||
</submenu>
|
</menu>
|
||||||
</menu>
|
</menubar>
|
||||||
</Root>
|
</ui>
|
||||||
|
|||||||
Reference in New Issue
Block a user