mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
gncEntryLedger: add function to reset the query
dialog-order: (re)set the Order's Owner when the UI changes dialog-invoice: (re)set the Invoice's Owner with the UI changes, and update the entry-ledger query to pick up the proper entries.. This can cause problems if the user has already attached any entries to this invoice. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@6695 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
parent
c68bf8adbd
commit
eb3af031c3
@ -315,6 +315,23 @@ gnc_invoice_window_destroy_cb (GtkWidget *widget, gpointer data)
|
||||
g_free (iw);
|
||||
}
|
||||
|
||||
static int
|
||||
gnc_invoice_owner_changed_cb (GtkWidget *widget, gpointer data)
|
||||
{
|
||||
InvoiceWindow *iw = data;
|
||||
GncInvoice *invoice;
|
||||
|
||||
if (!iw)
|
||||
return FALSE;
|
||||
|
||||
gnc_owner_get_owner (iw->owner_choice, &(iw->owner));
|
||||
invoice = iw_get_invoice (iw);
|
||||
gncInvoiceSetOwner (invoice, &(iw->owner));
|
||||
gnc_entry_ledger_reset_query (iw->ledger);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static int
|
||||
gnc_invoice_on_close_cb (GnomeDialog *dialog, gpointer data)
|
||||
{
|
||||
@ -671,6 +688,10 @@ gnc_invoice_new_window (GtkWidget *parent, GNCBook *bookp,
|
||||
GNC_INVOICE_MODULE_NAME,
|
||||
GNC_EVENT_MODIFY | GNC_EVENT_DESTROY);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (iw->owner_choice), "changed",
|
||||
GTK_SIGNAL_FUNC (gnc_invoice_owner_changed_cb),
|
||||
iw);
|
||||
|
||||
gnc_table_realize_gui (gnc_entry_ledger_get_table (entry_ledger));
|
||||
|
||||
/* Now fill in a lot of the pieces and display properly */
|
||||
|
@ -277,6 +277,7 @@ static int
|
||||
gnc_order_owner_changed_cb (GtkWidget *widget, gpointer data)
|
||||
{
|
||||
OrderWindow *ow = data;
|
||||
GncOrder *order;
|
||||
|
||||
if (!ow)
|
||||
return FALSE;
|
||||
@ -293,6 +294,10 @@ gnc_order_owner_changed_cb (GtkWidget *widget, gpointer data)
|
||||
gtk_entry_set_text (GTK_ENTRY (ow->ref_entry), "");
|
||||
break;
|
||||
}
|
||||
|
||||
/* Set the Order's owner now! */
|
||||
order = ow_get_order (ow);
|
||||
gncOrderSetOwner (order, &(ow->owner));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -348,6 +348,15 @@ void gnc_entry_ledger_set_default_invoice (GncEntryLedger *ledger,
|
||||
gnc_entry_ledger_display_refresh (ledger);
|
||||
}
|
||||
|
||||
void gnc_entry_ledger_reset_query (GncEntryLedger *ledger)
|
||||
{
|
||||
if (!ledger) return;
|
||||
if (!ledger->invoice) return;
|
||||
|
||||
create_invoice_query (ledger);
|
||||
gnc_entry_ledger_display_refresh (ledger);
|
||||
}
|
||||
|
||||
void gnc_entry_ledger_set_parent (GncEntryLedger *ledger, gncUIWidget parent)
|
||||
{
|
||||
if (!ledger) return;
|
||||
|
@ -88,4 +88,6 @@ void gnc_entry_ledger_cancel_cursor_changes (GncEntryLedger *ledger);
|
||||
|
||||
gboolean gnc_entry_ledger_check_close (GtkWidget *parent, GncEntryLedger *ledger);
|
||||
|
||||
void gnc_entry_ledger_reset_query (GncEntryLedger *ledger);
|
||||
|
||||
#endif /* GNC_ENTRY_LEDGER_H */
|
||||
|
Loading…
Reference in New Issue
Block a user