Bug #666576 - Balance Column Set Too Narrow

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@22234 57a11ea4-9604-0410-9ed3-97b8803252fd
pull/1/head
Mike Evans 14 years ago
parent 65c5311a1c
commit 9c4f76d5ff

@ -2285,7 +2285,7 @@ gnc_invoice_create_page (InvoiceWindow *iw, gpointer page)
regWidget = gnucash_register_new (gnc_entry_ledger_get_table
(entry_ledger));
gtk_widget_show(regWidget);
gnc_table_init_gui( regWidget, entry_ledger );
gnc_table_init_gui( regWidget, NULL);
frame = GTK_WIDGET (gtk_builder_get_object (builder, "ledger_frame"));
gtk_container_add (GTK_CONTAINER (frame), regWidget);

@ -640,7 +640,7 @@ gnc_order_new_window (QofBook *bookp, OrderDialogType type,
/* Watch the order of operations, here... */
regWidget = gnucash_register_new (gnc_entry_ledger_get_table (entry_ledger));
gnc_table_init_gui( regWidget, entry_ledger );
gnc_table_init_gui( regWidget, NULL);
ow->reg = GNUCASH_REGISTER (regWidget);
GNUCASH_SHEET (ow->reg->sheet)->window = GTK_WIDGET(ow->dialog);
gnc_entry_ledger_set_parent (entry_ledger, ow->dialog);

@ -388,6 +388,14 @@ gsr_create_table( GNCSplitReg *gsr )
GtkWidget *register_widget;
SplitRegister *sr;
gchar *gconf_key;
const GncGUID * guid;
Account * account;
account = gnc_ledger_display_leader(gsr->ledger);
guid = xaccAccountGetGUID(account);
gconf_key = (gchar*)guid_to_string (guid);
ENTER("gsr=%p", gsr);
gnc_ledger_display_set_user_data( gsr->ledger, (gpointer)gsr );
@ -399,8 +407,7 @@ gsr_create_table( GNCSplitReg *gsr )
sr = gnc_ledger_display_get_split_register( gsr->ledger );
register_widget = gnucash_register_new( sr->table );
gsr->reg = GNUCASH_REGISTER( register_widget );
gnc_table_init_gui( GTK_WIDGET(gsr->reg), sr );
gnc_table_init_gui( GTK_WIDGET(gsr->reg), gconf_key );
gtk_box_pack_start (GTK_BOX (gsr), GTK_WIDGET(gsr->reg), TRUE, TRUE, 0);
GNUCASH_SHEET(gsr->reg->sheet)->window = gsr->window;
gtk_widget_show ( GTK_WIDGET(gsr->reg) );
@ -696,7 +703,16 @@ static void
gnc_split_reg_ld_destroy( GNCLedgerDisplay *ledger )
{
GNCSplitReg *gsr = gnc_ledger_display_get_user_data( ledger );
gchar *gconf_key;
const GncGUID * guid;
Account * account;
account = gnc_ledger_display_leader(ledger);
guid = xaccAccountGetGUID(account);
gconf_key = (gchar*)guid_to_string (guid);
if (gsr)
{
SplitRegister *reg;
@ -704,7 +720,7 @@ gnc_split_reg_ld_destroy( GNCLedgerDisplay *ledger )
reg = gnc_ledger_display_get_split_register (ledger);
if (reg && reg->table)
gnc_table_save_state (reg->table);
gnc_table_save_state (reg->table, gconf_key);
/*
* Don't destroy the window here any more. The register no longer

@ -166,7 +166,7 @@ Table * gnc_table_new (TableLayout *layout,
TableControl *control);
void gnc_virtual_location_init (VirtualLocation *vloc);
void gnc_table_save_state (Table *table);
void gnc_table_save_state (Table *table, gchar *gconf_key);
void gnc_table_destroy (Table *table);
@ -303,7 +303,7 @@ gboolean gnc_table_find_close_valid_cell (Table *table,
/** UI-specific functions *******************************/
/* Initialize the GUI from a table */
void gnc_table_init_gui (GtkWidget *widget, gpointer data);
void gnc_table_init_gui (GtkWidget *widget, gchar * gconf_key);
void gnc_table_realize_gui (Table *table);

@ -53,6 +53,8 @@
#include "gnc-gconf-utils.h"
#include "gnc-engine.h"
#include "gnc-ledger-display.h"
#define GCONF_SECTION "window/pages/register"
@ -65,13 +67,17 @@ static QofLogModule log_module = GNC_MOD_REGISTER;
/** Implementation *****************************************************/
void
gnc_table_save_state (Table *table)
gnc_table_save_state (Table *table, gchar * gconf_key)
{
GnucashSheet *sheet;
GNCHeaderWidths widths;
GList *node;
gchar *key;
gchar * gconf_section;
if(gconf_key != NULL)gconf_section = g_strjoin(NULL,GCONF_SECTION, "/", gconf_key,NULL);
PINFO("gconf_key=%s",gconf_key );
if (!table)
return;
@ -102,7 +108,7 @@ gnc_table_save_state (Table *table)
/* Remember whether the column is visible */
key = g_strdup_printf("%s_width", cell->cell_name);
gnc_gconf_set_int(GCONF_SECTION, key, width, NULL);
gnc_gconf_set_int( gconf_section, key, width, NULL);
g_free(key);
}
@ -147,8 +153,13 @@ table_destroy_cb (Table *table)
/* Um, this function checks that data is not null but never uses it.
Weird. Also, since this function only works with a GnucashRegister
widget, maybe some of it should be moved to gnucash-sheet.c. */
/* Adding to previous note: Since data doesn't appear do anything and to
align the function with save_state() I've removed the check for
NULL and changed two calls in dialog_order.c and dialog_invoice.c
to pass NULL as second parameter. */
void
gnc_table_init_gui (GtkWidget *widget, void *data)
gnc_table_init_gui (GtkWidget *widget, gchar * gconf_key)
{
GNCHeaderWidths widths;
GnucashSheet *sheet;
@ -157,12 +168,18 @@ gnc_table_init_gui (GtkWidget *widget, void *data)
GList *node;
gchar *key;
guint value;
// Stuff for per-register settings load.
gchar * gconf_section;
if(gconf_key != NULL) gconf_section =g_strjoin(NULL,GCONF_SECTION, "/", gconf_key,NULL);
g_return_if_fail (widget != NULL);
g_return_if_fail (GNUCASH_IS_REGISTER (widget));
g_return_if_fail (data != NULL);
ENTER("widget=%p, data=%p", widget, data);
PINFO("gconf_key=%s",gconf_key);
ENTER("widget=%p, data=%p", widget, "");
greg = GNUCASH_REGISTER (widget);
sheet = GNUCASH_SHEET (greg->sheet);
@ -190,7 +207,7 @@ gnc_table_init_gui (GtkWidget *widget, void *data)
/* Remember whether the column is visible */
key = g_strdup_printf("%s_width", cell->cell_name);
value = gnc_gconf_get_int(GCONF_SECTION, key, NULL);
value = gnc_gconf_get_int(gconf_section, key, NULL);
if (value != 0)
gnc_header_widths_set_width (widths, cell->cell_name, value);
g_free(key);

Loading…
Cancel
Save