Changes for account plugin pages

This commit is contained in:
Robert Fewell 2022-10-28 16:25:10 +01:00
parent b3a24034c8
commit 846dddaf24
3 changed files with 534 additions and 34 deletions

View File

@ -47,6 +47,7 @@
#include "dialog-transfer.h"
#include "dialog-utils.h"
#include "assistant-hierarchy.h"
#include "assistant-stock-transaction.h"
#include "gnc-account-sel.h"
#include "gnc-component-manager.h"
#include "gnc-engine.h"
@ -136,16 +137,14 @@ static GncPluginPage *gnc_plugin_page_account_tree_recreate_page (GtkWidget *win
/* Callbacks */
static void gnc_plugin_page_account_tree_summarybar_position_changed(gpointer prefs, gchar* pref, gpointer user_data);
static gboolean gnc_plugin_page_account_tree_button_press_cb (GtkWidget *widget,
GdkEventButton *event,
GncPluginPage *page);
static void gnc_plugin_page_account_tree_double_click_cb (GtkTreeView *treeview,
GtkTreePath *path,
GtkTreeViewColumn *col,
GncPluginPageAccountTree *page);
static gboolean gnc_plugin_page_account_tree_button_press_cb (GtkWidget *widget, GdkEventButton *event, GncPluginPage *page);
static void gnc_plugin_page_account_tree_double_click_cb (GtkTreeView *treeview,
GtkTreePath *path,
GtkTreeViewColumn *col,
GncPluginPageAccountTree *page);
static void gnc_plugin_page_account_tree_selection_changed_cb (GtkTreeSelection *selection,
GncPluginPageAccountTree *page);
GncPluginPageAccountTree *page);
void gppat_populate_trans_mas_list(GtkToggleButton *sa_mrb, GtkWidget *dialog);
void gppat_set_insensitive_iff_rb_active(GtkWidget *widget, GtkToggleButton *b);
@ -165,6 +164,7 @@ static void gnc_plugin_page_account_tree_cmd_refresh (GSimpleAction *simple, GVa
static void gnc_plugin_page_account_tree_cmd_autoclear (GSimpleAction *simple, GVariant *paramter, gpointer user_data);
static void gnc_plugin_page_account_tree_cmd_transfer (GSimpleAction *simple, GVariant *paramter, gpointer user_data);
static void gnc_plugin_page_account_tree_cmd_stock_split (GSimpleAction *simple, GVariant *paramter, gpointer user_data);
static void gnc_plugin_page_account_tree_cmd_stock_assistant (GSimpleAction *simple, GVariant *paramter, gpointer user_data);
static void gnc_plugin_page_account_tree_cmd_edit_tax_options (GSimpleAction *simple, GVariant *paramter, gpointer user_data);
static void gnc_plugin_page_account_tree_cmd_lots (GSimpleAction *simple, GVariant *paramter, gpointer user_data);
static void gnc_plugin_page_account_tree_cmd_scrub (GSimpleAction *simple, GVariant *paramter, gpointer user_data);
@ -189,8 +189,8 @@ static GActionEntry gnc_plugin_page_account_tree_actions [] =
{
{ "FileNewAccountAction", gnc_plugin_page_account_tree_cmd_new_account, NULL, NULL, NULL },
{ "FileAddAccountHierarchyAssistantAction", gnc_plugin_page_account_tree_cmd_file_new_hierarchy, NULL, NULL, NULL },
{ "FileOpenAccountAction", gnc_plugin_page_account_tree_cmd_open_account, NULL, NULL, NULL },
{ "FileOpenSubaccountsAction", gnc_plugin_page_account_tree_cmd_open_subaccounts, NULL, NULL, NULL },
{ "EditOpenAccountAction", gnc_plugin_page_account_tree_cmd_open_account, NULL, NULL, NULL },
{ "EditOpenSubaccountsAction", gnc_plugin_page_account_tree_cmd_open_subaccounts, NULL, NULL, NULL },
{ "EditEditAccountAction", gnc_plugin_page_account_tree_cmd_edit_account, NULL, NULL, NULL },
{ "EditDeleteAccountAction", gnc_plugin_page_account_tree_cmd_delete_account, NULL, NULL, NULL },
{ "EditCascadeAccountAction", gnc_plugin_page_account_tree_cmd_cascade_account_properties, NULL, NULL, NULL },
@ -204,6 +204,7 @@ static GActionEntry gnc_plugin_page_account_tree_actions [] =
{ "ActionsAutoClearAction", gnc_plugin_page_account_tree_cmd_autoclear, NULL, NULL, NULL },
{ "ActionsTransferAction", gnc_plugin_page_account_tree_cmd_transfer, NULL, NULL, NULL },
{ "ActionsStockSplitAction", gnc_plugin_page_account_tree_cmd_stock_split, NULL, NULL, NULL },
{ "ActionsStockAssistantAction", gnc_plugin_page_account_tree_cmd_stock_assistant, NULL, NULL, NULL },
{ "ActionsLotsAction", gnc_plugin_page_account_tree_cmd_lots, NULL, NULL, NULL },
{ "ScrubAction", gnc_plugin_page_account_tree_cmd_scrub, NULL, NULL, NULL },
{ "ScrubSubAction", gnc_plugin_page_account_tree_cmd_scrub_sub, NULL, NULL, NULL },
@ -224,11 +225,11 @@ static GncDisplayItem gnc_plugin_page_account_tree_display_items [] =
N_("Extend the current book by merging with new account type categories")
},
{
"FileOpenAccountAction", GNC_ICON_OPEN_ACCOUNT, N_("Open _Account"), NULL,
"EditOpenAccountAction", GNC_ICON_OPEN_ACCOUNT, N_("Open _Account"), NULL,
N_("Open the selected account")
},
{
"FileOpenSubaccountsAction", GNC_ICON_OPEN_ACCOUNT, N_("Open _SubAccounts"), NULL,
"EditOpenSubaccountsAction", GNC_ICON_OPEN_ACCOUNT, N_("Open _SubAccounts"), NULL,
N_("Open the selected account and all its subaccounts")
},
/* Edit menu */
@ -313,6 +314,25 @@ static GncDisplayItem gnc_plugin_page_account_tree_display_items [] =
/** The number of display items provided by this plugin. */
static guint gnc_plugin_page_account_tree_n_display_items = G_N_ELEMENTS(gnc_plugin_page_account_tree_display_items);
/** The default menu items that need to be add to the menu */
static const gchar *gnc_plugin_load_ui_items [] =
{
"EditPlaceholder1",
"EditPlaceholder2",
"EditPlaceholder3",
"EditPlaceholder5",
"ViewPlaceholder1",
"ViewPlaceholder4",
"ActionsPlaceholder4",
"ActionsPlaceholder5",
"ActionsPlaceholder6",
NULL,
};
/** Actions that require an account to be selected before they are
* enabled, and the book is in read-write mode. */
static const gchar *actions_requiring_account_rw[] =
@ -337,12 +357,18 @@ static const gchar *actions_requiring_subaccounts_rw[] =
* enabled. Those actions can be selected even if the book is in readonly mode. */
static const gchar *actions_requiring_account_always[] =
{
"FileOpenAccountAction",
"FileOpenSubaccountsAction",
"EditOpenAccountAction",
"EditOpenSubaccountsAction",
"ActionsLotsAction",
NULL
};
static const gchar* actions_requiring_priced_account[] =
{
"ActionsStockAssistantAction",
NULL
};
/* This is the list of actions which are switched inactive in a read-only book. */
static const gchar* readonly_inactive_actions[] =
{
@ -363,8 +389,8 @@ static const gchar* readonly_inactive_actions[] =
/** Short labels for use on the toolbar buttons. */
static action_toolbar_labels toolbar_labels[] =
{
{ "FileOpenAccountAction", N_("Open") },
{ "EditEditAccountAction", N_("Edit") },
{ "FileOpenAccountAction", N_("Open") },
{ "EditEditAccountAction", N_("Edit") },
{ "FileNewAccountAction", N_("New") },
{ "EditDeleteAccountAction", N_("Delete") },
{ NULL, NULL },
@ -465,7 +491,7 @@ gnc_plugin_page_account_tree_class_init (GncPluginPageAccountTreeClass *klass)
static void
gnc_plugin_page_account_tree_init (GncPluginPageAccountTree *plugin_page)
{
GSimpleActionGroup *simple_action_group;
GSimpleActionGroup *simple_action_group = NULL;
GncPluginPageAccountTreePrivate *priv;
GncPluginPage *parent;
const GList *page_list;
@ -475,24 +501,24 @@ gnc_plugin_page_account_tree_init (GncPluginPageAccountTree *plugin_page)
/* Init parent declared variables */
parent = GNC_PLUGIN_PAGE(plugin_page);
g_object_set(G_OBJECT(plugin_page),
"page-name", _("Accounts"),
"page-uri", "default:",
"ui-description", "gnc-plugin-page-account-tree.ui",
NULL);
g_object_set (G_OBJECT(plugin_page),
"page-name", _("Accounts"),
"page-uri", "default:",
"ui-description", "gnc-plugin-page-account-tree.ui",
NULL);
g_signal_connect (G_OBJECT (plugin_page), "selected",
G_CALLBACK (gnc_plugin_page_account_tree_selected), plugin_page);
/* change me when the system supports multiple books */
gnc_plugin_page_add_book(parent, gnc_get_current_book());
gnc_plugin_page_add_book (parent, gnc_get_current_book());
/* Is this the first accounts page? */
page_list =
gnc_gobject_tracking_get_list(GNC_PLUGIN_PAGE_ACCOUNT_TREE_NAME);
gnc_gobject_tracking_get_list (GNC_PLUGIN_PAGE_ACCOUNT_TREE_NAME);
if (!page_list || plugin_page == page_list->data)
{
g_object_set_data(G_OBJECT(plugin_page), PLUGIN_PAGE_IMMUTABLE,
GINT_TO_POINTER(1));
g_object_set_data (G_OBJECT(plugin_page), PLUGIN_PAGE_IMMUTABLE,
GINT_TO_POINTER(1));
}
/* Create menu and toolbar information */
@ -620,6 +646,20 @@ gnc_plugin_page_account_tree_focus_widget (GncPluginPage *account_plugin_page)
GncPluginPageAccountTreePrivate *priv = GNC_PLUGIN_PAGE_ACCOUNT_TREE_GET_PRIVATE(account_plugin_page);
GtkTreeView *view = GTK_TREE_VIEW(priv->tree_view);
/* Disable the Transaction Menu */
GAction *action = gnc_main_window_find_action (GNC_MAIN_WINDOW(account_plugin_page->window), "TransactionAction");
g_simple_action_set_enabled (G_SIMPLE_ACTION(action), FALSE);
/* Disable the Schedule menu */
action = gnc_main_window_find_action (GNC_MAIN_WINDOW(account_plugin_page->window), "ScheduledAction");
g_simple_action_set_enabled (G_SIMPLE_ACTION(action), FALSE);
gnc_main_window_update_menu (GNC_MAIN_WINDOW(account_plugin_page->window), account_plugin_page,
gnc_plugin_load_ui_items);
/* Disable the FilePrintAction */
action = gnc_main_window_find_action (GNC_MAIN_WINDOW(account_plugin_page->window), "FilePrintAction");
g_simple_action_set_enabled (G_SIMPLE_ACTION(action), FALSE);
if (!gtk_widget_is_focus (GTK_WIDGET(view)))
gtk_widget_grab_focus (GTK_WIDGET(view));
}
@ -658,7 +698,7 @@ gnc_plugin_page_account_editing_started_cd (gpointer various, GncPluginPageRegis
{
GncPluginPage *plugin_page = GNC_PLUGIN_PAGE(page);
GAction *action = gnc_main_window_find_action (GNC_MAIN_WINDOW(plugin_page->window),
"EditDeleteAccountAction");
"EditDeleteAccountAction");
if (action != NULL)
g_simple_action_set_enabled (G_SIMPLE_ACTION(action), FALSE);
@ -669,7 +709,7 @@ gnc_plugin_page_account_editing_finished_cb (gpointer various, GncPluginPageRegi
{
GncPluginPage *plugin_page = GNC_PLUGIN_PAGE(page);
GAction *action = gnc_main_window_find_action (GNC_MAIN_WINDOW(plugin_page->window),
"EditDeleteAccountAction");
"EditDeleteAccountAction");
if (action != NULL)
g_simple_action_set_enabled (G_SIMPLE_ACTION(action), TRUE);
@ -836,12 +876,13 @@ gnc_plugin_page_account_tree_destroy_widget (GncPluginPage *plugin_page)
LEAVE("widget destroyed");
}
static void update_inactive_actions(GncPluginPage *plugin_page)
static void
update_inactive_actions (GncPluginPage *plugin_page)
{
GncPluginPageAccountTreePrivate *priv;
GSimpleActionGroup *simple_action_group;
GSimpleActionGroup *simple_action_group = NULL;
Account *account = NULL;
gboolean allow_write = !qof_book_is_readonly(gnc_get_current_book());
gboolean allow_write = !qof_book_is_readonly (gnc_get_current_book());
gboolean has_account = FALSE;
gboolean subaccounts = FALSE;
@ -870,6 +911,8 @@ static void update_inactive_actions(GncPluginPage *plugin_page)
"sensitive", has_account);
gnc_plugin_update_actionsb (simple_action_group, actions_requiring_subaccounts_rw,
"sensitive", allow_write && subaccounts);
gnc_plugin_update_actionsb (simple_action_group, actions_requiring_priced_account,
"sensitive", account && xaccAccountIsPriced (account));
g_signal_emit (plugin_page, plugin_page_signals[ACCOUNT_SELECTED], 0, account);
}
@ -877,7 +920,8 @@ static void update_inactive_actions(GncPluginPage *plugin_page)
* Called when this page is selected.
*
* Update the toolbar button sensitivity. */
static void gnc_plugin_page_account_tree_selected (GObject *object, gpointer user_data)
static void
gnc_plugin_page_account_tree_selected (GObject *object, gpointer user_data)
{
GncPluginPage *plugin_page = GNC_PLUGIN_PAGE (object);
g_return_if_fail (GNC_IS_PLUGIN_PAGE (plugin_page));
@ -1601,7 +1645,7 @@ gnc_plugin_page_account_tree_cmd_delete_account (GSimpleAction *simple,
adopter_match (&adopt.subtrans, GTK_WINDOW (window)))
break;
}
filter = g_object_get_data (G_OBJECT (dialog), DELETE_DIALOG_FILTER);
filter = g_object_get_data (G_OBJECT (dialog), DELETE_DIALOG_FILTER);
gtk_widget_destroy(dialog);
g_list_free(filter);
if (confirm_delete_account (simple, page, adopt.trans.new_account,
@ -1700,7 +1744,8 @@ confirm_delete_account (GSimpleAction *simple, GncPluginPageAccountTree *page,
return response;
}
void do_delete_account (Account* account, Account* saa, Account* sta, Account* ta)
void
do_delete_account (Account* account, Account* saa, Account* sta, Account* ta)
{
GList *acct_list, *ptr;
const GncGUID *guid;
@ -1877,6 +1922,25 @@ gnc_plugin_page_account_tree_cmd_stock_split (GSimpleAction *simple,
gnc_stock_split_dialog (window, account);
}
static void
gnc_plugin_page_account_tree_cmd_stock_assistant (GSimpleAction *simple,
GVariant *paramter,
gpointer user_data)
{
GncPluginPageAccountTree *page = user_data;
Account *account;
GtkWidget *window;
ENTER ("(action %p, page %p)", simple, page);
g_return_if_fail (GNC_IS_PLUGIN_PAGE_REGISTER (page));
account = gnc_plugin_page_account_tree_get_current_account (page);
window = GNC_PLUGIN_PAGE(page)->window;
gnc_stock_transaction_assistant (window, account);
LEAVE (" ");
}
static void
gnc_plugin_page_account_tree_cmd_edit_tax_options (GSimpleAction *simple,
GVariant *paramter,

View File

@ -18,6 +18,8 @@
<file>ui/gnc-plugin-register.ui</file>
<file>ui/gnc-plugin-report-system.ui</file>
<file>ui/gnc-plugin-page-account-tree.ui</file>
<file>ui/gnc-plugin-ofx.ui</file>
<file>ui/gnc-plugin-aqbanking.ui</file>

View File

@ -0,0 +1,434 @@
<?xml version="1.0"?>
<interface>
<menu id="EditPlaceholder1">
<item>
<attribute name="label" translatable="yes">_Edit Account</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.EditEditAccountAction</attribute>
<attribute name="accel">&lt;Primary&gt;e</attribute>
<attribute name="tooltip" translatable="yes">Edit the selected account</attribute>
<attribute name="temp" translatable="no">yes</attribute>
</item>
<item>
<attribute name="label" translatable="yes">_Delete Account</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.EditDeleteAccountAction</attribute>
<attribute name="accel">Delete</attribute>
<attribute name="tooltip" translatable="yes">Edit the selected account</attribute>
<attribute name="temp" translatable="no">yes</attribute>
</item>
<item>
<attribute name="label" translatable="yes">F_ind Account</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.EditFindAccountAction</attribute>
<attribute name="accel">&lt;Primary&gt;i</attribute>
<attribute name="tooltip" translatable="yes">Find an account</attribute>
<attribute name="temp" translatable="no">yes</attribute>
</item>
<item>
<attribute name="label" translatable="yes">_Cascade Account Properties...</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.EditCascadeAccountAction</attribute>
<attribute name="tooltip" translatable="yes">Cascade selected properties for account</attribute>
<attribute name="temp" translatable="no">yes</attribute>
</item>
<item>
<attribute name="label" translatable="yes">_Renumber Subaccounts...</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.EditRenumberSubaccountsAction</attribute>
<attribute name="tooltip" translatable="yes">Renumber the children of the selected account</attribute>
<attribute name="temp" translatable="no">yes</attribute>
</item>
</menu>
<menu id="EditPlaceholder2">
<item>
<attribute name="label" translatable="yes">Open _Account</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.EditOpenAccountAction</attribute>
<attribute name="tooltip" translatable="yes">Open the selected account</attribute>
<attribute name="temp" translatable="no">yes</attribute>
</item>
<item>
<attribute name="label" translatable="yes">Open _SubAccounts</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.EditOpenSubaccountsAction</attribute>
<attribute name="tooltip" translatable="yes">Open the selected account and all its subaccounts</attribute>
<attribute name="temp" translatable="no">yes</attribute>
</item>
</menu>
<menu id="EditPlaceholder3">
<item>
<attribute name="label" translatable="yes">_Find...</attribute>
<attribute name="action">gnc-plugin-basic-commands-actions.EditFindTransactionsAction</attribute>
<attribute name="accel">&lt;Primary&gt;f</attribute>
<attribute name="tooltip" translatable="yes">Find transactions with a search</attribute>
<attribute name="temp" translatable="no">yes</attribute>
</item>
</menu>
<menu id="EditPlaceholder5">
<item>
<!-- Translators: remember to reuse this translation in dialog-account.glade -->
<attribute name="label" translatable="yes">Ta_x Report Options</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.EditTaxOptionsAction</attribute>
<!-- Translators: currently implemented are, US: income tax and DE: VAT, So adjust this string -->
<attribute name="tooltip" translatable="yes">Setup relevant accounts for tax reports, e.g. US income tax</attribute>
<attribute name="temp" translatable="no">yes</attribute>
</item>
</menu>
<menu id="ViewPlaceholder1">
<item>
<attribute name="label" translatable="yes">_Filter By...</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.ViewFilterByAction</attribute>
<attribute name="temp" translatable="no">yes</attribute>
</item>
</menu>
<menu id="ViewPlaceholder4">
<item>
<attribute name="label" translatable="yes">_Refresh</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.ViewRefreshAction</attribute>
<attribute name="accel">&lt;Primary&gt;r</attribute>
<attribute name="tooltip" translatable="yes">Refresh this window</attribute>
<attribute name="temp" translatable="no">yes</attribute>
</item>
</menu>
<menu id="ActionsPlaceholder4">
<item>
<attribute name="label" translatable="yes">New _Account...</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.FileNewAccountAction</attribute>
<attribute name="tooltip" translatable="yes">Create a new Account</attribute>
<attribute name="temp" translatable="no">yes</attribute>
</item>
<item>
<attribute name="label" translatable="yes">New Account _Hierarchy...</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.FileAddAccountHierarchyAssistantAction</attribute>
<attribute name="tooltip" translatable="yes">Extend the current book by merging with new account type categories</attribute>
<attribute name="temp" translatable="no">yes</attribute>
</item>
</menu>
<menu id="ActionsPlaceholder5">
<item>
<attribute name="label" translatable="yes">_Transfer...</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.ActionsTransferAction</attribute>
<attribute name="accel">&lt;Primary&gt;t</attribute>
<attribute name="tooltip" translatable="yes">Transfer funds from one account to another</attribute>
<attribute name="temp" translatable="no">yes</attribute>
</item>
<item>
<attribute name="label" translatable="yes">_Reconcile...</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.ActionsReconcileAction</attribute>
<attribute name="tooltip" translatable="yes">Reconcile the selected account</attribute>
<attribute name="temp" translatable="no">yes</attribute>
</item>
<item>
<attribute name="label" translatable="yes">_Auto-clear...</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.ActionsAutoClearAction</attribute>
<attribute name="tooltip" translatable="yes">Automatically clear individual transactions, so as to reach a certain cleared amount</attribute>
<attribute name="temp" translatable="no">yes</attribute>
</item>
<item>
<attribute name="label" translatable="no">Stock Ass_istant</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.ActionsStockAssistantAction</attribute>
<attribute name="tooltip" translatable="yes">Stock Assistant</attribute>
<attribute name="temp" translatable="no">yes</attribute>
</item>
<item>
<attribute name="label" translatable="yes">Stoc_k Split...</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.ActionsStockSplitAction</attribute>
<attribute name="tooltip" translatable="yes">Record a stock split or a stock merger</attribute>
<attribute name="temp" translatable="no">yes</attribute>
</item>
<item>
<attribute name="label" translatable="yes">View _Lots...</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.ActionsLotsAction</attribute>
<attribute name="tooltip" translatable="yes">Bring up the lot viewer/editor window</attribute>
<attribute name="temp" translatable="no">yes</attribute>
</item>
</menu>
<menu id="ActionsPlaceholder6">
<submenu>
<attribute name="label" translatable="yes">_Check &amp; Repair</attribute>
<attribute name="action">mainwin.ScrubMenuAction</attribute>
<attribute name="temp" translatable="no">yes</attribute>
<item>
<attribute name="label" translatable="yes">Check &amp; Repair A_ccount</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.ScrubAction</attribute>
<attribute name="tooltip" translatable="yes">Check for and repair unbalanced transactions and orphan splits in this account</attribute>
<attribute name="tempx" translatable="no">yes</attribute>
</item>
<item>
<attribute name="label" translatable="yes">Check &amp; Repair Su_baccounts</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.ScrubSubAction</attribute>
<attribute name="tooltip" translatable="yes">Check for and repair unbalanced transactions and orphan splits in this account and its subaccounts</attribute>
<attribute name="tempx" translatable="no">yes</attribute>
</item>
<item>
<attribute name="label" translatable="no">Check &amp; Repair A_ll</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.ScrubAllAction</attribute>
<attribute name="tooltip" translatable="yes">Check for and repair unbalanced transactions and orphan splits in all accounts</attribute>
<attribute name="tempx" translatable="no">yes</attribute>
</item>
</submenu>
</menu>
<menu id="mainwin-popup">
<section>
<item>
<attribute name="label" translatable="yes">_Filter By...</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.ViewFilterByAction</attribute>
<attribute name="tooltip" translatable="yes">Filter accounts</attribute>
</item>
<item>
<attribute name="label" translatable="yes">Re_name Page</attribute>
<attribute name="action">mainwin.ActionsRenamePageAction</attribute>
<attribute name="tooltip" translatable="yes">Rename this page</attribute>
</item>
</section>
<section>
<item>
<attribute name="label" translatable="yes">Open _Account</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.EditOpenAccountAction</attribute>
<attribute name="tooltip" translatable="yes">Open the selected account</attribute>
</item>
<item>
<attribute name="label" translatable="yes">Open _SubAccounts</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.EditOpenSubaccountsAction</attribute>
<attribute name="tooltip" translatable="yes">Open the selected account and all its subaccounts</attribute>
</item>
<item>
<attribute name="label" translatable="yes">Edit _Account</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.EditEditAccountAction</attribute>
<attribute name="tooltip" translatable="yes">Edit the selected account</attribute>
</item>
<item>
<attribute name="label" translatable="yes">_Cascade Account Properties...</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.EditCascadeAccountAction</attribute>
<attribute name="tooltip" translatable="yes">Cascade selected properties for account</attribute>
</item>
<item>
<attribute name="label" translatable="yes">F_ind Account</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.EditFindAccountPopupAction</attribute>
<attribute name="tooltip" translatable="yes">Find an account</attribute>
</item>
</section>
<section>
<item>
<attribute name="label" translatable="yes">_Reconcile...</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.ActionsReconcileAction</attribute>
<attribute name="tooltip" translatable="yes">Reconcile the selected account</attribute>
</item>
<item>
<attribute name="label" translatable="yes">_Auto-clear...</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.ActionsAutoClearAction</attribute>
<attribute name="tooltip" translatable="yes">Automatically clear individual transactions, given a cleared amount</attribute>
</item>
<item>
<attribute name="label" translatable="yes">_Transfer...</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.ActionsTransferAction</attribute>
<attribute name="tooltip" translatable="yes">Transfer funds from one account to another</attribute>
</item>
<item>
<attribute name="label" translatable="yes">Stoc_k Split...</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.ActionsStockSplitAction</attribute>
<attribute name="tooltip" translatable="yes">Record a stock split or a stock merger</attribute>
</item>
<item>
<attribute name="label" translatable="yes">View _Lots...</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.ActionsLotsAction</attribute>
<attribute name="tooltip" translatable="yes">Bring up the lot viewer/editor window</attribute>
</item>
</section>
<section>
<item>
<attribute name="label" translatable="yes">New _Account...</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.FileNewAccountAction</attribute>
<attribute name="tooltip" translatable="yes">Create a new Account</attribute>
</item>
<item>
<attribute name="label" translatable="yes">_Delete Account...</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.EditDeleteAccountAction</attribute>
<attribute name="tooltip" translatable="yes">Delete selected account</attribute>
</item>
</section>
<section>
<submenu>
<attribute name="label" translatable="yes">_Check &amp; Repair</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.ScrubMenuAction</attribute>
<item>
<attribute name="label" translatable="yes">_Check &amp; Repair A_ccount</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.ScrubAction</attribute>
<attribute name="tooltip" translatable="yes">Check for and repair unbalanced transactions and orphan splits in this account</attribute>
</item>
<item>
<attribute name="label" translatable="yes">Check &amp; Repair Su_baccounts</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.ScrubSubAction</attribute>
<attribute name="tooltip" translatable="yes">Check for and repair unbalanced transactions and orphan splits in this account and its subaccounts</attribute>
</item>
<item>
<attribute name="label" translatable="yes">Check &amp; Repair A_ll</attribute>
<attribute name="action">GncPluginPageAccountTreeActions.ScrubAllAction</attribute>
<attribute name="tooltip" translatable="yes">Check for and repair unbalanced transactions and orphan splits in all accounts</attribute>
</item>
</submenu>
</section>
</menu>
<object class="GtkToolbar" id="mainwin-toolbar">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkToolButton" id="but1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">_Save</property>
<property name="action-name">gnc-plugin-basic-commands-actions.FileSaveAction</property>
<property name="tooltip-text" translatable="yes">Save the current file</property>
<property name="use-underline">True</property>
<property name="icon-name">document-save</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="but2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">_Close</property>
<property name="action-name">mainwin.FileCloseAction</property>
<property name="tooltip-text" translatable="yes">Close the currently active page</property>
<property name="use-underline">True</property>
<property name="icon-name">window-close</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkSeparatorToolItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="but2a">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">New _Invoice...</property>
<property name="action-name">gnc-plugin-business-actions.ToolbarNewInvoiceAction</property>
<property name="tooltip-text" translatable="yes">Open the New Invoice dialog</property>
<property name="use-underline">True</property>
<property name="icon-name">gnc-invoice-new</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkSeparatorToolItem" id="extra_separator">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="but3">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Open _Account</property>
<property name="action-name">GncPluginPageAccountTreeActions.EditOpenAccountAction</property>
<property name="tooltip-text" translatable="yes">Open the selected account</property>
<property name="use-underline">True</property>
<property name="icon-name">gnc-account-open</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="but4">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Edit _Account</property>
<property name="action-name">GncPluginPageAccountTreeActions.EditEditAccountAction</property>
<property name="tooltip-text" translatable="yes">Edit the selected account</property>
<property name="use-underline">True</property>
<property name="icon-name">gnc-account-edit</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkSeparatorToolItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="but5">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">New _Account...</property>
<property name="action-name">GncPluginPageAccountTreeActions.FileNewAccountAction</property>
<property name="tooltip-text" translatable="yes">Create a new Account</property>
<property name="use-underline">True</property>
<property name="icon-name">gnc-account-new</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="but6">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">_Delete Account...</property>
<property name="action-name">GncPluginPageAccountTreeActions.EditDeleteAccountAction</property>
<property name="tooltip-text" translatable="yes">Delete selected account</property>
<property name="use-underline">True</property>
<property name="icon-name">gnc-account-delete</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
</object>
</interface>