[Gnucash-changes] partial fix to register window performance problem.

Linas Vepstas linas at cvs.gnucash.org
Mon May 31 18:48:32 EDT 2004


Log Message:
-----------
partial fix to register window performance problem.
See http://bugzilla.gnome.org/show_bug.cgi?id=120028 for details.
This patch can speed transaction commit significantly for
systems with a large number of accounts.  Initial register open 
remains slow.

Tags:
----
gnucash-1-8-branch

Modified Files:
--------------
    gnucash/src/register/ledger-core:
        split-register-load.c

Revision Data
-------------
Index: split-register-load.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/register/ledger-core/split-register-load.c,v
retrieving revision 1.23.2.1
retrieving revision 1.23.2.2
diff -Lsrc/register/ledger-core/split-register-load.c -Lsrc/register/ledger-core/split-register-load.c -u -r1.23.2.1 -r1.23.2.2
--- src/register/ledger-core/split-register-load.c
+++ src/register/ledger-core/split-register-load.c
@@ -390,6 +390,27 @@
           gnc_table_layout_get_cell (reg->table->layout, MEMO_CELL);
         gnc_quickfill_cell_add_completion (cell, xaccSplitGetMemo (s));
       }
+
+      /* set the completion character for the xfer cells */
+      gnc_combo_cell_set_complete_char
+        ((ComboCell *)
+         gnc_table_layout_get_cell (reg->table->layout, MXFRM_CELL),
+         gnc_get_account_separator ());
+    
+      gnc_combo_cell_set_complete_char
+        ((ComboCell *)
+         gnc_table_layout_get_cell (reg->table->layout, XFRM_CELL),
+         gnc_get_account_separator ());
+    
+      /* set the confirmation callback for the reconcile cell */
+      gnc_recn_cell_set_confirm_cb
+        ((RecnCell *)
+         gnc_table_layout_get_cell (reg->table->layout, RECN_CELL),
+         gnc_split_register_recn_cell_confirm, reg);
+    
+      gnc_split_register_load_xfer_cells (reg, default_account);
+      gnc_split_register_load_recn_cells (reg);
+      gnc_split_register_load_type_cells (reg);
     }
 
     if (trans == find_trans)
@@ -525,29 +546,9 @@
 
   gnc_split_register_show_trans (reg, table->current_cursor_loc.vcell_loc);
 
-  /* set the completion character for the xfer cells */
-  gnc_combo_cell_set_complete_char
-    ((ComboCell *)
-     gnc_table_layout_get_cell (reg->table->layout, MXFRM_CELL),
-     gnc_get_account_separator ());
-
-  gnc_combo_cell_set_complete_char
-    ((ComboCell *)
-     gnc_table_layout_get_cell (reg->table->layout, XFRM_CELL),
-     gnc_get_account_separator ());
-
-  /* set the confirmation callback for the reconcile cell */
-  gnc_recn_cell_set_confirm_cb
-    ((RecnCell *)
-     gnc_table_layout_get_cell (reg->table->layout, RECN_CELL),
-     gnc_split_register_recn_cell_confirm, reg);
-
   /* enable callback for cursor user-driven moves */
   gnc_table_control_allow_move (table->control, TRUE);
 
-  gnc_split_register_load_xfer_cells (reg, default_account);
-  gnc_split_register_load_recn_cells (reg);
-  gnc_split_register_load_type_cells (reg);
 }
 
 static void


More information about the gnucash-changes mailing list