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:
Derek Atkins 2002-02-06 02:41:51 +00:00
parent c68bf8adbd
commit eb3af031c3
4 changed files with 37 additions and 0 deletions

View File

@ -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 */

View File

@ -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;
}

View File

@ -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;

View File

@ -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 */