[Gnucash-changes] r13538 - gnucash/trunk/src - More line-wraps, cleanups, factoring new function: xaccTransGetSplitIndex().

Chris Shoemaker chris at cvs.gnucash.org
Wed Mar 8 00:47:37 EST 2006


Author: chris
Date: 2006-03-08 00:47:36 -0500 (Wed, 08 Mar 2006)
New Revision: 13538
Trac: http://svn.gnucash.org/trac/changeset/13538

Modified:
   gnucash/trunk/src/engine/Transaction.c
   gnucash/trunk/src/engine/Transaction.h
   gnucash/trunk/src/register/ledger-core/split-register-load.c
   gnucash/trunk/src/register/ledger-core/split-register.c
Log:
   More line-wraps, cleanups, factoring new function: xaccTransGetSplitIndex().


Modified: gnucash/trunk/src/engine/Transaction.c
===================================================================
--- gnucash/trunk/src/engine/Transaction.c	2006-03-08 05:16:36 UTC (rev 13537)
+++ gnucash/trunk/src/engine/Transaction.c	2006-03-08 05:47:36 UTC (rev 13538)
@@ -1459,6 +1459,16 @@
     return NULL;
 }
 
+int
+xaccTransGetSplitIndex(const Transaction *trans, const Split *split) 
+{
+    int j = 0;
+    g_return_val_if_fail(trans && split, -1);
+
+    FOR_EACH_SPLIT(trans, { if (s == split) return j; j++; });
+    return -1;
+}
+
 SplitList *
 xaccTransGetSplitList (const Transaction *trans)
 {

Modified: gnucash/trunk/src/engine/Transaction.h
===================================================================
--- gnucash/trunk/src/engine/Transaction.h	2006-03-08 05:16:36 UTC (rev 13537)
+++ gnucash/trunk/src/engine/Transaction.h	2006-03-08 05:47:36 UTC (rev 13538)
@@ -262,6 +262,9 @@
     to start at zero, and keep incrementing until a null value is returned. */
 Split *       xaccTransGetSplit (const Transaction *trans, int i);
 
+/** Inverse of xaccTransGetSplit() */
+int xaccTransGetSplitIndex(const Transaction *trans, const Split *split);
+
 /** The xaccTransGetSplitList() method returns a GList of the splits
     in a transaction.  
     @return The list of splits. This list must NOT be modified.  Do *NOT* free

Modified: gnucash/trunk/src/register/ledger-core/split-register-load.c
===================================================================
--- gnucash/trunk/src/register/ledger-core/split-register-load.c	2006-03-08 05:16:36 UTC (rev 13537)
+++ gnucash/trunk/src/register/ledger-core/split-register-load.c	2006-03-08 05:47:36 UTC (rev 13538)
@@ -317,29 +317,25 @@
       {
         NumCell *cell;
 
-        cell = (NumCell *) gnc_table_layout_get_cell (reg->table->layout,
-                                                      NUM_CELL);
+        cell = (NumCell *) gnc_table_layout_get_cell(table->layout, NUM_CELL);
         gnc_num_cell_set_last_num (cell, last_num);
         has_last_num = TRUE;
       }
     }
 
     /* 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(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 ());
+    gnc_combo_cell_set_complete_char(
+        (ComboCell *) gnc_table_layout_get_cell(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_recn_cell_set_confirm_cb(
+        (RecnCell *) gnc_table_layout_get_cell(table->layout, RECN_CELL),
+        gnc_split_register_recn_cell_confirm, reg);
   
     /* load up account names into the transfer combobox menus */
     gnc_split_register_load_xfer_cells (reg, default_account);
@@ -539,8 +535,8 @@
   info->first_pass = FALSE;
   info->reg_loaded = TRUE;
 
-  gnc_split_register_set_cell_fractions
-    (reg, gnc_split_register_get_current_split (reg));
+  gnc_split_register_set_cell_fractions(
+      reg, gnc_split_register_get_current_split (reg));
 
   gnc_table_refresh_gui (table, TRUE);
 

Modified: gnucash/trunk/src/register/ledger-core/split-register.c
===================================================================
--- gnucash/trunk/src/register/ledger-core/split-register.c	2006-03-08 05:16:36 UTC (rev 13537)
+++ gnucash/trunk/src/register/ledger-core/split-register.c	2006-03-08 05:47:36 UTC (rev 13538)
@@ -74,19 +74,6 @@
 
 /** implementations *******************************************************/
 
-static int
-gnc_trans_split_index (Transaction *trans, Split *split)
-{
-    Split *s;
-    int i = 0;
-
-    while ((s = xaccTransGetSplit(trans, i)) != NULL) {
-        if (s == split) return i;
-        i++;
-    }
-    return -1;
-}
-
 /* Uses the scheme split copying routines */
 static void
 gnc_copy_split_onto_split(Split *from, Split *to, gboolean use_cut_semantics)
@@ -162,6 +149,7 @@
 gnc_split_register_expand_current_trans (SplitRegister *reg, gboolean expand)
 {
   SRInfo *info = gnc_split_register_get_info (reg);
+  VirtualLocation virt_loc;
 
   if (!reg)
     return;
@@ -176,8 +164,6 @@
 
   if (!expand)
   {
-    VirtualLocation virt_loc;
-
     virt_loc = reg->table->current_cursor_loc;
     gnc_split_register_get_trans_split (reg, virt_loc.vcell_loc,
                                         &virt_loc.vcell_loc);
@@ -197,16 +183,12 @@
                                   reg->table->current_cursor_loc.vcell_loc,
                                   gnc_split_register_get_active_cursor (reg));
 
-  gnc_split_register_set_trans_visible
-    (reg, reg->table->current_cursor_loc.vcell_loc, expand, FALSE);
+  gnc_split_register_set_trans_visible(
+      reg, reg->table->current_cursor_loc.vcell_loc, expand, FALSE);
 
+  virt_loc = reg->table->current_cursor_loc;
+  if (!expand || !gnc_table_virtual_loc_valid (reg->table, virt_loc, FALSE)) 
   {
-    VirtualLocation virt_loc;
-
-    virt_loc = reg->table->current_cursor_loc;
-
-    if (!expand || !gnc_table_virtual_loc_valid (reg->table, virt_loc, FALSE))
-    {
       if (gnc_table_find_close_valid_cell (reg->table, &virt_loc, FALSE))
         gnc_table_move_cursor_gui (reg->table, virt_loc);
       else
@@ -214,7 +196,6 @@
         PERR ("Can't find place to go!");
         return;
       }
-    }
   }
 
   gnc_table_refresh_gui (reg->table, TRUE);
@@ -238,7 +219,8 @@
 }
 
 void
-gnc_split_register_set_trans_collapsed_cb (SplitRegister *reg, GFunc cb, gpointer cb_data)
+gnc_split_register_set_trans_collapsed_cb (SplitRegister *reg, GFunc cb, 
+                                           gpointer cb_data)
 {
   if (!reg)
     return;
@@ -292,8 +274,8 @@
   if (reg == NULL)
     return NULL;
 
-  return gnc_split_register_get_split
-    (reg, reg->table->current_cursor_loc.vcell_loc);
+  return gnc_split_register_get_split(
+      reg, reg->table->current_cursor_loc.vcell_loc);
 }
 
 Split *
@@ -314,8 +296,7 @@
   int v_row;
   int v_col;
 
-  if ((reg == NULL) || (split == NULL))
-    return FALSE;
+  if (!reg || !split) return FALSE;
 
   table = reg->table;
 
@@ -330,12 +311,9 @@
       Split *s;
 
       vcell = gnc_table_get_virtual_cell (table, vc_loc);
-      if (vcell == NULL)
+      if (!vcell || !vcell->visible)
         continue;
 
-      if (!vcell->visible)
-        continue;
-
       s = xaccSplitLookup (vcell->vcell_data, gnc_get_current_book ());
 
       if (s == split)
@@ -521,8 +499,8 @@
       return NULL;
     }
 
-    split_index = gnc_trans_split_index (trans, split);
-    trans_split_index = gnc_trans_split_index (trans, trans_split);
+    split_index = xaccTransGetSplitIndex(trans, split);
+    trans_split_index = xaccTransGetSplitIndex(trans, trans_split);
 
     /* we should *always* find the split, but be paranoid */
     if (split_index < 0)
@@ -632,7 +610,7 @@
         int split_index;
         SCM split_scm;
 
-        split_index = gnc_trans_split_index(trans, split);
+        split_index = xaccTransGetSplitIndex(trans, split);
         if (split_index >= 0)
           split_scm = gnc_trans_scm_get_split_scm(new_item, split_index);
         else
@@ -807,11 +785,12 @@
       blank_split = NULL;
     }
 
-    split_index = gnc_trans_split_index(trans, split);
-    trans_split_index = gnc_trans_split_index(trans, trans_split);
+    split_index = xaccTransGetSplitIndex(trans, split);
+    trans_split_index = xaccTransGetSplitIndex(trans, trans_split);
 
-    copied_leader = xaccAccountLookup (&copied_leader_guid, gnc_get_current_book ());
-    if (copied_leader && (gnc_split_register_get_default_account (reg) != NULL))
+    copied_leader = xaccAccountLookup(&copied_leader_guid,
+                                      gnc_get_current_book());
+    if (copied_leader && (gnc_split_register_get_default_account(reg) != NULL))
     {
       new_guid = &info->default_account;
       gnc_copy_trans_scm_onto_trans_swap_accounts(copied_item, trans,



More information about the gnucash-changes mailing list