r18427 - gnucash/trunk/src/gnome - Bug #310567: Add menu item to shift transaction forward in sorting order

Christian Stimming cstim at code.gnucash.org
Fri Nov 20 14:57:34 EST 2009


Author: cstim
Date: 2009-11-20 14:57:33 -0500 (Fri, 20 Nov 2009)
New Revision: 18427
Trac: http://svn.gnucash.org/trac/changeset/18427

Modified:
   gnucash/trunk/src/gnome/gnc-plugin-page-register.c
   gnucash/trunk/src/gnome/ui/gnc-plugin-page-register-ui.xml
Log:
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.

Modified: gnucash/trunk/src/gnome/gnc-plugin-page-register.c
===================================================================
--- gnucash/trunk/src/gnome/gnc-plugin-page-register.c	2009-11-20 19:57:13 UTC (rev 18426)
+++ gnucash/trunk/src/gnome/gnc-plugin-page-register.c	2009-11-20 19:57:33 UTC (rev 18427)
@@ -126,6 +126,7 @@
 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 @@
 	  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,7 +2152,36 @@
   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,
 					   GncPluginPageRegister *page)

Modified: gnucash/trunk/src/gnome/ui/gnc-plugin-page-register-ui.xml
===================================================================
--- gnucash/trunk/src/gnome/ui/gnc-plugin-page-register-ui.xml	2009-11-20 19:57:13 UTC (rev 18426)
+++ gnucash/trunk/src/gnome/ui/gnc-plugin-page-register-ui.xml	2009-11-20 19:57:33 UTC (rev 18427)
@@ -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">



More information about the gnucash-changes mailing list