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