r22234 - gnucash/trunk/src - Bug #666576 - Balance Column Set Too Narrow
Mike Evans
mikee at code.gnucash.org
Sat Jun 23 08:25:22 EDT 2012
Author: mikee
Date: 2012-06-23 08:25:22 -0400 (Sat, 23 Jun 2012)
New Revision: 22234
Trac: http://svn.gnucash.org/trac/changeset/22234
Modified:
gnucash/trunk/src/business/business-gnome/dialog-invoice.c
gnucash/trunk/src/business/business-gnome/dialog-order.c
gnucash/trunk/src/gnome/gnc-split-reg.c
gnucash/trunk/src/register/register-core/table-allgui.h
gnucash/trunk/src/register/register-gnome/table-gnome.c
Log:
Bug #666576 - Balance Column Set Too Narrow
Modified: gnucash/trunk/src/business/business-gnome/dialog-invoice.c
===================================================================
--- gnucash/trunk/src/business/business-gnome/dialog-invoice.c 2012-06-23 11:57:34 UTC (rev 22233)
+++ gnucash/trunk/src/business/business-gnome/dialog-invoice.c 2012-06-23 12:25:22 UTC (rev 22234)
@@ -2285,7 +2285,7 @@
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);
Modified: gnucash/trunk/src/business/business-gnome/dialog-order.c
===================================================================
--- gnucash/trunk/src/business/business-gnome/dialog-order.c 2012-06-23 11:57:34 UTC (rev 22233)
+++ gnucash/trunk/src/business/business-gnome/dialog-order.c 2012-06-23 12:25:22 UTC (rev 22234)
@@ -640,7 +640,7 @@
/* 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);
Modified: gnucash/trunk/src/gnome/gnc-split-reg.c
===================================================================
--- gnucash/trunk/src/gnome/gnc-split-reg.c 2012-06-23 11:57:34 UTC (rev 22233)
+++ gnucash/trunk/src/gnome/gnc-split-reg.c 2012-06-23 12:25:22 UTC (rev 22234)
@@ -388,6 +388,14 @@
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 @@
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 @@
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 @@
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
Modified: gnucash/trunk/src/register/register-core/table-allgui.h
===================================================================
--- gnucash/trunk/src/register/register-core/table-allgui.h 2012-06-23 11:57:34 UTC (rev 22233)
+++ gnucash/trunk/src/register/register-core/table-allgui.h 2012-06-23 12:25:22 UTC (rev 22234)
@@ -166,7 +166,7 @@
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 @@
/** 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);
Modified: gnucash/trunk/src/register/register-gnome/table-gnome.c
===================================================================
--- gnucash/trunk/src/register/register-gnome/table-gnome.c 2012-06-23 11:57:34 UTC (rev 22233)
+++ gnucash/trunk/src/register/register-gnome/table-gnome.c 2012-06-23 12:25:22 UTC (rev 22234)
@@ -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 @@
/** 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 @@
/* 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 @@
/* 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,13 +168,19 @@
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);
+
+ PINFO("gconf_key=%s",gconf_key);
+
+ ENTER("widget=%p, data=%p", widget, "");
+
- ENTER("widget=%p, data=%p", widget, data);
-
greg = GNUCASH_REGISTER (widget);
sheet = GNUCASH_SHEET (greg->sheet);
table = sheet->table;
@@ -190,7 +207,7 @@
/* 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);
More information about the gnucash-changes
mailing list