Select account if Tax Options dialog opened from Register

If the Tax options dialog is opened from a register the tax dialog will
preselect the account associated with the register.
This commit is contained in:
Robert Fewell 2020-09-29 11:04:35 +01:00
parent 511203512a
commit 7c7cd65758
4 changed files with 67 additions and 1 deletions

View File

@ -193,6 +193,8 @@ static void gnc_plugin_page_register_cmd_find_account (GtkAction* action,
GncPluginPageRegister* plugin_page);
static void gnc_plugin_page_register_cmd_find_transactions (GtkAction* action,
GncPluginPageRegister* plugin_page);
static void gnc_plugin_page_register_cmd_edit_tax_options (GtkAction* action,
GncPluginPageRegister* plugin_page);
static void gnc_plugin_page_register_cmd_cut_transaction (GtkAction* action,
GncPluginPageRegister* plugin_page);
static void gnc_plugin_page_register_cmd_copy_transaction (GtkAction* action,
@ -363,6 +365,18 @@ static GtkActionEntry gnc_plugin_page_register_actions [] =
N_ ("Find transactions with a search"),
G_CALLBACK (gnc_plugin_page_register_cmd_find_transactions)
},
{
"EditTaxOptionsAction", NULL,
/* Translators: remember to reuse this *
* translation in dialog-account.glade */
N_("Ta_x Report Options"), NULL,
/* Translators: currently implemented are *
* US: income tax and *
* DE: VAT *
* So adjust this string */
N_("Setup relevant accounts for tax reports, e.g. US income tax"),
G_CALLBACK (gnc_plugin_page_register_cmd_edit_tax_options)
},
/* Transaction menu */
@ -3810,7 +3824,6 @@ gnc_plugin_page_register_cmd_find_account (GtkAction* action,
}
static void
gnc_plugin_page_register_cmd_find_transactions (GtkAction* action,
GncPluginPageRegister* page)
@ -3828,6 +3841,24 @@ gnc_plugin_page_register_cmd_find_transactions (GtkAction* action,
}
static void
gnc_plugin_page_register_cmd_edit_tax_options (GtkAction* action,
GncPluginPageRegister* page)
{
GncPluginPageRegisterPrivate* priv;
GtkWidget *window;
Account* account;
g_return_if_fail (GNC_IS_PLUGIN_PAGE_REGISTER (page));
ENTER ("(action %p, page %p)", action, page);
priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE (page);
window = gnc_plugin_page_get_window (GNC_PLUGIN_PAGE (page));
account = gnc_plugin_page_register_get_account (page);
gnc_tax_info_dialog (window, account);
LEAVE (" ");
}
static void
gnc_plugin_page_register_cmd_cut_transaction (GtkAction* action,
GncPluginPageRegister* plugin_page)

View File

@ -78,6 +78,7 @@
#include "gnc-icons.h"
#include "gnc-prefs.h"
#include "gnc-split-reg2.h"
#include "gnc-ui.h"
#include "gnc-ui-util.h"
#include "gnc-window.h"
#include "gnc-main-window.h"
@ -140,6 +141,7 @@ static void gnc_plugin_page_register2_cmd_paste (GtkAction *action, GncPluginPag
static void gnc_plugin_page_register2_cmd_edit_account (GtkAction *action, GncPluginPageRegister2 *plugin_page);
static void gnc_plugin_page_register2_cmd_find_account (GtkAction *action, GncPluginPageRegister2 *plugin_page);
static void gnc_plugin_page_register2_cmd_find_transactions (GtkAction *action, GncPluginPageRegister2 *plugin_page);
static void gnc_plugin_page_register2_cmd_edit_tax_options (GtkAction *action, GncPluginPageRegister2 *plugin_page);
static void gnc_plugin_page_register2_cmd_cut_transaction (GtkAction *action, GncPluginPageRegister2 *plugin_page);
static void gnc_plugin_page_register2_cmd_copy_transaction (GtkAction *action, GncPluginPageRegister2 *plugin_page);
static void gnc_plugin_page_register2_cmd_paste_transaction (GtkAction *action, GncPluginPageRegister2 *plugin_page);
@ -254,6 +256,18 @@ static GtkActionEntry gnc_plugin_page_register2_actions [] =
N_("Find transactions with a search"),
G_CALLBACK (gnc_plugin_page_register2_cmd_find_transactions)
},
{
"EditTaxOptionsAction", NULL,
/* Translators: remember to reuse this *
* translation in dialog-account.glade */
N_("Ta_x Report Options"), NULL,
/* Translators: currently implemented are *
* US: income tax and *
* DE: VAT *
* So adjust this string */
N_("Setup relevant accounts for tax reports, e.g. US income tax"),
G_CALLBACK (gnc_plugin_page_register2_cmd_edit_tax_options)
},
/* Transaction menu */
@ -2780,6 +2794,25 @@ gnc_plugin_page_register2_cmd_find_transactions (GtkAction *action,
LEAVE(" ");
}
static void
gnc_plugin_page_register2_cmd_edit_tax_options (GtkAction *action,
GncPluginPageRegister2 *page) // this works
{
GncPluginPageRegister2Private *priv;
GtkWidget *window;
Account* account;
g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER2(page));
ENTER("(action %p, page %p)", action, page);
priv = GNC_PLUGIN_PAGE_REGISTER2_GET_PRIVATE(page);
window = gnc_plugin_page_get_window (GNC_PLUGIN_PAGE (page));
account = gnc_plugin_page_register2_get_account (page);
gnc_tax_info_dialog (window, account);
LEAVE(" ");
}
static void
gnc_plugin_page_register2_cmd_cut_transaction (GtkAction *action,
GncPluginPageRegister2 *page) // this works

View File

@ -5,6 +5,7 @@
<menuitem name="EditEditAccount" action="EditEditAccountAction"/>
<menuitem name="EditFindAccount" action="EditFindAccountAction"/>
</placeholder>
<menuitem name="EditTaxOptions" action="EditTaxOptionsAction"/>
</menu>
<menu name="Transaction" action="TransactionAction">

View File

@ -5,6 +5,7 @@
<menuitem name="EditEditAccount" action="EditEditAccountAction"/>
<menuitem name="EditFindAccount" action="EditFindAccountAction"/>
</placeholder>
<menuitem name="EditTaxOptions" action="EditTaxOptionsAction"/>
</menu>
<menu name="Transaction" action="TransactionAction">