mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Additionally, make the "Duplicate Invoice" feature available as menu item and toolbar button when viewing an invoice.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@20116 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
@@ -464,6 +464,16 @@ gnc_invoice_window_editCB (GtkWidget *widget, gpointer data)
|
||||
gnc_ui_invoice_modify (invoice);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
|
||||
@@ -101,6 +101,7 @@ void gnc_invoice_window_cut_cb (GtkWidget *widget, gpointer data);
|
||||
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);
|
||||
|
||||
@@ -67,6 +67,7 @@ static void gnc_plugin_page_invoice_cmd_cut (GtkAction *action, GncPluginPageInv
|
||||
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_enter (GtkAction *action, GncPluginPageI
|
||||
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);
|
||||
|
||||
@@ -133,6 +134,12 @@ static GtkActionEntry gnc_plugin_page_invoice_actions [] =
|
||||
N_("Edit this invoice"),
|
||||
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"),
|
||||
@@ -168,7 +175,7 @@ static GtkActionEntry gnc_plugin_page_invoice_actions [] =
|
||||
{
|
||||
"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 */
|
||||
@@ -697,6 +704,20 @@ gnc_plugin_page_invoice_cmd_edit (GtkAction *action,
|
||||
LEAVE(" ");
|
||||
}
|
||||
|
||||
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 @@ gnc_plugin_page_invoice_cmd_blank (GtkAction *action,
|
||||
}
|
||||
|
||||
static void
|
||||
gnc_plugin_page_invoice_cmd_duplicate (GtkAction *action,
|
||||
gnc_plugin_page_invoice_cmd_duplicateEntry (GtkAction *action,
|
||||
GncPluginPageInvoice *plugin_page)
|
||||
{
|
||||
GncPluginPageInvoicePrivate *priv;
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
Reference in New Issue
Block a user