More line-wraps, cleanups, factoring new function: xaccTransGetSplitIndex().

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13538 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Chris Shoemaker
2006-03-08 05:47:36 +00:00
parent 9cc57ee534
commit a1b27bc933
4 changed files with 44 additions and 56 deletions

View File

@@ -1459,6 +1459,16 @@ xaccTransGetSplit (const Transaction *trans, int i)
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)
{

View File

@@ -262,6 +262,9 @@ const char * xaccTransGetNotes (const Transaction *trans);
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

View File

@@ -317,29 +317,25 @@ gnc_split_register_load (SplitRegister *reg, GList * slist,
{
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 @@ gnc_split_register_load (SplitRegister *reg, GList * slist,
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);

View File

@@ -74,19 +74,6 @@ static gboolean gnc_split_register_auto_calc (SplitRegister *reg,
/** 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 @@ void
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 @@ gnc_split_register_expand_current_trans (SplitRegister *reg, gboolean expand)
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 @@ gnc_split_register_expand_current_trans (SplitRegister *reg, gboolean expand)
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 @@ gnc_split_register_expand_current_trans (SplitRegister *reg, gboolean expand)
PERR ("Can't find place to go!");
return;
}
}
}
gnc_table_refresh_gui (reg->table, TRUE);
@@ -238,7 +219,8 @@ gnc_split_register_collapse_current_trans (SplitRegister *reg)
}
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 @@ gnc_split_register_get_current_split (SplitRegister *reg)
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 @@ gnc_split_register_get_split_virt_loc (SplitRegister *reg, Split *split,
int v_row;
int v_col;
if ((reg == NULL) || (split == NULL))
return FALSE;
if (!reg || !split) return FALSE;
table = reg->table;
@@ -330,10 +311,7 @@ gnc_split_register_get_split_virt_loc (SplitRegister *reg, Split *split,
Split *s;
vcell = gnc_table_get_virtual_cell (table, vc_loc);
if (vcell == NULL)
continue;
if (!vcell->visible)
if (!vcell || !vcell->visible)
continue;
s = xaccSplitLookup (vcell->vcell_data, gnc_get_current_book ());
@@ -521,8 +499,8 @@ gnc_split_register_duplicate_current (SplitRegister *reg)
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 @@ gnc_split_register_copy_current_internal (SplitRegister *reg,
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 @@ gnc_split_register_paste_current (SplitRegister *reg)
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,