[Gnucash-changes] Restore missing commands.

David Hampton hampton at cvs.gnucash.org
Fri Jul 1 18:27:48 EDT 2005


Log Message:
-----------
Restore missing commands.

Tags:
----
gnucash-gnome2-dev

Modified Files:
--------------
    gnucash/src/gnome:
        gnc-plugin-page-register.c
    gnucash/src/gnome/ui:
        gnc-plugin-page-register-ui.xml
        gnc-plugin-page-sxregister-ui.xml

Revision Data
-------------
Index: gnc-plugin-page-register.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome/Attic/gnc-plugin-page-register.c,v
retrieving revision 1.1.2.26
retrieving revision 1.1.2.27
diff -Lsrc/gnome/gnc-plugin-page-register.c -Lsrc/gnome/gnc-plugin-page-register.c -u -r1.1.2.26 -r1.1.2.27
--- src/gnome/gnc-plugin-page-register.c
+++ src/gnome/gnc-plugin-page-register.c
@@ -32,6 +32,7 @@
 #include "gnc-plugin-menu-additions.h"
 #include "gnc-plugin-page-report.h"
 
+#include "dialog-account.h"
 #include "dialog-print-check.h"
 #include "dialog-transfer.h"
 #include "dialog-utils.h"
@@ -42,10 +43,12 @@
 #include "gnc-date-edit.h"
 #include "gnc-gnome-utils.h"
 #include "gnc-gobject-utils.h"
+#include "gnc-gui-query.h"
 #include "gnc-icons.h"
 #include "gnc-split-reg.h"
 #include "gnc-ui-util.h"
 #include "gnc-window.h"
+#include "gnucash-sheet.h"
 #include "lot-viewer.h"
 #include "QueryNew.h"
 #include "window-reconcile.h"
@@ -93,6 +96,16 @@
 
 /* Command callbacks */
 static void gnc_plugin_page_register_cmd_print_check (GtkAction *action, GncPluginPageRegister *plugin_page);
+static void gnc_plugin_page_register_cmd_cut (GtkAction *action, GncPluginPageRegister *plugin_page);
+static void gnc_plugin_page_register_cmd_copy (GtkAction *action, GncPluginPageRegister *plugin_page);
+static void gnc_plugin_page_register_cmd_paste (GtkAction *action, GncPluginPageRegister *plugin_page);
+static void gnc_plugin_page_register_cmd_edit_account (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, GncPluginPageRegister *plugin_page);
+static void gnc_plugin_page_register_cmd_paste_transaction (GtkAction *action, GncPluginPageRegister *plugin_page);
+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_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);
@@ -125,15 +138,37 @@
 {
 	/* Toplevel */
 	{ "FakeToplevel", NULL, "", NULL, NULL, NULL },
-	{ "SelectTransactionsAction", NULL, N_("Select _Transactions"), NULL, NULL, NULL },
-	{ "TransDateRangeAction", NULL, N_("_Date Range"), NULL, NULL, NULL },
-	{ "TransStatusAction", NULL, N_("_Status"), NULL, NULL, NULL },
-	{ "SortOrderAction", NULL, N_("Sort _Order"), NULL, NULL, NULL },
 
 	/* File menu */
 	{ "FilePrintCheckAction", NULL, N_("Print Check"), NULL, NULL,
 	  G_CALLBACK (gnc_plugin_page_register_cmd_print_check) },
 
+	/* Edit menu */
+	{ "EditCutAction", GTK_STOCK_CUT, N_("Cu_t"), NULL,
+	  NULL,
+	  G_CALLBACK (gnc_plugin_page_register_cmd_cut) },
+	{ "EditCopyAction", GTK_STOCK_COPY, N_("_Copy"), NULL,
+	  NULL,
+	  G_CALLBACK (gnc_plugin_page_register_cmd_copy) },
+	{ "EditPasteAction", GTK_STOCK_PASTE, N_("_Paste"), NULL,
+	  NULL,
+	  G_CALLBACK (gnc_plugin_page_register_cmd_paste) },
+	{ "EditEditAccountAction", GNC_STOCK_EDIT_ACCOUNT, N_("Edit Account"), "<control>e",
+	  N_("Edit the selected account"),
+	  G_CALLBACK (gnc_plugin_page_register_cmd_edit_account) },
+	{ "EditCutTransactionAction", NULL, N_("Cut Transaction"), NULL, NULL,
+	  G_CALLBACK (gnc_plugin_page_register_cmd_cut_transaction) },
+	{ "EditCopyTransactionAction", NULL, N_("Copy Transaction"), NULL, NULL,
+	  G_CALLBACK (gnc_plugin_page_register_cmd_copy_transaction) },
+	{ "EditPasteTransactionAction", NULL, N_("Paste Transaction"), NULL, NULL,
+	  G_CALLBACK (gnc_plugin_page_register_cmd_paste_transaction) },
+	{ "EditVoidTransactionAction", NULL, N_("_Void Transaction"), NULL, NULL,
+	  G_CALLBACK (gnc_plugin_page_register_cmd_void_transaction) },
+	{ "EditUnvoidTransactionAction", NULL, N_("_Unvoid Transaction"), NULL, NULL,
+	  G_CALLBACK (gnc_plugin_page_register_cmd_unvoid_transaction) },
+	{ "EditReverseTransactionAction", NULL, N_("_Reverse Transaction"), NULL, NULL,
+	  G_CALLBACK (gnc_plugin_page_register_cmd_reverse_transaction) },
+
 	/* View menu */
 	{ "ViewSortByAction", NULL, N_("_Sort By..."), NULL, NULL,
 	  G_CALLBACK (gnc_plugin_page_register_cmd_view_sort_by) },
@@ -209,6 +244,7 @@
 static guint n_radio_entries_2 = G_N_ELEMENTS (radio_entries_2);
 
 static const gchar *actions_requiring_account[] = {
+	"EditEditAccountAction",
 	"ActionsReconcileAction",
 	"ActionsLotsAction",
 	NULL
@@ -1366,6 +1402,225 @@
 
 
 static void
+gnc_plugin_page_register_cmd_cut (GtkAction *action,
+				  GncPluginPageRegister *page)
+{
+  g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
+
+  ENTER("(action %p, page %p)", action, page);
+  gnucash_register_cut_clipboard(page->priv->gsr->reg);
+  LEAVE("");
+}
+
+
+static void
+gnc_plugin_page_register_cmd_copy (GtkAction *action,
+				   GncPluginPageRegister *page)
+{
+  g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
+
+  ENTER("(action %p, page %p)", action, page);
+  gnucash_register_copy_clipboard(page->priv->gsr->reg);
+  LEAVE("");
+}
+
+
+static void
+gnc_plugin_page_register_cmd_paste (GtkAction *action,
+				    GncPluginPageRegister *page)
+{
+  g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
+
+  ENTER("(action %p, page %p)", action, page);
+  gnucash_register_paste_clipboard(page->priv->gsr->reg);
+  LEAVE("");
+}
+
+
+static void
+gnc_plugin_page_register_cmd_edit_account (GtkAction *action,
+					   GncPluginPageRegister *page)
+{
+  Account *account;
+
+  g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
+
+  ENTER("(action %p, page %p)", action, page);
+  account = gnc_plugin_page_register_get_account (page);
+  if (account)
+    gnc_ui_edit_account_window (account);
+  LEAVE(" ");
+}
+
+
+static void
+gnc_plugin_page_register_cmd_cut_transaction (GtkAction *action,
+					      GncPluginPageRegister *page)
+{
+  SplitRegister *reg;
+
+  g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
+
+  ENTER("(action %p, page %p)", action, page);
+  reg = gnc_ledger_display_get_split_register(page->priv->ledger);
+  gnc_split_register_cut_current(reg);
+  LEAVE(" ");
+}
+
+
+static void
+gnc_plugin_page_register_cmd_copy_transaction (GtkAction *action,
+					       GncPluginPageRegister *page)
+{
+  SplitRegister *reg;
+
+  g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
+
+  ENTER("(action %p, page %p)", action, page);
+  reg = gnc_ledger_display_get_split_register(page->priv->ledger);
+  gnc_split_register_copy_current(reg);
+  LEAVE(" ");
+}
+
+
+static void
+gnc_plugin_page_register_cmd_paste_transaction (GtkAction *action,
+						GncPluginPageRegister *page)
+{
+  SplitRegister *reg;
+
+  g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
+
+  ENTER("(action %p, page %p)", action, page);
+  reg = gnc_ledger_display_get_split_register(page->priv->ledger);
+  gnc_split_register_paste_current(reg);
+  LEAVE(" ");
+}
+
+
+static void
+gnc_plugin_page_register_cmd_void_transaction (GtkAction *action,
+					       GncPluginPageRegister *page)
+{
+  GtkWidget *dialog, *entry;
+  SplitRegister *reg;
+  Transaction *trans;
+  GladeXML *xml;
+  const char *reason;
+  gint result;
+
+  ENTER("(action %p, page %p)", action, page);
+
+  g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
+
+  reg = gnc_ledger_display_get_split_register(page->priv->ledger);
+  trans = gnc_split_register_get_current_trans(reg);
+  if (trans == NULL)
+    return;
+  if (xaccTransHasSplitsInState(trans, VREC)) {
+    gnc_error_dialog(NULL, _("This transaction has already been voided."));
+    return;
+  }
+  if (xaccTransHasReconciledSplits(trans) || xaccTransHasSplitsInState(trans, CREC)) {
+    gnc_error_dialog(NULL, _("You cannot void a transaction with reconciled or cleared splits."));
+    return;
+  }
+
+  xml = gnc_glade_xml_new("register.glade", "Void Transaction");
+  dialog = glade_xml_get_widget(xml, "Void Transaction");
+  entry = glade_xml_get_widget(xml, "reason");
+
+  result = gtk_dialog_run(GTK_DIALOG(dialog));
+  if (result == GTK_RESPONSE_OK) {
+    reason = gtk_entry_get_text(GTK_ENTRY(entry));
+    if (reason == NULL)
+      reason = "";
+    gnc_split_register_void_current_trans(reg, reason);
+  }
+
+  /* All done. Get rid of it. */
+  gtk_widget_destroy(dialog);
+  g_free(xml);
+}
+
+
+static void
+gnc_plugin_page_register_cmd_unvoid_transaction (GtkAction *action,
+						 GncPluginPageRegister *page)
+{
+  SplitRegister *reg;
+  Transaction *trans;
+
+
+  ENTER("(action %p, page %p)", action, page);
+
+  g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
+
+  reg = gnc_ledger_display_get_split_register(page->priv->ledger);
+  trans = gnc_split_register_get_current_trans(reg);
+  if (!xaccTransHasSplitsInState(trans, VREC)) {
+    gnc_error_dialog(NULL, _("This transaction is not voided."));
+    return;
+  }
+  gnc_split_register_unvoid_current_trans(reg);
+  LEAVE(" ");
+}
+
+
+static void
+gnc_plugin_page_register_cmd_reverse_transaction (GtkAction *action,
+						  GncPluginPageRegister *page)
+{
+  SplitRegister *reg;
+  GNCSplitReg *gsr;
+  Transaction *trans, *new_trans;
+  kvp_frame *txn_frame;
+  kvp_value *kvp_val;
+
+
+  ENTER("(action %p, page %p)", action, page);
+
+  g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
+
+  reg = gnc_ledger_display_get_split_register(page->priv->ledger);
+  trans = gnc_split_register_get_current_trans(reg);
+  if (trans == NULL)
+    return;
+
+  txn_frame = xaccTransGetSlots( trans );
+  if ( txn_frame != NULL ) {
+    kvp_val = kvp_frame_get_slot( txn_frame, "reversed-by" );
+    if ( kvp_val ) {
+      // GUID *fromSXId = kvp_value_get_guid( kvp_val );
+      gnc_error_dialog(GNC_PLUGIN_PAGE(page)->window,
+		       _("This transaction has already been reversed."));
+      return;
+    }
+  }
+
+  new_trans = xaccTransClone(trans);
+  xaccTransReverse(new_trans);
+
+  /* Clear transaction level info */
+  xaccTransBeginEdit(new_trans);
+  xaccTransSetDatePostedSecs(new_trans, time(NULL));
+  xaccTransSetDateEnteredSecs(new_trans, time(NULL));
+  xaccTransCommitEdit(new_trans);
+
+  /* Now update the original with a pointer to the new one */
+  xaccTransBeginEdit(trans);
+  kvp_val = kvp_value_new_guid (xaccTransGetGUID(new_trans));
+  kvp_frame_set_slot_nc(txn_frame, "reversed-by", kvp_val);
+  xaccTransCommitEdit(trans);
+
+  /* Now jump to new trans */
+  gsr = gnc_plugin_page_register_get_gsr(GNC_PLUGIN_PAGE(page));
+  gnc_split_reg_jump_to_split(gsr, xaccTransGetSplit(new_trans, 0));
+  LEAVE(" ");
+}
+
+
+static void
 gnc_plugin_page_register_cmd_view_sort_by (GtkAction *action,
 					   GncPluginPageRegister *page)
 {
Index: gnc-plugin-page-register-ui.xml
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome/ui/Attic/gnc-plugin-page-register-ui.xml,v
retrieving revision 1.1.2.6
retrieving revision 1.1.2.7
diff -Lsrc/gnome/ui/gnc-plugin-page-register-ui.xml -Lsrc/gnome/ui/gnc-plugin-page-register-ui.xml -u -r1.1.2.6 -r1.1.2.7
--- src/gnome/ui/gnc-plugin-page-register-ui.xml
+++ src/gnome/ui/gnc-plugin-page-register-ui.xml
@@ -5,6 +5,20 @@
         <menuitem name="FilePrintCheck"         action="FilePrintCheckAction"/>
       </placeholder>
     </menu>
+
+    <menu name="Edit" action="EditAction">
+      <placeholder name="EditSelectedPlaceholder">
+        <menuitem name="EditEditAccount"        action="EditEditAccountAction"/>
+        <separator name="EditSep22"/>
+        <menuitem name="EditCutTransaction"     action="EditCutTransactionAction"/>
+        <menuitem name="EditCopyTransaction"    action="EditCopyTransactionAction"/>
+        <menuitem name="EditPasteTransaction"   action="EditPasteTransactionAction"/>
+        <menuitem name="EditVoidTransaction"    action="EditVoidTransactionAction"/>
+        <menuitem name="EditUnvoidTransaction"  action="EditUnvoidTransactionAction"/>
+        <menuitem name="EditReverseTransaction" action="EditReverseTransactionAction"/>
+      </placeholder>
+    </menu>
+
     <menu name="View" action="ViewAction">
       <placeholder name="ViewContentPlaceholder">
         <menuitem name="ViewStyleBasic"        	action="ViewStyleBasicAction"/>
Index: gnc-plugin-page-sxregister-ui.xml
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome/ui/Attic/gnc-plugin-page-sxregister-ui.xml,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -Lsrc/gnome/ui/gnc-plugin-page-sxregister-ui.xml -Lsrc/gnome/ui/gnc-plugin-page-sxregister-ui.xml -u -r1.1.2.1 -r1.1.2.2
--- src/gnome/ui/gnc-plugin-page-sxregister-ui.xml
+++ src/gnome/ui/gnc-plugin-page-sxregister-ui.xml
@@ -1,46 +1,32 @@
 <ui>
   <menubar>
-    <menu name="View">
-      <placeholder name="ViewPlaceholder">
-        <menu name="SelectTransactions"         action="SelectTransactionsAction">
-          <menu name="TransDateRange"           action="TransDateRangeAction">
-            <menuitem name="TransDateShowAll"   action="TransDateShowAllAction"/>
-            <menuitem name="TransDateSetRange"  action="TransDateSetRangeAction"/>
-          </menu>
-          <menu name="TransStatus"              action="TransStatusAction">
-            <menuitem name="StatusAll"          action="StatusAllAction"/>
-            <separator name="ViewSep42"/>
-            <menuitem name="StatusReconciled"   action="StatusReconciledAction"/>
-            <menuitem name="StatusCleared"      action="StatusClearedAction"/>
-            <menuitem name="StatusVoided"       action="StatusVoidedAction"/>
-            <menuitem name="StatusFrozen"       action="StatusFrozenAction"/>
-            <menuitem name="StatusUnreconciled" action="StatusUnreconciledAction"/>
-          </menu>
-        </menu>
-        <menu name="SortOrder"                  action="SortOrderAction">
-          <menuitem name="SortStandard"         action="SortStandardAction"/>
-          <separator name="ViewSep43"/>
-          <menuitem name="SortDate"             action="SortDateAction"/>
-          <menuitem name="SortDateEntry"        action="SortDateEntryAction"/>
-          <menuitem name="SortDateStatement"    action="SortDateStatementAction"/>
-          <menuitem name="SortNumber"           action="SortNumberAction"/>
-          <menuitem name="SortAmount"           action="SortAmountAction"/>
-          <menuitem name="SortMemo"             action="SortMemoAction"/>
-          <menuitem name="SortDescription"      action="SortDescriptionAction"/>
-          <menuitem name="SortAction"           action="SortActionAction"/>
-          <menuitem name="SortNotes"            action="SortNotesAction"/>
-        </menu>
-        <menu name="Style"                      action="StyleAction">
-          <menuitem name="StyleBasic"           action="StyleBasicAction"/>
-          <menuitem name="StyleAutoSplit"       action="StyleAutoSplitAction"/>
-          <menuitem name="StyleJournal"         action="StyleJournalAction"/>
-          <separator name="ViewSep44"/>
-          <menuitem name="StyleDoubleLine"      action="StyleDoubleLineAction"/>
-        </menu>
+    <menu name="Edit" action="EditAction">
+      <placeholder name="EditSelectedPlaceholder">
+        <separator name="EditSep22"/>
+        <menuitem name="EditCutTransaction"     action="EditCutTransactionAction"/>
+        <menuitem name="EditCopyTransaction"    action="EditCopyTransactionAction"/>
+        <menuitem name="EditPasteTransaction"   action="EditPasteTransactionAction"/>
+        <menuitem name="EditVoidTransaction"    action="EditVoidTransactionAction"/>
+        <menuitem name="EditUnvoidTransaction"  action="EditUnvoidTransactionAction"/>
+        <menuitem name="EditReverseTransaction" action="EditReverseTransactionAction"/>
       </placeholder>
     </menu>
 
-    <menu name="Actions">
+    <menu name="View" action="ViewAction">
+      <placeholder name="ViewContentPlaceholder">
+        <menuitem name="ViewStyleBasic"        	action="ViewStyleBasicAction"/>
+        <menuitem name="ViewStyleAutoSplit"    	action="ViewStyleAutoSplitAction"/>
+        <menuitem name="ViewStyleJournal"      	action="ViewStyleJournalAction"/>
+        <separator name="ViewSep65"/>
+        <menuitem name="ViewStyleDoubleLine"   	action="ViewStyleDoubleLineAction"/>
+        <separator name="ViewSep66"/>
+      </placeholder>
+      <placeholder name="ViewSortPlaceholder">
+        <menuitem name="ViewSortBy"             action="ViewSortByAction"/>
+      </placeholder>
+    </menu>
+
+    <menu name="Actions" action="ActionsAction">
       <placeholder name="ActionsPlaceholder">
         <separator name="ActionsSep3"/>
         <menuitem name="RecordTransaction"       action="RecordTransactionAction"/>
@@ -51,6 +37,7 @@
         <menuitem name="DuplicateTransaction"    action="DuplicateTransactionAction"/>
         <menuitem name="RemoveTransactionSplits" action="RemoveTransactionSplitsAction"/>
         <menuitem name="EditExchangeRate"        action="EditExchangeRateAction"/>
+        <menuitem name="JumpTransaction"         action="JumpTransactionAction"/>
       </placeholder>
     </menu>
   </menubar>
@@ -62,14 +49,19 @@
       <toolitem name="ToolbarDeleteTransaction"    action="DeleteTransactionAction"/>
       <separator name="ToolbarSep66"/>
       <toolitem name="ToolbarDuplicateTransaction" action="DuplicateTransactionAction"/>
+      <toolitem name="ToolbarScheduleTransaction"  action="ScheduleTransactionAction"/>
       <separator name="ToolbarSep67"/>
+      <toolitem name="ToolbarSplitTransaction"     action="SplitTransactionAction"/>
       <toolitem name="ToolbarBlankTransaction"     action="BlankTransactionAction"/>
+      <toolitem name="ToolbarJumpTransaction"      action="JumpTransactionAction"/>
       <separator name="ToolbarSep68"/>
-      <toolitem name="ToolbarTransfer"             action="TransferAction"/>
+      <toolitem name="ToolbarTransfer"             action="ActionsTransferAction"/>
     </placeholder>
   </toolbar>
 
-  <popup name="RegisterPopup"                action="FakeToplevel">>
+  <popup name="RegisterPopup"                action="FakeToplevel">
+    <menuitem name="ViewSortBy"              action="ViewSortByAction"/>
+    <separator name="PopupSep1"/>
     <menuitem name="RecordTransaction"       action="RecordTransactionAction"/>
     <menuitem name="CancelTransaction"       action="CancelTransactionAction"/>
     <menuitem name="DeleteTransaction"       action="DeleteTransactionAction"/>
@@ -77,6 +69,8 @@
     <separator name="PopupSep1"/>
     <menuitem name="DuplicateTransaction"    action="DuplicateTransactionAction"/>
     <menuitem name="RemoveTransactionSplits" action="RemoveTransactionSplitsAction"/>
+    <menuitem name="SplitTransaction"        action="SplitTransactionAction"/>
     <menuitem name="EditExchangeRate"        action="EditExchangeRateAction"/>
+    <menuitem name="JumpTransaction"         action="JumpTransactionAction"/>
   </popup>
 </ui>


More information about the gnucash-changes mailing list