mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Fixed dialog-order. Should now complain less during compilation.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@6843 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
parent
ccb857a723
commit
9017969427
@ -1,3 +1,7 @@
|
||||
2002-0509 Derek Atkins <derek@ihtfp.com>
|
||||
|
||||
Fixed dialog-order. Should now complain less during compilation.
|
||||
|
||||
2002-05-09 Derek Atkins <derek@ihtfp.com>
|
||||
|
||||
Create a new general_search widget that hooks into the search
|
||||
|
@ -647,7 +647,7 @@ order_customer_cb (gpointer *cust_p, gpointer user_data)
|
||||
return;
|
||||
|
||||
gncOwnerInitCustomer (&owner, cust);
|
||||
gnc_order_find (NULL, &owner, sw->book);
|
||||
gnc_order_search (NULL, &owner, sw->book);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1296,21 +1296,28 @@ gnc_invoice_search (GncInvoice *start, GncOwner *owner, GNCBook *book)
|
||||
|
||||
}
|
||||
|
||||
gpointer gnc_invoice_edit_new_select (gpointer bookp, gpointer invoice,
|
||||
GtkWidget *toplevel)
|
||||
GNCSearchWindow *
|
||||
gnc_invoice_search_select (gpointer start, gpointer book)
|
||||
{
|
||||
gnc_invoice_search (invoice, NULL, bookp); /* XXX */
|
||||
return invoice;
|
||||
GncInvoice *i = start;
|
||||
GncOwner owner, *ownerp;
|
||||
|
||||
if (!book) return NULL;
|
||||
|
||||
if (i) {
|
||||
ownerp = gncInvoiceGetOwner (i);
|
||||
gncOwnerCopy (ownerp, &owner);
|
||||
} else
|
||||
gncOwnerInitCustomer (&owner, NULL); /* XXX */
|
||||
|
||||
return gnc_invoice_search (start, NULL, book);
|
||||
}
|
||||
|
||||
gpointer gnc_invoice_edit_new_edit (gpointer bookp, gpointer v,
|
||||
GtkWidget *toplevel)
|
||||
GNCSearchWindow *
|
||||
gnc_invoice_search_edit (gpointer start, gpointer book)
|
||||
{
|
||||
GncInvoice *invoice = v;
|
||||
if (start)
|
||||
gnc_ui_invoice_edit (start);
|
||||
|
||||
g_return_val_if_fail (invoice != NULL, NULL);
|
||||
|
||||
/* XXX: figure out if this window exists and should be raised */
|
||||
gnc_ui_invoice_edit (invoice);
|
||||
return invoice;
|
||||
return NULL;
|
||||
}
|
||||
|
@ -14,23 +14,20 @@ typedef struct _invoice_window InvoiceWindow;
|
||||
#include "gncOwner.h"
|
||||
#include "dialog-search.h"
|
||||
|
||||
/* Create and edit an invoice window */
|
||||
/* Create and edit an invoice */
|
||||
InvoiceWindow * gnc_ui_invoice_edit (GncInvoice *invoice);
|
||||
InvoiceWindow * gnc_ui_invoice_new (GncOwner *owner, GNCBook *book);
|
||||
|
||||
/* Search for invoices */
|
||||
GNCSearchWindow * gnc_invoice_search (GncInvoice *start, GncOwner *owner, GNCBook *book);
|
||||
|
||||
/* Callbacks to select a invoice that match the necessary functions
|
||||
* for use with the gnc_general_select widget.
|
||||
/*
|
||||
* These callbacks are for use with the gnc_general_search widget
|
||||
*
|
||||
* new_select provides a selection and the ability to create and edit
|
||||
* invoices.
|
||||
* new_edit provides only the ability to edit the current selection
|
||||
* select() provides a Select Dialog and returns it.
|
||||
* edit() opens the existing invoice for editing and returns NULL.
|
||||
*/
|
||||
gpointer gnc_invoice_edit_new_select (gpointer book, gpointer c,
|
||||
GtkWidget *toplevel);
|
||||
gpointer gnc_invoice_edit_new_edit (gpointer book, gpointer invoice,
|
||||
GtkWidget *toplevel);
|
||||
GNCSearchWindow * gnc_invoice_search_select (gpointer start, gpointer book);
|
||||
GNCSearchWindow * gnc_invoice_search_edit (gpointer start, gpointer book);
|
||||
|
||||
#endif /* GNC_DIALOG_INVOICE_H_ */
|
||||
|
@ -43,9 +43,9 @@ typedef enum
|
||||
|
||||
struct _order_select_window {
|
||||
GNCBook * book;
|
||||
GtkWidget * parent;
|
||||
GncOwner * owner;
|
||||
gboolean no_close;
|
||||
QueryNew * q;
|
||||
GncOwner owner_def;
|
||||
};
|
||||
|
||||
struct _order_window {
|
||||
@ -64,8 +64,6 @@ struct _order_window {
|
||||
GtkWidget * owner_label;
|
||||
GtkWidget * owner_choice;
|
||||
|
||||
GtkWidget * parent;
|
||||
|
||||
GnucashRegister * reg;
|
||||
GncEntryLedger * ledger;
|
||||
|
||||
@ -208,7 +206,7 @@ gnc_order_window_invoice_cb (GtkWidget *widget, gpointer data)
|
||||
return;
|
||||
|
||||
/* Ok, go make an invoice */
|
||||
gnc_invoice_find (NULL, &(ow->owner), ow->book);
|
||||
gnc_invoice_search (NULL, &(ow->owner), ow->book);
|
||||
|
||||
/* refresh the window */
|
||||
gnc_order_update_window (ow);
|
||||
@ -342,22 +340,6 @@ gnc_order_owner_changed_cb (GtkWidget *widget, gpointer data)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static int
|
||||
gnc_order_on_close_cb (GnomeDialog *dialog, gpointer data)
|
||||
{
|
||||
OrderWindow *ow;
|
||||
GncOrder **created_order = data;
|
||||
|
||||
if (data) {
|
||||
ow = gtk_object_get_data (GTK_OBJECT (dialog), "dialog_info");
|
||||
*created_order = ow->created_order;
|
||||
}
|
||||
|
||||
gtk_main_quit ();
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
gnc_order_window_close_handler (gpointer user_data)
|
||||
{
|
||||
@ -542,8 +524,8 @@ find_handler (gpointer find_data, gpointer user_data)
|
||||
}
|
||||
|
||||
static OrderWindow *
|
||||
gnc_order_new_window (GtkWidget *parent, GNCBook *bookp,
|
||||
OrderDialogType type, GncOrder *order, GncOwner *owner)
|
||||
gnc_order_new_window (GNCBook *bookp, OrderDialogType type,
|
||||
GncOrder *order, GncOwner *owner)
|
||||
{
|
||||
OrderWindow *ow;
|
||||
GladeXML *xml;
|
||||
@ -586,7 +568,6 @@ gnc_order_new_window (GtkWidget *parent, GNCBook *bookp,
|
||||
ow = g_new0 (OrderWindow, 1);
|
||||
ow->book = bookp;
|
||||
ow->dialog_type = type;
|
||||
ow->parent = parent;
|
||||
|
||||
/* Save this for later */
|
||||
gncOwnerCopy (owner, &(ow->owner));
|
||||
@ -645,11 +626,6 @@ gnc_order_new_window (GtkWidget *parent, GNCBook *bookp,
|
||||
// gtk_box_pack_start (GTK_BOX(vbox), toolbar, FALSE, FALSE, 2);
|
||||
gtk_box_pack_start (GTK_BOX(vbox), regWidget, TRUE, TRUE, 2);
|
||||
|
||||
if (parent) {
|
||||
gnome_dialog_set_parent (owd, GTK_WINDOW (parent));
|
||||
gtk_window_set_modal (GTK_WINDOW (ow->dialog), TRUE);
|
||||
}
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (ow->dialog), "destroy",
|
||||
GTK_SIGNAL_FUNC(gnc_order_window_destroy_cb), ow);
|
||||
|
||||
@ -687,7 +663,7 @@ gnc_order_new_window (GtkWidget *parent, GNCBook *bookp,
|
||||
}
|
||||
|
||||
static OrderWindow *
|
||||
gnc_order_window_new_order (GtkWidget *parent, GNCBook *bookp, GncOwner *owner)
|
||||
gnc_order_window_new_order (GNCBook *bookp, GncOwner *owner)
|
||||
{
|
||||
OrderWindow *ow;
|
||||
GladeXML *xml;
|
||||
@ -723,11 +699,6 @@ gnc_order_window_new_order (GtkWidget *parent, GNCBook *bookp, GncOwner *owner)
|
||||
gnome_dialog_editable_enters (owd, GTK_EDITABLE (ow->id_entry));
|
||||
gnome_dialog_set_default (owd, 0);
|
||||
|
||||
if (parent) {
|
||||
gnome_dialog_set_parent (owd, GTK_WINDOW (parent));
|
||||
gtk_window_set_modal (GTK_WINDOW (ow->dialog), TRUE);
|
||||
}
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (ow->dialog), "destroy",
|
||||
GTK_SIGNAL_FUNC(gnc_order_window_destroy_cb), ow);
|
||||
|
||||
@ -759,7 +730,7 @@ gnc_order_window_new_order (GtkWidget *parent, GNCBook *bookp, GncOwner *owner)
|
||||
}
|
||||
|
||||
OrderWindow *
|
||||
gnc_ui_order_window_create (GncOrder *order)
|
||||
gnc_ui_order_edit (GncOrder *order)
|
||||
{
|
||||
OrderWindow *ow;
|
||||
OrderDialogType type;
|
||||
@ -773,17 +744,16 @@ gnc_ui_order_window_create (GncOrder *order)
|
||||
type = VIEW_ORDER;
|
||||
}
|
||||
|
||||
ow = gnc_order_new_window (NULL, gncOrderGetBook(order), type, order,
|
||||
ow = gnc_order_new_window (gncOrderGetBook(order), type, order,
|
||||
gncOrderGetOwner (order));
|
||||
|
||||
return ow;
|
||||
}
|
||||
|
||||
GncOrder *
|
||||
gnc_order_new (GtkWidget *parent, GncOwner *ownerp, GNCBook *bookp)
|
||||
OrderWindow *
|
||||
gnc_ui_order_new (GncOwner *ownerp, GNCBook *bookp)
|
||||
{
|
||||
OrderWindow *ow;
|
||||
GncOrder *created_order = NULL;
|
||||
GncOwner owner;
|
||||
|
||||
if (ownerp) {
|
||||
@ -804,73 +774,62 @@ gnc_order_new (GtkWidget *parent, GncOwner *ownerp, GNCBook *bookp)
|
||||
/* Make sure required options exist */
|
||||
if (!bookp) return NULL;
|
||||
|
||||
ow = gnc_order_window_new_order (parent, bookp, &owner);
|
||||
ow = gnc_order_window_new_order (bookp, &owner);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (ow->dialog), "close",
|
||||
GTK_SIGNAL_FUNC (gnc_order_on_close_cb),
|
||||
&created_order);
|
||||
|
||||
gtk_main ();
|
||||
|
||||
/* now open up the ledger */
|
||||
if (created_order)
|
||||
gnc_ui_order_window_create (created_order);
|
||||
|
||||
return created_order;
|
||||
return ow;
|
||||
}
|
||||
|
||||
/* Functions for order selection widgets */
|
||||
|
||||
static gboolean
|
||||
static void
|
||||
edit_order_cb (gpointer *order_p, gpointer user_data)
|
||||
{
|
||||
GncOrder *order;
|
||||
|
||||
g_return_val_if_fail (order_p && user_data, TRUE);
|
||||
g_return_if_fail (order_p && user_data);
|
||||
|
||||
order = *order_p;
|
||||
|
||||
if (!order)
|
||||
return TRUE;
|
||||
if (order)
|
||||
gnc_ui_order_edit (order);
|
||||
|
||||
gnc_ui_order_window_create (order);
|
||||
return TRUE;
|
||||
return;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
select_order_cb (gpointer *order_p, gpointer user_data)
|
||||
{
|
||||
g_return_val_if_fail (order_p && user_data, TRUE);
|
||||
if (*order_p)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
new_order_cb (GtkWidget *parent, gpointer *order_p, gpointer user_data)
|
||||
static gpointer
|
||||
new_order_cb (gpointer user_data)
|
||||
{
|
||||
struct _order_select_window *sw = user_data;
|
||||
OrderWindow *ow;
|
||||
|
||||
g_return_val_if_fail (order_p && user_data, TRUE);
|
||||
g_return_val_if_fail (user_data, NULL);
|
||||
|
||||
*order_p = gnc_order_new (parent, sw->owner, sw->book);
|
||||
return sw->no_close;
|
||||
ow = gnc_ui_order_new (sw->owner, sw->book);
|
||||
return ow_get_order (ow);
|
||||
}
|
||||
|
||||
static GncOrder *
|
||||
gnc_order_select (GtkWidget *parent, GncOrder *start, GncOwner *owner,
|
||||
GNCBook *book, gboolean provide_select)
|
||||
static void
|
||||
free_order_cb (gpointer user_data)
|
||||
{
|
||||
static GList *params = NULL;
|
||||
gpointer res;
|
||||
struct _order_select_window *sw = user_data;
|
||||
|
||||
g_return_if_fail (sw);
|
||||
|
||||
gncQueryDestroy (sw->q);
|
||||
g_free (sw);
|
||||
}
|
||||
|
||||
GNCSearchWindow *
|
||||
gnc_order_search (GncOrder *start, GncOwner *owner, GNCBook *book)
|
||||
{
|
||||
GNCIdType type = GNC_ORDER_MODULE_NAME;
|
||||
struct _order_select_window *sw;
|
||||
QueryNew *q, *q2 = NULL;
|
||||
GNCSearchCallbackButton buttons[] = {
|
||||
{ N_("Select Order"), select_order_cb},
|
||||
static GList *params = NULL;
|
||||
static GNCSearchCallbackButton buttons[] = {
|
||||
{ N_("View/Edit Order"), edit_order_cb},
|
||||
{ NULL },
|
||||
};
|
||||
GNCIdType type = GNC_ORDER_MODULE_NAME;
|
||||
struct _order_select_window sw;
|
||||
|
||||
g_return_val_if_fail (book, NULL);
|
||||
|
||||
@ -926,45 +885,42 @@ gnc_order_select (GtkWidget *parent, GncOrder *start, GncOwner *owner,
|
||||
}
|
||||
|
||||
/* launch select dialog and return the result */
|
||||
sw.book = book;
|
||||
sw.parent = parent;
|
||||
sw.owner = owner;
|
||||
sw.no_close = !provide_select;
|
||||
res = gnc_search_dialog_choose_object (parent, type, params, q, q2,
|
||||
(provide_select ? buttons :
|
||||
&(buttons[1])), NULL,
|
||||
new_order_cb, &sw);
|
||||
sw = g_new0 (struct _order_select_window, 1);
|
||||
|
||||
gncQueryDestroy (q);
|
||||
return res;
|
||||
if (owner) {
|
||||
gncOwnerCopy (owner, &(sw->owner_def));
|
||||
sw->owner = &(sw->owner_def);
|
||||
}
|
||||
sw->book = book;
|
||||
sw->q = q;
|
||||
|
||||
return gnc_search_dialog_create (type, params, q, q2,
|
||||
buttons, NULL, new_order_cb,
|
||||
sw, free_order_cb);
|
||||
}
|
||||
|
||||
void
|
||||
gnc_order_find (GncOrder *start, GncOwner *owner, GNCBook *book)
|
||||
GNCSearchWindow *
|
||||
gnc_order_search_select (gpointer start, gpointer book)
|
||||
{
|
||||
gnc_order_select (NULL, start, owner, book, FALSE);
|
||||
GncOrder *o = start;
|
||||
GncOwner owner, *ownerp;
|
||||
|
||||
if (!book) return NULL;
|
||||
|
||||
if (o) {
|
||||
ownerp = gncOrderGetOwner (o);
|
||||
gncOwnerCopy (ownerp, &owner);
|
||||
} else
|
||||
gncOwnerInitCustomer (&owner, NULL); /* XXX */
|
||||
|
||||
return gnc_order_search (start, NULL, book);
|
||||
}
|
||||
|
||||
GncOrder *
|
||||
gnc_order_choose (GtkWidget *parent, GncOrder *start, GncOwner *owner,
|
||||
GNCBook *book)
|
||||
GNCSearchWindow *
|
||||
gnc_order_search_edit (gpointer start, gpointer book)
|
||||
{
|
||||
return gnc_order_select (parent, start, owner, book, TRUE);
|
||||
}
|
||||
|
||||
gpointer gnc_order_edit_new_select (gpointer bookp, gpointer order,
|
||||
GtkWidget *toplevel)
|
||||
{
|
||||
return gnc_order_choose (toplevel, order, NULL, bookp);
|
||||
}
|
||||
|
||||
gpointer gnc_order_edit_new_edit (gpointer bookp, gpointer v,
|
||||
GtkWidget *toplevel)
|
||||
{
|
||||
GncOrder *order = v;
|
||||
|
||||
g_return_val_if_fail (order != NULL, NULL);
|
||||
|
||||
gnc_ui_order_window_create (order);
|
||||
return order;
|
||||
if (start)
|
||||
gnc_ui_order_edit (start);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
@ -12,28 +12,23 @@ typedef struct _order_window OrderWindow;
|
||||
|
||||
#include "gncOrder.h"
|
||||
#include "gncOwner.h"
|
||||
#include "dialog-search.h"
|
||||
|
||||
/* Create an order window */
|
||||
OrderWindow * gnc_ui_order_window_create (GncOrder *order);
|
||||
/* Create and edit an order */
|
||||
OrderWindow * gnc_ui_order_edit (GncOrder *order);
|
||||
OrderWindow * gnc_ui_order_new (GncOwner *owner, GNCBook *book);
|
||||
|
||||
void gnc_order_find (GncOrder *start, GncOwner *owner, GNCBook *book);
|
||||
/* Search for orders */
|
||||
GNCSearchWindow * gnc_order_search (GncOrder *start, GncOwner *owner,
|
||||
GNCBook *book);
|
||||
|
||||
/* Functions to create and edit orders */
|
||||
GncOrder * gnc_order_new (GtkWidget *parent, GncOwner *owner, GNCBook *book);
|
||||
|
||||
GncOrder * gnc_order_choose (GtkWidget *parent, GncOrder *start,
|
||||
GncOwner *owner, GNCBook *book);
|
||||
|
||||
/* Callbacks to select a order that match the necessary functions
|
||||
* for use with the gnc_general_select widget.
|
||||
/*
|
||||
* These callbacks are for use with the gnc_general_search widget
|
||||
*
|
||||
* new_select provides a selection and the ability to create and edit
|
||||
* orders.
|
||||
* new_edit provides only the ability to edit the current selection
|
||||
* select() provides a Select Dialog and returns it.
|
||||
* edit() opens the existing order for editing and returns NULL.
|
||||
*/
|
||||
gpointer gnc_order_edit_new_select (gpointer book, gpointer c,
|
||||
GtkWidget *toplevel);
|
||||
gpointer gnc_order_edit_new_edit (gpointer book, gpointer order,
|
||||
GtkWidget *toplevel);
|
||||
GNCSearchWindow * gnc_order_search_select (gpointer start, gpointer book);
|
||||
GNCSearchWindow * gnc_order_search_edit (gpointer start, gpointer book);
|
||||
|
||||
#endif /* GNC_DIALOG_ORDER_H_ */
|
||||
|
@ -508,7 +508,7 @@ order_vendor_cb (gpointer *vendor_p, gpointer user_data)
|
||||
return;
|
||||
|
||||
gncOwnerInitVendor (&owner, vendor);
|
||||
gnc_order_find (NULL, &owner, sw->book);
|
||||
gnc_order_search (NULL, &owner, sw->book);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -168,25 +168,25 @@
|
||||
(gw:wrap-function
|
||||
ws
|
||||
'gnc:order-new
|
||||
'<gnc:GncOrder*>
|
||||
"gnc_order_new"
|
||||
'((<gnc:UIWidget> parent) (<gnc:GncOwner*> owner) (<gnc:Book*> book))
|
||||
"Dialog: create a new GncOrder. Parent may be NULL.")
|
||||
'<gw:void>
|
||||
"gnc_ui_order_new"
|
||||
'((<gnc:GncOwner*> owner) (<gnc:Book*> book))
|
||||
"Dialog: create a new GncOrder.")
|
||||
|
||||
(gw:wrap-function
|
||||
ws
|
||||
'gnc:order-edit
|
||||
'<gw:void>
|
||||
"gnc_ui_order_window_create"
|
||||
"gnc_ui_order_edit"
|
||||
'((<gnc:GncOrder*> order))
|
||||
"Dialog: Edit a GncOrder.")
|
||||
|
||||
|
||||
(gw:wrap-function
|
||||
ws
|
||||
'gnc:order-find
|
||||
'gnc:order-search
|
||||
'<gw:void>
|
||||
"gnc_order_find"
|
||||
"gnc_order_search"
|
||||
'((<gnc:GncOrder*> start_selection) (<gnc:GncOwner*> order_owner)
|
||||
(<gnc:Book*> book) )
|
||||
"Dialog: Select a GncOrder. Either start_selection or "
|
||||
|
Loading…
Reference in New Issue
Block a user