mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
dance a widget shuffle when rebuilding the order and invoice dialogs
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@6710 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
parent
22bb2807ec
commit
fe68be2d9a
@ -50,11 +50,14 @@ typedef struct _invoice_window {
|
|||||||
|
|
||||||
GtkWidget * id_entry;
|
GtkWidget * id_entry;
|
||||||
GtkWidget * terms_entry;
|
GtkWidget * terms_entry;
|
||||||
GtkWidget * owner_choice;
|
|
||||||
GtkWidget * notes_text;
|
GtkWidget * notes_text;
|
||||||
GtkWidget * opened_date;
|
GtkWidget * opened_date;
|
||||||
GtkWidget * active_check;
|
GtkWidget * active_check;
|
||||||
|
|
||||||
|
GtkWidget * owner_box;
|
||||||
|
GtkWidget * owner_label;
|
||||||
|
GtkWidget * owner_choice;
|
||||||
|
|
||||||
GnucashRegister * reg;
|
GnucashRegister * reg;
|
||||||
GncEntryLedger * ledger;
|
GncEntryLedger * ledger;
|
||||||
|
|
||||||
@ -295,10 +298,10 @@ gnc_invoice_window_pay_invoice_cb (GtkWidget *widget, gpointer data)
|
|||||||
acct_label = _("Pay to Account");
|
acct_label = _("Pay to Account");
|
||||||
|
|
||||||
/* Add "appropriate" accounts */
|
/* Add "appropriate" accounts */
|
||||||
acct_types = g_list_prepend (NULL, BANK);
|
acct_types = g_list_prepend (NULL, (gpointer)BANK);
|
||||||
acct_types = g_list_prepend (acct_types, CASH);
|
acct_types = g_list_prepend (acct_types, (gpointer)CASH);
|
||||||
acct_types = g_list_prepend (acct_types, ASSET);
|
acct_types = g_list_prepend (acct_types, (gpointer)ASSET);
|
||||||
acct_types = g_list_prepend (acct_types, LIABILITY);
|
acct_types = g_list_prepend (acct_types, (gpointer)LIABILITY);
|
||||||
|
|
||||||
timespecFromTime_t (&paid_date, time(NULL));
|
timespecFromTime_t (&paid_date, time(NULL));
|
||||||
if (!gnc_dialog_date_acct_parented (iw->dialog, message, date_label,
|
if (!gnc_dialog_date_acct_parented (iw->dialog, message, date_label,
|
||||||
@ -445,6 +448,29 @@ gnc_invoice_update_window (InvoiceWindow *iw)
|
|||||||
invoice = iw_get_invoice (iw);
|
invoice = iw_get_invoice (iw);
|
||||||
owner = gncInvoiceGetOwner (invoice);
|
owner = gncInvoiceGetOwner (invoice);
|
||||||
|
|
||||||
|
if (iw->owner_choice) {
|
||||||
|
gtk_container_remove (GTK_CONTAINER (iw->owner_box), iw->owner_choice);
|
||||||
|
gtk_object_destroy (GTK_OBJECT (iw->owner_choice));
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (iw->dialog_type) {
|
||||||
|
case VIEW_INVOICE:
|
||||||
|
case EDIT_INVOICE:
|
||||||
|
iw->owner_choice =
|
||||||
|
gnc_owner_edit_create (iw->owner_label, iw->owner_box, iw->book,
|
||||||
|
owner);
|
||||||
|
break;
|
||||||
|
case NEW_INVOICE:
|
||||||
|
iw->owner_choice =
|
||||||
|
gnc_owner_select_create (iw->owner_label, iw->owner_box, iw->book,
|
||||||
|
owner);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
gtk_signal_connect (GTK_OBJECT (iw->owner_choice), "changed",
|
||||||
|
GTK_SIGNAL_FUNC (gnc_invoice_owner_changed_cb),
|
||||||
|
iw);
|
||||||
|
|
||||||
gtk_widget_show_all (iw->dialog);
|
gtk_widget_show_all (iw->dialog);
|
||||||
|
|
||||||
paid_date = glade_xml_get_widget (iw->xml, "paid_date");
|
paid_date = glade_xml_get_widget (iw->xml, "paid_date");
|
||||||
@ -587,7 +613,7 @@ gnc_invoice_new_window (GtkWidget *parent, GNCBook *bookp,
|
|||||||
{
|
{
|
||||||
InvoiceWindow *iw;
|
InvoiceWindow *iw;
|
||||||
GladeXML *xml;
|
GladeXML *xml;
|
||||||
GtkWidget *label, *hbox, *vbox, *regWidget;
|
GtkWidget *vbox, *regWidget;
|
||||||
GncEntryLedger *entry_ledger = NULL;
|
GncEntryLedger *entry_ledger = NULL;
|
||||||
GnomeDialog *iwd;
|
GnomeDialog *iwd;
|
||||||
|
|
||||||
@ -618,9 +644,8 @@ gnc_invoice_new_window (GtkWidget *parent, GNCBook *bookp,
|
|||||||
iw->notes_text = glade_xml_get_widget (xml, "notes_text");
|
iw->notes_text = glade_xml_get_widget (xml, "notes_text");
|
||||||
iw->opened_date = glade_xml_get_widget (xml, "opened_date");
|
iw->opened_date = glade_xml_get_widget (xml, "opened_date");
|
||||||
iw->active_check = glade_xml_get_widget (xml, "active_check");
|
iw->active_check = glade_xml_get_widget (xml, "active_check");
|
||||||
|
iw->owner_box = glade_xml_get_widget (xml, "owner_hbox");
|
||||||
hbox = glade_xml_get_widget (xml, "owner_hbox");
|
iw->owner_label = glade_xml_get_widget (xml, "owner_label");
|
||||||
label = glade_xml_get_widget (xml, "owner_label");
|
|
||||||
|
|
||||||
/* default to ok */
|
/* default to ok */
|
||||||
gnome_dialog_editable_enters (iwd, GTK_EDITABLE (iw->id_entry));
|
gnome_dialog_editable_enters (iwd, GTK_EDITABLE (iw->id_entry));
|
||||||
@ -694,7 +719,6 @@ gnc_invoice_new_window (GtkWidget *parent, GNCBook *bookp,
|
|||||||
class_name = DIALOG_VIEW_INVOICE_CM_CLASS;
|
class_name = DIALOG_VIEW_INVOICE_CM_CLASS;
|
||||||
/* FALLTHROUGH */
|
/* FALLTHROUGH */
|
||||||
case EDIT_INVOICE:
|
case EDIT_INVOICE:
|
||||||
iw->owner_choice = gnc_owner_edit_create (label, hbox, bookp, owner);
|
|
||||||
gtk_entry_set_text (GTK_ENTRY (iw->id_entry), gncInvoiceGetID (invoice));
|
gtk_entry_set_text (GTK_ENTRY (iw->id_entry), gncInvoiceGetID (invoice));
|
||||||
|
|
||||||
if (class_name == NULL)
|
if (class_name == NULL)
|
||||||
@ -702,7 +726,6 @@ gnc_invoice_new_window (GtkWidget *parent, GNCBook *bookp,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case NEW_INVOICE:
|
case NEW_INVOICE:
|
||||||
iw->owner_choice = gnc_owner_select_create (label, hbox, bookp, owner);
|
|
||||||
gtk_entry_set_text (GTK_ENTRY (iw->id_entry),
|
gtk_entry_set_text (GTK_ENTRY (iw->id_entry),
|
||||||
g_strdup_printf ("%.6d", gncInvoiceNextID(bookp)));
|
g_strdup_printf ("%.6d", gncInvoiceNextID(bookp)));
|
||||||
|
|
||||||
@ -721,10 +744,6 @@ gnc_invoice_new_window (GtkWidget *parent, GNCBook *bookp,
|
|||||||
GNC_INVOICE_MODULE_NAME,
|
GNC_INVOICE_MODULE_NAME,
|
||||||
GNC_EVENT_MODIFY | GNC_EVENT_DESTROY);
|
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));
|
gnc_table_realize_gui (gnc_entry_ledger_get_table (entry_ledger));
|
||||||
|
|
||||||
/* Now fill in a lot of the pieces and display properly */
|
/* Now fill in a lot of the pieces and display properly */
|
||||||
|
@ -51,12 +51,15 @@ typedef struct _order_window {
|
|||||||
|
|
||||||
GtkWidget * id_entry;
|
GtkWidget * id_entry;
|
||||||
GtkWidget * ref_entry;
|
GtkWidget * ref_entry;
|
||||||
GtkWidget * owner_choice;
|
|
||||||
GtkWidget * notes_text;
|
GtkWidget * notes_text;
|
||||||
GtkWidget * opened_date;
|
GtkWidget * opened_date;
|
||||||
GtkWidget * closed_date;
|
GtkWidget * closed_date;
|
||||||
GtkWidget * active_check;
|
GtkWidget * active_check;
|
||||||
|
|
||||||
|
GtkWidget * owner_box;
|
||||||
|
GtkWidget * owner_label;
|
||||||
|
GtkWidget * owner_choice;
|
||||||
|
|
||||||
GnucashRegister * reg;
|
GnucashRegister * reg;
|
||||||
GncEntryLedger * ledger;
|
GncEntryLedger * ledger;
|
||||||
|
|
||||||
@ -416,6 +419,29 @@ gnc_order_update_window (OrderWindow *ow)
|
|||||||
order = ow_get_order (ow);
|
order = ow_get_order (ow);
|
||||||
owner = gncOrderGetOwner (order);
|
owner = gncOrderGetOwner (order);
|
||||||
|
|
||||||
|
if (ow->owner_choice) {
|
||||||
|
gtk_container_remove (GTK_CONTAINER (ow->owner_box), ow->owner_choice);
|
||||||
|
gtk_object_destroy (GTK_OBJECT (ow->owner_choice));
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (ow->dialog_type) {
|
||||||
|
case VIEW_ORDER:
|
||||||
|
case EDIT_ORDER:
|
||||||
|
ow->owner_choice =
|
||||||
|
gnc_owner_edit_create (ow->owner_label, ow->owner_box, ow->book,
|
||||||
|
owner);
|
||||||
|
break;
|
||||||
|
case NEW_ORDER:
|
||||||
|
ow->owner_choice =
|
||||||
|
gnc_owner_select_create (ow->owner_label, ow->owner_box, ow->book,
|
||||||
|
owner);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
gtk_signal_connect (GTK_OBJECT (ow->owner_choice), "changed",
|
||||||
|
GTK_SIGNAL_FUNC (gnc_order_owner_changed_cb),
|
||||||
|
ow);
|
||||||
|
|
||||||
gtk_widget_show_all (ow->dialog);
|
gtk_widget_show_all (ow->dialog);
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -495,7 +521,7 @@ gnc_order_new_window (GtkWidget *parent, GNCBook *bookp,
|
|||||||
{
|
{
|
||||||
OrderWindow *ow;
|
OrderWindow *ow;
|
||||||
GladeXML *xml;
|
GladeXML *xml;
|
||||||
GtkWidget *label, *hbox, *vbox, *regWidget;
|
GtkWidget *vbox, *regWidget;
|
||||||
GncEntryLedger *entry_ledger = NULL;
|
GncEntryLedger *entry_ledger = NULL;
|
||||||
GnomeDialog *owd;
|
GnomeDialog *owd;
|
||||||
|
|
||||||
@ -527,9 +553,8 @@ gnc_order_new_window (GtkWidget *parent, GNCBook *bookp,
|
|||||||
ow->opened_date = glade_xml_get_widget (xml, "opened_date");
|
ow->opened_date = glade_xml_get_widget (xml, "opened_date");
|
||||||
ow->closed_date = glade_xml_get_widget (xml, "closed_date");
|
ow->closed_date = glade_xml_get_widget (xml, "closed_date");
|
||||||
ow->active_check = glade_xml_get_widget (xml, "active_check");
|
ow->active_check = glade_xml_get_widget (xml, "active_check");
|
||||||
|
ow->owner_box = glade_xml_get_widget (xml, "owner_hbox");
|
||||||
hbox = glade_xml_get_widget (xml, "owner_hbox");
|
ow->owner_label = glade_xml_get_widget (xml, "owner_label");
|
||||||
label = glade_xml_get_widget (xml, "owner_label");
|
|
||||||
|
|
||||||
/* default to ok */
|
/* default to ok */
|
||||||
gnome_dialog_editable_enters (owd, GTK_EDITABLE (ow->id_entry));
|
gnome_dialog_editable_enters (owd, GTK_EDITABLE (ow->id_entry));
|
||||||
@ -600,7 +625,6 @@ gnc_order_new_window (GtkWidget *parent, GNCBook *bookp,
|
|||||||
class_name = DIALOG_VIEW_ORDER_CM_CLASS;
|
class_name = DIALOG_VIEW_ORDER_CM_CLASS;
|
||||||
/* FALLTHROUGH */
|
/* FALLTHROUGH */
|
||||||
case EDIT_ORDER:
|
case EDIT_ORDER:
|
||||||
ow->owner_choice = gnc_owner_edit_create (label, hbox, bookp, owner);
|
|
||||||
gtk_entry_set_text (GTK_ENTRY (ow->id_entry), gncOrderGetID (order));
|
gtk_entry_set_text (GTK_ENTRY (ow->id_entry), gncOrderGetID (order));
|
||||||
|
|
||||||
if (class_name == NULL)
|
if (class_name == NULL)
|
||||||
@ -608,7 +632,6 @@ gnc_order_new_window (GtkWidget *parent, GNCBook *bookp,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case NEW_ORDER:
|
case NEW_ORDER:
|
||||||
ow->owner_choice = gnc_owner_select_create (label, hbox, bookp, owner);
|
|
||||||
gtk_entry_set_text (GTK_ENTRY (ow->id_entry),
|
gtk_entry_set_text (GTK_ENTRY (ow->id_entry),
|
||||||
g_strdup_printf ("%.6d", gncOrderNextID(bookp)));
|
g_strdup_printf ("%.6d", gncOrderNextID(bookp)));
|
||||||
|
|
||||||
@ -623,18 +646,14 @@ gnc_order_new_window (GtkWidget *parent, GNCBook *bookp,
|
|||||||
ow);
|
ow);
|
||||||
}
|
}
|
||||||
|
|
||||||
gtk_signal_connect (GTK_OBJECT (ow->owner_choice), "changed",
|
|
||||||
GTK_SIGNAL_FUNC (gnc_order_owner_changed_cb),
|
|
||||||
ow);
|
|
||||||
|
|
||||||
gnc_table_realize_gui (gnc_entry_ledger_get_table (entry_ledger));
|
gnc_table_realize_gui (gnc_entry_ledger_get_table (entry_ledger));
|
||||||
|
|
||||||
/* Set the Reference */
|
|
||||||
gnc_order_owner_changed_cb (ow->owner_choice, ow);
|
|
||||||
|
|
||||||
/* Now fill in a lot of the pirces and display properly */
|
/* Now fill in a lot of the pirces and display properly */
|
||||||
gnc_order_update_window (ow);
|
gnc_order_update_window (ow);
|
||||||
|
|
||||||
|
/* Set the Reference */
|
||||||
|
gnc_order_owner_changed_cb (ow->owner_choice, ow);
|
||||||
|
|
||||||
return ow;
|
return ow;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user