* src/gnome/dialog-price-editor.c: more work

* src/gnome/account-tree.c (gnc_account_tree_insert_row): speedup
	refreshing

	* src/gnome/account-tree.h: remove duplicate declaration


git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3911 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Dave Peticolas 2001-04-09 06:53:57 +00:00
parent 31abed7557
commit 499423203e
4 changed files with 110 additions and 88 deletions

View File

@ -1,5 +1,12 @@
2001-04-08 Dave Peticolas <dave@krondo.com> 2001-04-08 Dave Peticolas <dave@krondo.com>
* src/gnome/dialog-price-editor.c: more work
* src/gnome/account-tree.c (gnc_account_tree_insert_row): speedup
refreshing
* src/gnome/account-tree.h: remove duplicate declaration
* src/scm/report/taxtxf.scm: don't use deprecated calls * src/scm/report/taxtxf.scm: don't use deprecated calls
* src/guile/gnc.gwp: wrap xaccAccountGetSplitList * src/guile/gnc.gwp: wrap xaccAccountGetSplitList

View File

@ -1156,15 +1156,20 @@ gnc_account_tree_insert_row(GNCAccountTree *tree,
if (acc == NULL) if (acc == NULL)
return NULL; return NULL;
for (i = 0; i < tree->num_columns; i++) { for (i = 0; i < tree->num_columns; i++)
text[i] = {
g_strdup(gnc_ui_get_account_field_value_string(acc, AccountFieldCode field;
tree->column_fields[i]));
field = tree->column_fields[i];
if (tree->avi.show_field[field])
text[i] = g_strdup(gnc_ui_get_account_field_value_string(acc, field));
else
text[i] = NULL;
/* Since string fields like notes can be NULL */ /* Since string fields like notes can be NULL */
if(!text[i]) { if (!text[i])
text[i] = g_strdup(""); text[i] = g_strdup("");
}
} }
text[tree->num_columns] = NULL; text[tree->num_columns] = NULL;

View File

@ -66,7 +66,7 @@ struct _GNCAccountTree
gint num_columns; gint num_columns;
gint balance_column; gint balance_column;
gint total_column; gint total_column;
gint column_fields[NUM_ACCOUNT_FIELDS]; AccountFieldCode column_fields[NUM_ACCOUNT_FIELDS];
const gchar * column_headings[NUM_ACCOUNT_FIELDS + 1]; const gchar * column_headings[NUM_ACCOUNT_FIELDS + 1];
@ -105,9 +105,6 @@ GtkWidget * gnc_account_tree_new_with_root (Account *account);
void gnc_account_tree_refresh (GNCAccountTree *tree); void gnc_account_tree_refresh (GNCAccountTree *tree);
void gnc_account_tree_set_view_info (GNCAccountTree *tree,
AccountViewInfo *info);
gboolean gnc_account_tree_select_account (GNCAccountTree *tree, gboolean gnc_account_tree_select_account (GNCAccountTree *tree,
Account *account, Account *account,
gboolean show_account); gboolean show_account);

View File

@ -74,6 +74,9 @@ static gint last_width = 0;
static gint last_height = 0; static gint last_height = 0;
static void gnc_price_dialog_create (PricesDialog *pdb_dialog);
static void static void
gnc_prices_set_changed (PricesDialog *pdb_dialog, gboolean changed) gnc_prices_set_changed (PricesDialog *pdb_dialog, gboolean changed)
{ {
@ -374,6 +377,9 @@ price_window_delete_cb (GtkWidget *widget, GdkEvent *event, gpointer data)
pdb_dialog->new = FALSE; pdb_dialog->new = FALSE;
} }
pdb_dialog->price_dialog = NULL;
gnc_price_dialog_create (pdb_dialog);
gnc_prices_load_prices (pdb_dialog); gnc_prices_load_prices (pdb_dialog);
/* delete the window */ /* delete the window */
@ -615,23 +621,19 @@ prices_set_min_widths (PricesDialog *pdb_dialog)
} }
static void static void
gnc_prices_dialog_create (GtkWidget * parent, PricesDialog *pdb_dialog) gnc_price_dialog_create (PricesDialog *pdb_dialog)
{ {
GtkWidget *dialog; GNCPrintAmountInfo print_info;
GtkWidget *price_dialog; GtkWidget *price_dialog;
GtkWidget *button;
dialog = create_Prices_Dialog (); GtkWidget *entry;
pdb_dialog->dialog = dialog; GtkWidget *menu;
GtkWidget *box;
GtkWidget *w;
price_dialog = create_Price_Dialog (); price_dialog = create_Price_Dialog ();
pdb_dialog->price_dialog = price_dialog; pdb_dialog->price_dialog = price_dialog;
gnome_dialog_set_parent (GNOME_DIALOG (price_dialog), GTK_WINDOW (dialog));
gnome_dialog_button_connect (GNOME_DIALOG (dialog), 0,
GTK_SIGNAL_FUNC (prices_close_clicked),
pdb_dialog);
gnome_dialog_button_connect (GNOME_DIALOG (price_dialog), 0, gnome_dialog_button_connect (GNOME_DIALOG (price_dialog), 0,
GTK_SIGNAL_FUNC (price_ok_clicked), GTK_SIGNAL_FUNC (price_ok_clicked),
pdb_dialog); pdb_dialog);
@ -640,13 +642,87 @@ gnc_prices_dialog_create (GtkWidget * parent, PricesDialog *pdb_dialog)
GTK_SIGNAL_FUNC (price_cancel_clicked), GTK_SIGNAL_FUNC (price_cancel_clicked),
pdb_dialog); pdb_dialog);
gtk_signal_connect (GTK_OBJECT (dialog), "destroy",
GTK_SIGNAL_FUNC (window_destroy_cb), pdb_dialog);
gtk_signal_connect (GTK_OBJECT (price_dialog), "delete_event", gtk_signal_connect (GTK_OBJECT (price_dialog), "delete_event",
GTK_SIGNAL_FUNC (price_window_delete_cb), GTK_SIGNAL_FUNC (price_window_delete_cb),
pdb_dialog); pdb_dialog);
box = lookup_widget (price_dialog, "commodity_box");
w = gnc_commodity_edit_new ();
pdb_dialog->commodity_edit = w;
gtk_box_pack_start (GTK_BOX (box), w, TRUE, TRUE, 0);
gtk_widget_show (w);
gtk_signal_connect (GTK_OBJECT (w), "changed",
GTK_SIGNAL_FUNC (commodity_changed_cb), pdb_dialog);
box = lookup_widget (price_dialog, "currency_box");
w = gnc_currency_edit_new ();
pdb_dialog->currency_edit = w;
gtk_box_pack_start (GTK_BOX (box), w, TRUE, TRUE, 0);
gtk_widget_show (w);
gtk_signal_connect (GTK_OBJECT (GTK_COMBO(w)->entry), "changed",
GTK_SIGNAL_FUNC (currency_changed_cb), pdb_dialog);
box = lookup_widget (price_dialog, "date_box");
w = gnc_date_edit_new (time (NULL), FALSE, FALSE);
pdb_dialog->date_edit = w;
gtk_box_pack_start (GTK_BOX (box), w, TRUE, TRUE, 0);
gtk_widget_show (w);
gtk_signal_connect (GTK_OBJECT (w), "date_changed",
GTK_SIGNAL_FUNC (date_changed_cb), pdb_dialog);
w = lookup_widget (price_dialog, "source_entry");
pdb_dialog->source_entry = w;
w = lookup_widget (price_dialog, "type_option");
pdb_dialog->type_option = w;
gnc_option_menu_init (w);
menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (w));
gtk_container_forall (GTK_CONTAINER (menu),
connect_type_menu_item, pdb_dialog);
box = lookup_widget (price_dialog, "price_box");
w = gnc_amount_edit_new ();
pdb_dialog->price_edit = w;
gtk_box_pack_start (GTK_BOX (box), w, TRUE, TRUE, 0);
gnc_amount_edit_set_evaluate_on_enter (GNC_AMOUNT_EDIT (w), TRUE);
print_info = gnc_default_price_print_info ();
gnc_amount_edit_set_print_info (GNC_AMOUNT_EDIT (w), print_info);
gnc_amount_edit_set_fraction (GNC_AMOUNT_EDIT (w), 1000000);
gtk_widget_show (w);
entry = gnc_amount_edit_gtk_entry (GNC_AMOUNT_EDIT (w));
gtk_signal_connect (GTK_OBJECT (entry), "changed",
GTK_SIGNAL_FUNC (amount_changed_cb), pdb_dialog);
}
static void
gnc_prices_dialog_create (GtkWidget * parent, PricesDialog *pdb_dialog)
{
GtkWidget *dialog;
dialog = create_Prices_Dialog ();
pdb_dialog->dialog = dialog;
gnc_price_dialog_create (pdb_dialog);
gnome_dialog_set_parent (GNOME_DIALOG (pdb_dialog->price_dialog),
GTK_WINDOW (dialog));
gnome_dialog_button_connect (GNOME_DIALOG (dialog), 0,
GTK_SIGNAL_FUNC (prices_close_clicked),
pdb_dialog);
gtk_signal_connect (GTK_OBJECT (dialog), "destroy",
GTK_SIGNAL_FUNC (window_destroy_cb), pdb_dialog);
/* parent */ /* parent */
if (parent != NULL) if (parent != NULL)
gnome_dialog_set_parent (GNOME_DIALOG (dialog), GTK_WINDOW (parent)); gnome_dialog_set_parent (GNOME_DIALOG (dialog), GTK_WINDOW (parent));
@ -655,70 +731,7 @@ gnc_prices_dialog_create (GtkWidget * parent, PricesDialog *pdb_dialog)
gnome_dialog_set_default (GNOME_DIALOG(dialog), 0); gnome_dialog_set_default (GNOME_DIALOG(dialog), 0);
/* price information */ /* price information */
{
GNCPrintAmountInfo print_info;
GtkWidget *button;
GtkWidget *entry;
GtkWidget *menu;
GtkWidget *box;
GtkWidget *w;
box = lookup_widget (price_dialog, "commodity_box");
w = gnc_commodity_edit_new ();
pdb_dialog->commodity_edit = w;
gtk_box_pack_start (GTK_BOX (box), w, TRUE, TRUE, 0);
gtk_widget_show (w);
gtk_signal_connect (GTK_OBJECT (w), "changed",
GTK_SIGNAL_FUNC (commodity_changed_cb), pdb_dialog);
box = lookup_widget (price_dialog, "currency_box");
w = gnc_currency_edit_new ();
pdb_dialog->currency_edit = w;
gtk_box_pack_start (GTK_BOX (box), w, TRUE, TRUE, 0);
gtk_widget_show (w);
gtk_signal_connect (GTK_OBJECT (GTK_COMBO(w)->entry), "changed",
GTK_SIGNAL_FUNC (currency_changed_cb), pdb_dialog);
box = lookup_widget (price_dialog, "date_box");
w = gnc_date_edit_new (time (NULL), FALSE, FALSE);
pdb_dialog->date_edit = w;
gtk_box_pack_start (GTK_BOX (box), w, TRUE, TRUE, 0);
gtk_widget_show (w);
gtk_signal_connect (GTK_OBJECT (w), "date_changed",
GTK_SIGNAL_FUNC (date_changed_cb), pdb_dialog);
w = lookup_widget (price_dialog, "source_entry");
pdb_dialog->source_entry = w;
w = lookup_widget (price_dialog, "type_option");
pdb_dialog->type_option = w;
gnc_option_menu_init (w);
menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (w));
gtk_container_forall (GTK_CONTAINER (menu),
connect_type_menu_item, pdb_dialog);
box = lookup_widget (price_dialog, "price_box");
w = gnc_amount_edit_new ();
pdb_dialog->price_edit = w;
gtk_box_pack_start (GTK_BOX (box), w, TRUE, TRUE, 0);
gnc_amount_edit_set_evaluate_on_enter (GNC_AMOUNT_EDIT (w), TRUE);
print_info = gnc_default_price_print_info ();
gnc_amount_edit_set_print_info (GNC_AMOUNT_EDIT (w), print_info);
gnc_amount_edit_set_fraction (GNC_AMOUNT_EDIT (w), 1000000);
gtk_widget_show (w);
entry = gnc_amount_edit_gtk_entry (GNC_AMOUNT_EDIT (w));
gtk_signal_connect (GTK_OBJECT (entry), "changed",
GTK_SIGNAL_FUNC (amount_changed_cb), pdb_dialog);
}
/* price tree */ /* price tree */
{ {