Skip to content

Commit

Permalink
Convert customer dialog to gtkbuilder
Browse files Browse the repository at this point in the history
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@21494 57a11ea4-9604-0410-9ed3-97b8803252fd
  • Loading branch information
gjanssens committed Oct 27, 2011
1 parent 6bee8b5 commit 8ba2af2
Show file tree
Hide file tree
Showing 5 changed files with 499 additions and 382 deletions.
5 changes: 3 additions & 2 deletions po/POTFILES.in
Expand Up @@ -103,7 +103,6 @@ src/business/business-gnome/dialog-vendor.c
src/business/business-gnome/glade/billterms.glade
src/business/business-gnome/glade/businessprefs.glade
src/business/business-gnome/glade/choose-owner.glade
src/business/business-gnome/glade/customer.glade
src/business/business-gnome/glade/date-close.glade
src/business/business-gnome/glade/employee.glade
src/business/business-gnome/glade/job.glade
Expand All @@ -114,7 +113,9 @@ src/business/business-gnome/gncmod-business-gnome.c
src/business/business-gnome/gnc-plugin-business.c
src/business/business-gnome/gnc-plugin-page-invoice.c
src/business/business-gnome/gnc-plugin-page-owner-tree.c
src/business/business-gnome/gtkbuilder/invoice.glade
src/business/business-gnome/gtkbuilder/dialog-customer.glade
src/business/business-gnome/gtkbuilder/dialog-invoice.glade
src/business/business-gnome/gtkbuilder/dialog-vendor.glade
src/business/business-gnome/schemas/apps_gnucash_dialog_business_common.schemas.in
src/business/business-gnome/search-owner.c
src/business/business-ledger/gncEntryLedger.c
Expand Down
127 changes: 87 additions & 40 deletions src/business/business-gnome/dialog-customer.c
Expand Up @@ -65,6 +65,9 @@ void gnc_customer_window_cancel_cb (GtkWidget *widget, gpointer data);
void gnc_customer_window_help_cb (GtkWidget *widget, gpointer data);
void gnc_customer_window_destroy_cb (GtkWidget *widget, gpointer data);
void gnc_customer_name_changed_cb (GtkWidget *widget, gpointer data);
void gnc_customer_terms_changed_cb (GtkWidget *widget, gpointer data);
void gnc_customer_taxincluded_changed_cb (GtkWidget *widget, gpointer data);
void gnc_customer_taxtable_changed_cb (GtkWidget *widget, gpointer data);
void gnc_customer_addr2_insert_cb(GtkEditable *editable,
gchar *new_text, gint new_text_length,
gint *position, gpointer user_data);
Expand Down Expand Up @@ -443,6 +446,45 @@ gnc_customer_name_changed_cb (GtkWidget *widget, gpointer data)
g_free (title);
}

void
gnc_customer_terms_changed_cb (GtkWidget *widget, gpointer data)
{
GtkComboBox *cbox = GTK_COMBO_BOX (widget);
CustomerWindow *cw = data;
gchar *title;

if (!cw) return;
if (!cbox) return;

cw->terms = gnc_simple_combo_get_value (cbox);
}

void
gnc_customer_taxincluded_changed_cb (GtkWidget *widget, gpointer data)
{
GtkComboBox *cbox = GTK_COMBO_BOX (widget);
CustomerWindow *cw = data;
gchar *title;

if (!cw) return;
if (!cbox) return;

cw->taxincluded = GPOINTER_TO_INT (gnc_simple_combo_get_value (cbox));
}

void
gnc_customer_taxtable_changed_cb (GtkWidget *widget, gpointer data)
{
GtkComboBox *cbox = GTK_COMBO_BOX (widget);
CustomerWindow *cw = data;
gchar *title;

if (!cw) return;
if (!cbox) return;

cw->taxtable = gnc_simple_combo_get_value (cbox);
}

static void
gnc_customer_window_close_handler (gpointer user_data)
{
Expand Down Expand Up @@ -492,7 +534,7 @@ static CustomerWindow *
gnc_customer_new_window (QofBook *bookp, GncCustomer *cust)
{
CustomerWindow *cw;
GladeXML *xml;
GtkBuilder *builder;
GtkWidget *hbox, *edit;
gnc_commodity *currency;
GNCPrintAmountInfo print_info;
Expand Down Expand Up @@ -529,48 +571,52 @@ gnc_customer_new_window (QofBook *bookp, GncCustomer *cust)
cw->book = bookp;

/* Find the dialog */
xml = gnc_glade_xml_new ("customer.glade", "Customer Dialog");
cw->dialog = glade_xml_get_widget (xml, "Customer Dialog");
builder = gtk_builder_new();
gnc_builder_add_from_file (builder, "dialog-customer.glade", "terms_store");
gnc_builder_add_from_file (builder, "dialog-customer.glade", "tax_included_store");
gnc_builder_add_from_file (builder, "dialog-customer.glade", "taxtable_store");
gnc_builder_add_from_file (builder, "dialog-customer.glade", "Customer Dialog");
cw->dialog = GTK_WIDGET (gtk_builder_get_object (builder, "Customer Dialog"));

g_object_set_data (G_OBJECT (cw->dialog), "dialog_info", cw);

/* Get entry points */
cw->id_entry = glade_xml_get_widget (xml, "id_entry");
cw->company_entry = glade_xml_get_widget (xml, "company_entry");

cw->name_entry = glade_xml_get_widget (xml, "name_entry");
cw->addr1_entry = glade_xml_get_widget (xml, "addr1_entry");
cw->addr2_entry = glade_xml_get_widget (xml, "addr2_entry");
cw->addr3_entry = glade_xml_get_widget (xml, "addr3_entry");
cw->addr4_entry = glade_xml_get_widget (xml, "addr4_entry");
cw->phone_entry = glade_xml_get_widget (xml, "phone_entry");
cw->fax_entry = glade_xml_get_widget (xml, "fax_entry");
cw->email_entry = glade_xml_get_widget (xml, "email_entry");

cw->shipname_entry = glade_xml_get_widget (xml, "shipname_entry");
cw->shipaddr1_entry = glade_xml_get_widget (xml, "shipaddr1_entry");
cw->shipaddr2_entry = glade_xml_get_widget (xml, "shipaddr2_entry");
cw->shipaddr3_entry = glade_xml_get_widget (xml, "shipaddr3_entry");
cw->shipaddr4_entry = glade_xml_get_widget (xml, "shipaddr4_entry");
cw->shipphone_entry = glade_xml_get_widget (xml, "shipphone_entry");
cw->shipfax_entry = glade_xml_get_widget (xml, "shipfax_entry");
cw->shipemail_entry = glade_xml_get_widget (xml, "shipemail_entry");

cw->active_check = glade_xml_get_widget (xml, "active_check");
cw->taxincluded_menu = glade_xml_get_widget (xml, "tax_included_menu");
cw->notes_text = glade_xml_get_widget (xml, "notes_text");

cw->terms_menu = glade_xml_get_widget (xml, "terms_menu");

cw->taxtable_check = glade_xml_get_widget (xml, "taxtable_button");
cw->taxtable_menu = glade_xml_get_widget (xml, "taxtable_menu");
cw->id_entry = GTK_WIDGET (gtk_builder_get_object (builder, "id_entry"));
cw->company_entry = GTK_WIDGET (gtk_builder_get_object (builder, "company_entry"));

cw->name_entry = GTK_WIDGET (gtk_builder_get_object (builder, "name_entry"));
cw->addr1_entry = GTK_WIDGET (gtk_builder_get_object (builder, "addr1_entry"));
cw->addr2_entry = GTK_WIDGET (gtk_builder_get_object (builder, "addr2_entry"));
cw->addr3_entry = GTK_WIDGET (gtk_builder_get_object (builder, "addr3_entry"));
cw->addr4_entry = GTK_WIDGET (gtk_builder_get_object (builder, "addr4_entry"));
cw->phone_entry = GTK_WIDGET (gtk_builder_get_object (builder, "phone_entry"));
cw->fax_entry = GTK_WIDGET (gtk_builder_get_object (builder, "fax_entry"));
cw->email_entry = GTK_WIDGET (gtk_builder_get_object (builder, "email_entry"));

cw->shipname_entry = GTK_WIDGET (gtk_builder_get_object (builder, "shipname_entry"));
cw->shipaddr1_entry = GTK_WIDGET (gtk_builder_get_object (builder, "shipaddr1_entry"));
cw->shipaddr2_entry = GTK_WIDGET (gtk_builder_get_object (builder, "shipaddr2_entry"));
cw->shipaddr3_entry = GTK_WIDGET (gtk_builder_get_object (builder, "shipaddr3_entry"));
cw->shipaddr4_entry = GTK_WIDGET (gtk_builder_get_object (builder, "shipaddr4_entry"));
cw->shipphone_entry = GTK_WIDGET (gtk_builder_get_object (builder, "shipphone_entry"));
cw->shipfax_entry = GTK_WIDGET (gtk_builder_get_object (builder, "shipfax_entry"));
cw->shipemail_entry = GTK_WIDGET (gtk_builder_get_object (builder, "shipemail_entry"));

cw->active_check = GTK_WIDGET (gtk_builder_get_object (builder, "active_check"));
cw->taxincluded_menu = GTK_WIDGET (gtk_builder_get_object (builder, "tax_included_menu"));
cw->notes_text = GTK_WIDGET (gtk_builder_get_object (builder, "notes_text"));

cw->terms_menu = GTK_WIDGET (gtk_builder_get_object (builder, "terms_menu"));

cw->taxtable_check = GTK_WIDGET (gtk_builder_get_object (builder, "taxtable_button"));
cw->taxtable_menu = GTK_WIDGET (gtk_builder_get_object (builder, "taxtable_menu"));

/* Currency */
edit = gnc_currency_edit_new();
gnc_currency_edit_set_currency (GNC_CURRENCY_EDIT(edit), currency);
cw->currency_edit = edit;

hbox = glade_xml_get_widget (xml, "currency_box");
hbox = GTK_WIDGET (gtk_builder_get_object (builder, "currency_box"));
gtk_box_pack_start (GTK_BOX (hbox), edit, TRUE, TRUE, 0);

/* DISCOUNT: Percentage Value */
Expand All @@ -583,7 +629,7 @@ gnc_customer_new_window (QofBook *bookp, GncCustomer *cust)
cw->discount_amount = edit;
gtk_widget_show (edit);

hbox = glade_xml_get_widget (xml, "discount_box");
hbox = GTK_WIDGET (gtk_builder_get_object (builder, "discount_box"));
gtk_box_pack_start (GTK_BOX (hbox), edit, TRUE, TRUE, 0);

/* CREDIT: Monetary Value */
Expand All @@ -596,12 +642,12 @@ gnc_customer_new_window (QofBook *bookp, GncCustomer *cust)
cw->credit_amount = edit;
gtk_widget_show (edit);

hbox = glade_xml_get_widget (xml, "credit_box");
hbox = GTK_WIDGET (gtk_builder_get_object (builder, "credit_box"));
gtk_box_pack_start (GTK_BOX (hbox), edit, TRUE, TRUE, 0);

/* Setup signals */
glade_xml_signal_autoconnect_full( xml,
gnc_glade_autoconnect_full_func,
gtk_builder_connect_signals_full( builder,
gnc_builder_connect_full_func,
cw);

/* Setup initial values */
Expand Down Expand Up @@ -675,11 +721,11 @@ gnc_customer_new_window (QofBook *bookp, GncCustomer *cust)
/* I know that cust exists here -- either passed in or just created */

cw->taxincluded = gncCustomerGetTaxIncluded (cust);
gnc_ui_taxincluded_optionmenu (cw->taxincluded_menu, &cw->taxincluded);
gnc_ui_billterms_optionmenu (cw->terms_menu, bookp, TRUE, &cw->terms);
gnc_taxincluded_combo (GTK_COMBO_BOX(cw->taxincluded_menu), cw->taxincluded);
gnc_billterms_combo (GTK_COMBO_BOX(cw->terms_menu), bookp, TRUE, cw->terms);

cw->taxtable = gncCustomerGetTaxTable (cust);
gnc_ui_taxtables_optionmenu (cw->taxtable_menu, bookp, TRUE, &cw->taxtable);
gnc_taxtables_combo (GTK_COMBO_BOX(cw->taxtable_menu), bookp, TRUE, cw->taxtable);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cw->taxtable_check),
gncCustomerGetTaxTableOverride (cust));
gnc_customer_taxtable_check_cb (GTK_TOGGLE_BUTTON (cw->taxtable_check), cw);
Expand All @@ -700,6 +746,7 @@ gnc_customer_new_window (QofBook *bookp, GncCustomer *cust)
QOF_EVENT_MODIFY | QOF_EVENT_DESTROY);

gtk_widget_show_all (cw->dialog);
g_object_unref(G_OBJECT(builder));

return cw;
}
Expand Down
1 change: 0 additions & 1 deletion src/business/business-gnome/glade/Makefile.am
Expand Up @@ -3,7 +3,6 @@ glade_DATA = \
billterms.glade \
businessprefs.glade \
choose-owner.glade \
customer.glade \
date-close.glade \
employee.glade \
job.glade \
Expand Down
2 changes: 1 addition & 1 deletion src/business/business-gnome/gtkbuilder/Makefile.am
@@ -1,10 +1,10 @@
gtkbuilderdir = $(GNC_GTKBUILDER_DIR)
gtkbuilder_DATA = \
dialog-customer.glade \
dialog-invoice.glade
# billterms.glade \
# businessprefs.glade \
# choose-owner.glade \
# customer.glade \
# date-close.glade \
# employee.glade \
# job.glade \
Expand Down

0 comments on commit 8ba2af2

Please sign in to comment.