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