Bug #310567: Add menu item to shift transaction forward in sorting order

Patch by Steven N. Severinghaus:
For me, it would be sufficient to have keyboard shortcuts to increment and
decrement the entry time of the transaction by one second. This is essentially
what I have to do when I edit the XAC file manually. If hidden functionality
isn't acceptable, we could add "Shift forward" and "Shift backward" items under
the "Transaction" menu.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@18427 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Christian Stimming 2009-11-20 19:57:33 +00:00
parent b647677f1b
commit 9eb0192147
2 changed files with 33 additions and 0 deletions

View File

@ -126,6 +126,7 @@ static void gnc_plugin_page_register_cmd_paste_transaction (GtkAction *action, G
static void gnc_plugin_page_register_cmd_void_transaction (GtkAction *action, GncPluginPageRegister *plugin_page);
static void gnc_plugin_page_register_cmd_unvoid_transaction (GtkAction *action, GncPluginPageRegister *plugin_page);
static void gnc_plugin_page_register_cmd_reverse_transaction (GtkAction *action, GncPluginPageRegister *plugin_page);
static void gnc_plugin_page_register_cmd_shift_transaction_forward (GtkAction *action, GncPluginPageRegister *plugin_page);
static void gnc_plugin_page_register_cmd_view_sort_by (GtkAction *action, GncPluginPageRegister *plugin_page);
static void gnc_plugin_page_register_cmd_view_filter_by (GtkAction *action, GncPluginPageRegister *plugin_page);
static void gnc_plugin_page_register_cmd_style_changed (GtkAction *action, GtkRadioAction *current, GncPluginPageRegister *plugin_page);
@ -222,6 +223,8 @@ static GtkActionEntry gnc_plugin_page_register_actions [] =
G_CALLBACK (gnc_plugin_page_register_cmd_unvoid_transaction) },
{ "ReverseTransactionAction", NULL, N_("Add _Reversing Transaction"), NULL, NULL,
G_CALLBACK (gnc_plugin_page_register_cmd_reverse_transaction) },
{ "ShiftTransactionForwardAction", NULL, N_("_Shift Transaction Forward"), NULL, NULL,
G_CALLBACK (gnc_plugin_page_register_cmd_shift_transaction_forward) },
/* View menu */
@ -2149,6 +2152,35 @@ gnc_plugin_page_register_cmd_reverse_transaction (GtkAction *action,
LEAVE(" ");
}
static void
gnc_plugin_page_register_cmd_shift_transaction_forward (GtkAction *action,
GncPluginPageRegister *page)
{
GncPluginPageRegisterPrivate *priv;
SplitRegister *reg;
GNCSplitReg *gsr;
Transaction *trans, *new_trans;
Timespec entered;
ENTER("(action %p, page %p)", action, page);
g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
reg = gnc_ledger_display_get_split_register(priv->ledger);
trans = gnc_split_register_get_current_trans(reg);
if (trans == NULL)
return;
qof_event_suspend();
xaccTransGetDatePostedTS(trans, &entered);
xaccTransSetDatePostedSecs(trans, entered.tv_sec+1);
qof_event_resume();
LEAVE(" ");
}
static void
gnc_plugin_page_register_cmd_view_sort_by (GtkAction *action,

View File

@ -20,6 +20,7 @@
<menuitem name="VoidTransaction" action="VoidTransactionAction"/>
<menuitem name="UnvoidTransaction" action="UnvoidTransactionAction"/>
<menuitem name="ReverseTransaction" action="ReverseTransactionAction"/>
<menuitem name="ShiftTransactionForward" action="ShiftTransactionForwardAction"/>
</menu>
<menu name="View" action="ViewAction">