r20116 - gnucash/trunk/src/business/business-gnome - Additionally, make the "Duplicate Invoice" feature available as menu item and toolbar button when viewing an invoice.

Christian Stimming cstim at code.gnucash.org
Sun Jan 16 16:10:05 EST 2011


Author: cstim
Date: 2011-01-16 16:10:05 -0500 (Sun, 16 Jan 2011)
New Revision: 20116
Trac: http://svn.gnucash.org/trac/changeset/20116

Modified:
   gnucash/trunk/src/business/business-gnome/dialog-invoice.c
   gnucash/trunk/src/business/business-gnome/dialog-invoice.h
   gnucash/trunk/src/business/business-gnome/gnc-plugin-page-invoice.c
   gnucash/trunk/src/business/business-gnome/ui/gnc-plugin-page-invoice-ui.xml
Log:
Additionally, make the "Duplicate Invoice" feature available as menu item and toolbar button when viewing an invoice.

Modified: gnucash/trunk/src/business/business-gnome/dialog-invoice.c
===================================================================
--- gnucash/trunk/src/business/business-gnome/dialog-invoice.c	2011-01-16 21:09:53 UTC (rev 20115)
+++ gnucash/trunk/src/business/business-gnome/dialog-invoice.c	2011-01-16 21:10:05 UTC (rev 20116)
@@ -465,6 +465,16 @@
 }
 
 void
+gnc_invoice_window_duplicateInvoiceCB (GtkWidget *widget, gpointer data)
+{
+    InvoiceWindow *iw = data;
+    GncInvoice *invoice = iw_get_invoice (iw);
+
+    if (invoice)
+        gnc_ui_invoice_duplicate (invoice);
+}
+
+void
 gnc_invoice_window_recordCB (GtkWidget *widget, gpointer data)
 {
     InvoiceWindow *iw = data;

Modified: gnucash/trunk/src/business/business-gnome/dialog-invoice.h
===================================================================
--- gnucash/trunk/src/business/business-gnome/dialog-invoice.h	2011-01-16 21:09:53 UTC (rev 20115)
+++ gnucash/trunk/src/business/business-gnome/dialog-invoice.h	2011-01-16 21:10:05 UTC (rev 20116)
@@ -101,6 +101,7 @@
 void gnc_invoice_window_copy_cb (GtkWidget *widget, gpointer data);
 void gnc_invoice_window_paste_cb (GtkWidget *widget, gpointer data);
 void gnc_invoice_window_editCB (GtkWidget *widget, gpointer data);
+void gnc_invoice_window_duplicateInvoiceCB (GtkWidget *widget, gpointer data);
 void gnc_invoice_window_postCB (GtkWidget *widget, gpointer data);
 void gnc_invoice_window_unpostCB (GtkWidget *widget, gpointer data);
 void gnc_invoice_window_recordCB (GtkWidget *widget, gpointer data);

Modified: gnucash/trunk/src/business/business-gnome/gnc-plugin-page-invoice.c
===================================================================
--- gnucash/trunk/src/business/business-gnome/gnc-plugin-page-invoice.c	2011-01-16 21:09:53 UTC (rev 20115)
+++ gnucash/trunk/src/business/business-gnome/gnc-plugin-page-invoice.c	2011-01-16 21:10:05 UTC (rev 20116)
@@ -67,6 +67,7 @@
 static void gnc_plugin_page_invoice_cmd_copy (GtkAction *action, GncPluginPageInvoice *plugin_page);
 static void gnc_plugin_page_invoice_cmd_paste (GtkAction *action, GncPluginPageInvoice *plugin_page);
 static void gnc_plugin_page_invoice_cmd_edit (GtkAction *action, GncPluginPageInvoice *plugin_page);
+static void gnc_plugin_page_invoice_cmd_duplicateInvoice (GtkAction *action, GncPluginPageInvoice *plugin_page);
 static void gnc_plugin_page_invoice_cmd_post (GtkAction *action, GncPluginPageInvoice *plugin_page);
 static void gnc_plugin_page_invoice_cmd_unpost (GtkAction *action, GncPluginPageInvoice *plugin_page);
 
@@ -78,7 +79,7 @@
 static void gnc_plugin_page_invoice_cmd_cancel (GtkAction *action, GncPluginPageInvoice *plugin_page);
 static void gnc_plugin_page_invoice_cmd_delete (GtkAction *action, GncPluginPageInvoice *plugin_page);
 static void gnc_plugin_page_invoice_cmd_blank (GtkAction *action, GncPluginPageInvoice *plugin_page);
-static void gnc_plugin_page_invoice_cmd_duplicate (GtkAction *action, GncPluginPageInvoice *plugin_page);
+static void gnc_plugin_page_invoice_cmd_duplicateEntry (GtkAction *action, GncPluginPageInvoice *plugin_page);
 static void gnc_plugin_page_invoice_cmd_pay_invoice (GtkAction *action, GncPluginPageInvoice *plugin_page);
 static void gnc_plugin_page_invoice_cmd_company_report (GtkAction *action, GncPluginPageInvoice *plugin_page);
 
@@ -134,6 +135,12 @@
         G_CALLBACK (gnc_plugin_page_invoice_cmd_edit)
     },
     {
+        "EditDuplicateInvoiceAction", GTK_STOCK_COPY, N_("_Duplicate Invoice"),
+        "", /* empty accelerator string to avoid Ctrl+C here! */
+        N_("Create a new invoice as a duplicate of the current one"),
+        G_CALLBACK (gnc_plugin_page_invoice_cmd_duplicateInvoice)
+    },
+    {
         "EditPostInvoiceAction", GNC_STOCK_INVOICE_POST, N_("_Post Invoice"), NULL,
         N_("Post this Invoice to your Chart of Accounts"),
         G_CALLBACK (gnc_plugin_page_invoice_cmd_post)
@@ -168,7 +175,7 @@
     {
         "DuplicateEntryAction", GTK_STOCK_COPY, N_("Dup_licate Entry"), NULL,
         N_("Make a copy of the current entry"),
-        G_CALLBACK (gnc_plugin_page_invoice_cmd_duplicate)
+        G_CALLBACK (gnc_plugin_page_invoice_cmd_duplicateEntry)
     },
 
     /* Business menu */
@@ -698,6 +705,20 @@
 }
 
 static void
+gnc_plugin_page_invoice_cmd_duplicateInvoice (GtkAction *action,
+                                              GncPluginPageInvoice *plugin_page)
+{
+    GncPluginPageInvoicePrivate *priv;
+
+    g_return_if_fail(GNC_IS_PLUGIN_PAGE_INVOICE(plugin_page));
+
+    ENTER("(action %p, plugin_page %p)", action, plugin_page);
+    priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(plugin_page);
+    gnc_invoice_window_duplicateInvoiceCB(NULL, priv->iw);
+    LEAVE(" ");
+}
+
+static void
 gnc_plugin_page_invoice_cmd_post (GtkAction *action,
                                   GncPluginPageInvoice *plugin_page)
 {
@@ -807,7 +828,7 @@
 }
 
 static void
-gnc_plugin_page_invoice_cmd_duplicate (GtkAction *action,
+gnc_plugin_page_invoice_cmd_duplicateEntry (GtkAction *action,
                                        GncPluginPageInvoice *plugin_page)
 {
     GncPluginPageInvoicePrivate *priv;

Modified: gnucash/trunk/src/business/business-gnome/ui/gnc-plugin-page-invoice-ui.xml
===================================================================
--- gnucash/trunk/src/business/business-gnome/ui/gnc-plugin-page-invoice-ui.xml	2011-01-16 21:09:53 UTC (rev 20115)
+++ gnucash/trunk/src/business/business-gnome/ui/gnc-plugin-page-invoice-ui.xml	2011-01-16 21:10:05 UTC (rev 20116)
@@ -3,6 +3,7 @@
     <menu name="Edit" action="EditAction">
       <placeholder name="EditSelectedPlaceholder">
         <menuitem name="EditEditInvoice"        action="EditEditInvoiceAction"/>
+        <menuitem name="EditDuplicateInvoice"   action="EditDuplicateInvoiceAction"/>
         <menuitem name="EditPostInvoice"        action="EditPostInvoiceAction"/>
         <menuitem name="EditUnpostInvoice"      action="EditUnpostInvoiceAction"/>
       </placeholder>
@@ -51,6 +52,7 @@
   <toolbar name="DefaultToolbar">
     <placeholder name="DefaultToolbarPlaceholder">
       <toolitem name="ToolbarEditInvoice"       action="EditEditInvoiceAction"/>
+      <toolitem name="ToolbarDuplicateInvoice"  action="EditDuplicateInvoiceAction"/>
       <toolitem name="ToolbarRecordEntry"    	action="RecordEntryAction"/>
       <toolitem name="ToolbarCancelEntry"    	action="CancelEntryAction"/>
       <toolitem name="ToolbarDeleteEntry"    	action="DeleteEntryAction"/>



More information about the gnucash-changes mailing list