mirror of
https://github.com/Gnucash/gnucash.git
synced 2026-09-03 20:53:02 -05:00
More cleanup.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5132 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
SUBDIRS=test
|
||||
|
||||
pkglib_LTLIBRARIES = libgncmod-backend-postgres.la
|
||||
libgncmod_backend_postgres_la_LDFLAGS =-module -lpq -L../../engine -lgncmod-engine ${GLIB_LIBS}
|
||||
libgncmod_backend_postgres_la_LDFLAGS =-module -lpq -L../../engine -L../../engine/.libs -lgncmod-engine ${GLIB_LIBS}
|
||||
|
||||
libgncmod_backend_postgres_la_SOURCES = \
|
||||
PostgresBackend.c \
|
||||
|
||||
@@ -626,6 +626,7 @@ xaccSRDuplicateCurrent (SplitRegister *reg)
|
||||
}
|
||||
else
|
||||
{
|
||||
NumCell *num_cell;
|
||||
Transaction *new_trans;
|
||||
int trans_split_index;
|
||||
int split_index;
|
||||
@@ -671,8 +672,9 @@ xaccSRDuplicateCurrent (SplitRegister *reg)
|
||||
xaccTransSetNum (new_trans, out_num);
|
||||
xaccTransCommitEdit (new_trans);
|
||||
|
||||
if (xaccSetNumCellLastNum ((NumCell *)
|
||||
gnc_register_get_cell (reg, NUM_CELL), out_num))
|
||||
num_cell = (NumCell *) gnc_table_layout_get_cell (reg->table->layout,
|
||||
NUM_CELL);
|
||||
if (xaccSetNumCellLastNum (num_cell, out_num))
|
||||
sr_set_last_num (reg, out_num);
|
||||
|
||||
g_free (out_num);
|
||||
@@ -1242,74 +1244,74 @@ xaccSRSaveRegEntryToSCM (SplitRegister *reg, SCM trans_scm, SCM split_scm,
|
||||
return FALSE;
|
||||
|
||||
/* copy the contents from the cursor to the split */
|
||||
if (gnc_register_get_cell_changed (reg, DATE_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout, DATE_CELL, TRUE))
|
||||
{
|
||||
BasicCell *cell;
|
||||
Timespec ts;
|
||||
|
||||
cell = gnc_register_get_cell (reg, DATE_CELL);
|
||||
cell = gnc_table_layout_get_cell (reg->table->layout, DATE_CELL);
|
||||
xaccDateCellGetDate((DateCell *) cell, &ts);
|
||||
|
||||
gnc_trans_scm_set_date(trans_scm, &ts);
|
||||
}
|
||||
|
||||
if (gnc_register_get_cell_changed (reg, NUM_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout, NUM_CELL, TRUE))
|
||||
{
|
||||
const char *value;
|
||||
|
||||
value = gnc_register_get_cell_value (reg, NUM_CELL);
|
||||
value = gnc_table_layout_get_cell_value (reg->table->layout, NUM_CELL);
|
||||
gnc_trans_scm_set_num (trans_scm, value);
|
||||
}
|
||||
|
||||
if (gnc_register_get_cell_changed (reg, DESC_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout, DESC_CELL, TRUE))
|
||||
{
|
||||
const char *value;
|
||||
|
||||
value = gnc_register_get_cell_value (reg, DESC_CELL);
|
||||
value = gnc_table_layout_get_cell_value (reg->table->layout, DESC_CELL);
|
||||
gnc_trans_scm_set_description (trans_scm, value);
|
||||
}
|
||||
|
||||
if (gnc_register_get_cell_changed (reg, NOTES_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout, NOTES_CELL, TRUE))
|
||||
{
|
||||
const char *value;
|
||||
|
||||
value = gnc_register_get_cell_value (reg, NOTES_CELL);
|
||||
value = gnc_table_layout_get_cell_value (reg->table->layout, NOTES_CELL);
|
||||
gnc_trans_scm_set_notes (trans_scm, value);
|
||||
}
|
||||
|
||||
if (gnc_register_get_cell_changed (reg, RECN_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout, RECN_CELL, TRUE))
|
||||
{
|
||||
BasicCell *cell;
|
||||
char flag;
|
||||
|
||||
cell = gnc_register_get_cell (reg, RECN_CELL);
|
||||
cell = gnc_table_layout_get_cell (reg->table->layout, RECN_CELL);
|
||||
flag = xaccRecnCellGetFlag ((RecnCell *) cell);
|
||||
|
||||
gnc_split_scm_set_reconcile_state(split_scm, flag);
|
||||
}
|
||||
|
||||
if (gnc_register_get_cell_changed (reg, ACTN_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout, ACTN_CELL, TRUE))
|
||||
{
|
||||
const char *value;
|
||||
|
||||
value = gnc_register_get_cell_value (reg, ACTN_CELL);
|
||||
value = gnc_table_layout_get_cell_value (reg->table->layout, ACTN_CELL);
|
||||
gnc_split_scm_set_action (split_scm, value);
|
||||
}
|
||||
|
||||
if (gnc_register_get_cell_changed (reg, MEMO_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout, MEMO_CELL, TRUE))
|
||||
{
|
||||
const char *value;
|
||||
|
||||
value = gnc_register_get_cell_value (reg, MEMO_CELL);
|
||||
value = gnc_table_layout_get_cell_value (reg->table->layout, MEMO_CELL);
|
||||
gnc_split_scm_set_memo (split_scm, value);
|
||||
}
|
||||
|
||||
if (gnc_register_get_cell_changed (reg, XFRM_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout, XFRM_CELL, TRUE))
|
||||
{
|
||||
Account *new_account;
|
||||
const char *new_name;
|
||||
|
||||
new_name = gnc_register_get_cell_value (reg, XFRM_CELL);
|
||||
new_name = gnc_table_layout_get_cell_value (reg->table->layout, XFRM_CELL);
|
||||
|
||||
new_account = xaccGetAccountFromFullName (gncGetCurrentGroup (),
|
||||
new_name,
|
||||
@@ -1322,7 +1324,7 @@ xaccSRSaveRegEntryToSCM (SplitRegister *reg, SCM trans_scm, SCM split_scm,
|
||||
if (reg->style == REG_STYLE_LEDGER)
|
||||
other_split_scm = gnc_trans_scm_get_other_split_scm (trans_scm, split_scm);
|
||||
|
||||
if (gnc_register_get_cell_changed (reg, MXFRM_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout, MXFRM_CELL, TRUE))
|
||||
{
|
||||
other_split_scm = gnc_trans_scm_get_other_split_scm (trans_scm, split_scm);
|
||||
|
||||
@@ -1345,7 +1347,7 @@ xaccSRSaveRegEntryToSCM (SplitRegister *reg, SCM trans_scm, SCM split_scm,
|
||||
Account *new_account;
|
||||
const char *name;
|
||||
|
||||
name = gnc_register_get_cell_value (reg, MXFRM_CELL);
|
||||
name = gnc_table_layout_get_cell_value (reg->table->layout, MXFRM_CELL);
|
||||
|
||||
new_account = xaccGetAccountFromFullName (gncGetCurrentGroup (),
|
||||
name,
|
||||
@@ -1356,18 +1358,20 @@ xaccSRSaveRegEntryToSCM (SplitRegister *reg, SCM trans_scm, SCM split_scm,
|
||||
}
|
||||
}
|
||||
|
||||
if (gnc_register_get_cell_changed (reg, DEBT_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, CRED_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
DEBT_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
CRED_CELL, TRUE))
|
||||
{
|
||||
BasicCell *cell;
|
||||
gnc_numeric new_value;
|
||||
gnc_numeric credit;
|
||||
gnc_numeric debit;
|
||||
|
||||
cell = gnc_register_get_cell (reg, CRED_CELL);
|
||||
cell = gnc_table_layout_get_cell (reg->table->layout, CRED_CELL);
|
||||
credit = xaccGetPriceCellValue ((PriceCell *) cell);
|
||||
|
||||
cell = gnc_register_get_cell (reg, DEBT_CELL);
|
||||
cell = gnc_table_layout_get_cell (reg->table->layout, DEBT_CELL);
|
||||
debit = xaccGetPriceCellValue ((PriceCell *) cell);
|
||||
|
||||
new_value = gnc_numeric_sub_fixed (debit, credit);
|
||||
@@ -1375,27 +1379,31 @@ xaccSRSaveRegEntryToSCM (SplitRegister *reg, SCM trans_scm, SCM split_scm,
|
||||
gnc_split_scm_set_value (split_scm, new_value);
|
||||
}
|
||||
|
||||
if (gnc_register_get_cell_changed (reg, PRIC_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout, PRIC_CELL, TRUE))
|
||||
{
|
||||
/* do nothing for now */
|
||||
}
|
||||
|
||||
if (gnc_register_get_cell_changed (reg, SHRS_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout, SHRS_CELL, TRUE))
|
||||
{
|
||||
BasicCell *cell;
|
||||
gnc_numeric shares;
|
||||
|
||||
cell = gnc_register_get_cell (reg, SHRS_CELL);
|
||||
cell = gnc_table_layout_get_cell (reg->table->layout, SHRS_CELL);
|
||||
|
||||
shares = xaccGetPriceCellValue ((PriceCell *) cell);
|
||||
|
||||
gnc_split_scm_set_amount (split_scm, shares);
|
||||
}
|
||||
|
||||
if (gnc_register_get_cell_changed (reg, DEBT_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, CRED_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, PRIC_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, SHRS_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
DEBT_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
CRED_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
PRIC_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
SHRS_CELL, TRUE))
|
||||
{
|
||||
if (other_split_scm != SCM_UNDEFINED)
|
||||
{
|
||||
@@ -1613,14 +1621,19 @@ sr_split_auto_calc (SplitRegister *reg, Split *split)
|
||||
account_type != CURRENCY)
|
||||
return;
|
||||
|
||||
price_changed = gnc_register_get_cell_changed (reg, PRIC_CELL, TRUE);
|
||||
amount_changed = (gnc_register_get_cell_changed (reg, DEBT_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, CRED_CELL, TRUE));
|
||||
shares_changed = gnc_register_get_cell_changed (reg, SHRS_CELL, TRUE);
|
||||
price_changed = gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
PRIC_CELL, TRUE);
|
||||
amount_changed = (gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
DEBT_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
CRED_CELL, TRUE));
|
||||
shares_changed = gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
SHRS_CELL, TRUE);
|
||||
|
||||
if (shares_changed)
|
||||
{
|
||||
cell = (PriceCell *) gnc_register_get_cell (reg, SHRS_CELL);
|
||||
cell = (PriceCell *) gnc_table_layout_get_cell (reg->table->layout,
|
||||
SHRS_CELL);
|
||||
amount = xaccGetPriceCellValue (cell);
|
||||
}
|
||||
else
|
||||
@@ -1628,7 +1641,8 @@ sr_split_auto_calc (SplitRegister *reg, Split *split)
|
||||
|
||||
if (price_changed)
|
||||
{
|
||||
cell = (PriceCell *) gnc_register_get_cell (reg, PRIC_CELL);
|
||||
cell = (PriceCell *) gnc_table_layout_get_cell (reg->table->layout,
|
||||
PRIC_CELL);
|
||||
price = xaccGetPriceCellValue (cell);
|
||||
}
|
||||
else
|
||||
@@ -1639,10 +1653,12 @@ sr_split_auto_calc (SplitRegister *reg, Split *split)
|
||||
gnc_numeric credit;
|
||||
gnc_numeric debit;
|
||||
|
||||
cell = (PriceCell *) gnc_register_get_cell (reg, CRED_CELL);
|
||||
cell = (PriceCell *) gnc_table_layout_get_cell (reg->table->layout,
|
||||
CRED_CELL);
|
||||
credit = xaccGetPriceCellValue (cell);
|
||||
|
||||
cell = (PriceCell *) gnc_register_get_cell (reg, DEBT_CELL);
|
||||
cell = (PriceCell *) gnc_table_layout_get_cell (reg->table->layout,
|
||||
DEBT_CELL);
|
||||
debit = xaccGetPriceCellValue (cell);
|
||||
|
||||
value = gnc_numeric_sub_fixed (debit, credit);
|
||||
@@ -1772,13 +1788,13 @@ sr_split_auto_calc (SplitRegister *reg, Split *split)
|
||||
|
||||
amount = gnc_numeric_div (value, price, denom, GNC_RND_ROUND);
|
||||
|
||||
cell = gnc_register_get_cell (reg, SHRS_CELL);
|
||||
cell = gnc_table_layout_get_cell (reg->table->layout, SHRS_CELL);
|
||||
xaccSetPriceCellValue ((PriceCell *) cell, amount);
|
||||
gnc_basic_cell_set_changed (cell, TRUE);
|
||||
|
||||
if (amount_changed)
|
||||
{
|
||||
cell = gnc_register_get_cell (reg, PRIC_CELL);
|
||||
cell = gnc_table_layout_get_cell (reg->table->layout, PRIC_CELL);
|
||||
gnc_basic_cell_set_changed (cell, FALSE);
|
||||
}
|
||||
}
|
||||
@@ -1797,8 +1813,11 @@ sr_split_auto_calc (SplitRegister *reg, Split *split)
|
||||
BasicCell *debit_cell;
|
||||
BasicCell *credit_cell;
|
||||
|
||||
debit_cell = gnc_register_get_cell (reg, DEBT_CELL);
|
||||
credit_cell = gnc_register_get_cell (reg, CRED_CELL);
|
||||
debit_cell = gnc_table_layout_get_cell (reg->table->layout,
|
||||
DEBT_CELL);
|
||||
|
||||
credit_cell = gnc_table_layout_get_cell (reg->table->layout,
|
||||
CRED_CELL);
|
||||
|
||||
price = gnc_numeric_neg (price);
|
||||
|
||||
@@ -1810,7 +1829,7 @@ sr_split_auto_calc (SplitRegister *reg, Split *split)
|
||||
gnc_basic_cell_set_changed (credit_cell, TRUE);
|
||||
}
|
||||
|
||||
price_cell = gnc_register_get_cell (reg, PRIC_CELL);
|
||||
price_cell = gnc_table_layout_get_cell (reg->table->layout, PRIC_CELL);
|
||||
xaccSetPriceCellValue ((PriceCell *) price_cell, price);
|
||||
gnc_basic_cell_set_changed (price_cell, TRUE);
|
||||
}
|
||||
@@ -1820,8 +1839,8 @@ sr_split_auto_calc (SplitRegister *reg, Split *split)
|
||||
BasicCell *debit_cell;
|
||||
BasicCell *credit_cell;
|
||||
|
||||
debit_cell = gnc_register_get_cell (reg, DEBT_CELL);
|
||||
credit_cell = gnc_register_get_cell (reg, CRED_CELL);
|
||||
debit_cell = gnc_table_layout_get_cell (reg->table->layout, DEBT_CELL);
|
||||
credit_cell = gnc_table_layout_get_cell (reg->table->layout, CRED_CELL);
|
||||
|
||||
denom = gnc_split_get_value_denom (split);
|
||||
|
||||
@@ -1837,7 +1856,7 @@ sr_split_auto_calc (SplitRegister *reg, Split *split)
|
||||
{
|
||||
BasicCell *cell;
|
||||
|
||||
cell = gnc_register_get_cell (reg, PRIC_CELL);
|
||||
cell = gnc_table_layout_get_cell (reg->table->layout, PRIC_CELL);
|
||||
gnc_basic_cell_set_changed (cell, FALSE);
|
||||
}
|
||||
}
|
||||
@@ -1862,9 +1881,12 @@ xaccSRSaveChangedTemplateCells( SplitRegister *reg,
|
||||
|
||||
template_acc = reg->templateAcct;
|
||||
|
||||
if ( gnc_register_get_cell_changed (reg, DATE_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, NUM_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, RECN_CELL, TRUE) )
|
||||
if ( gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
DATE_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
NUM_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
RECN_CELL, TRUE) )
|
||||
{
|
||||
PERR( "unexpected changed fields in a template register\n" );
|
||||
}
|
||||
@@ -1872,7 +1894,8 @@ xaccSRSaveChangedTemplateCells( SplitRegister *reg,
|
||||
/* We'll be using the Split's KVP frame a lot */
|
||||
kvpf = xaccSplitGetSlots( split );
|
||||
|
||||
if ( gnc_register_get_cell_changed (reg, XFRM_CELL, TRUE) )
|
||||
if ( gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
XFRM_CELL, TRUE) )
|
||||
{
|
||||
/* FIXME: This should probably do the same checks as
|
||||
xaccSRSaveChangedCells regarding account types
|
||||
@@ -1883,7 +1906,7 @@ xaccSRSaveChangedTemplateCells( SplitRegister *reg,
|
||||
const GUID *acctGUID;
|
||||
|
||||
/* save the account GUID into the kvp_data. */
|
||||
new_name = gnc_register_get_cell_value (reg, XFRM_CELL);
|
||||
new_name = gnc_table_layout_get_cell_value (reg->table->layout, XFRM_CELL);
|
||||
acctGrp = gnc_book_get_group (gncGetCurrentBook());
|
||||
acct = xaccGetAccountFromFullName (acctGrp, new_name,
|
||||
gnc_get_account_separator());
|
||||
@@ -1896,7 +1919,7 @@ xaccSRSaveChangedTemplateCells( SplitRegister *reg,
|
||||
kvp_value_new_guid( acctGUID ) );
|
||||
kvpf = xaccSplitGetSlots( split );
|
||||
|
||||
cell = gnc_register_get_cell (reg, XFRM_CELL);
|
||||
cell = gnc_table_layout_get_cell (reg->table->layout, XFRM_CELL);
|
||||
gnc_basic_cell_set_changed (cell, FALSE);
|
||||
|
||||
/* DEBUG */
|
||||
@@ -1929,16 +1952,19 @@ xaccSRSaveChangedTemplateCells( SplitRegister *reg,
|
||||
}
|
||||
}
|
||||
|
||||
if ( gnc_register_get_cell_changed (reg, MXFRM_CELL, TRUE) )
|
||||
if ( gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
MXFRM_CELL, TRUE) )
|
||||
{
|
||||
DEBUG( "Template: Got MXFRM changed\n" );
|
||||
|
||||
cell = gnc_register_get_cell (reg, MXFRM_CELL);
|
||||
cell = gnc_table_layout_get_cell (reg->table->layout, MXFRM_CELL);
|
||||
gnc_basic_cell_set_changed (cell, FALSE);
|
||||
}
|
||||
|
||||
if ( gnc_register_get_cell_changed (reg, FCRED_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, FDEBT_CELL, TRUE) )
|
||||
if ( gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
FCRED_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
FDEBT_CELL, TRUE) )
|
||||
{
|
||||
const char *value;
|
||||
char *amountStr = "x + y/42";
|
||||
@@ -1950,11 +1976,11 @@ xaccSRSaveChangedTemplateCells( SplitRegister *reg,
|
||||
|
||||
/* amountStr = gnc_numeric_to_string( new_amount ); */
|
||||
|
||||
value = gnc_register_get_cell_value (reg, FCRED_CELL);
|
||||
value = gnc_table_layout_get_cell_value (reg->table->layout, FCRED_CELL);
|
||||
kvp_frame_set_slot( kvpf, "sched-xaction/credit_formula",
|
||||
kvp_value_new_string( value ) );
|
||||
|
||||
value = gnc_register_get_cell_value (reg, FDEBT_CELL);
|
||||
value = gnc_table_layout_get_cell_value (reg->table->layout, FDEBT_CELL);
|
||||
kvp_frame_set_slot( kvpf, "sched-xaction/debit_formula",
|
||||
kvp_value_new_string( value ) );
|
||||
|
||||
@@ -1964,7 +1990,8 @@ xaccSRSaveChangedTemplateCells( SplitRegister *reg,
|
||||
xaccSplitSetValue (split, gnc_numeric_create(0, 1) );
|
||||
}
|
||||
|
||||
if ( gnc_register_get_cell_changed (reg, SHRS_CELL, TRUE) )
|
||||
if ( gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
SHRS_CELL, TRUE) )
|
||||
{
|
||||
char *sharesStr = "(x + y)/42";
|
||||
|
||||
@@ -1980,7 +2007,7 @@ xaccSRSaveChangedTemplateCells( SplitRegister *reg,
|
||||
gnc_numeric_create(0, 1),
|
||||
gnc_numeric_create(0, 1) );
|
||||
|
||||
cell = gnc_register_get_cell (reg, SHRS_CELL);
|
||||
cell = gnc_table_layout_get_cell (reg->table->layout, SHRS_CELL);
|
||||
gnc_basic_cell_set_changed (cell, FALSE);
|
||||
}
|
||||
|
||||
@@ -1995,13 +2022,13 @@ xaccSRActuallySaveChangedCells (SplitRegister *reg,
|
||||
Split *other_split = NULL;
|
||||
|
||||
/* copy the contents from the cursor to the split */
|
||||
if (gnc_register_get_cell_changed (reg, DATE_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout, DATE_CELL, TRUE))
|
||||
{
|
||||
BasicCell *cell;
|
||||
const char *value;
|
||||
Timespec ts;
|
||||
|
||||
cell = gnc_register_get_cell (reg, DATE_CELL);
|
||||
cell = gnc_table_layout_get_cell (reg->table->layout, DATE_CELL);
|
||||
value = gnc_basic_cell_get_value (cell);
|
||||
|
||||
/* commit any pending changes */
|
||||
@@ -2014,18 +2041,18 @@ xaccSRActuallySaveChangedCells (SplitRegister *reg,
|
||||
xaccTransSetDatePostedTS (trans, &ts);
|
||||
}
|
||||
|
||||
if (gnc_register_get_cell_changed (reg, NUM_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout, NUM_CELL, TRUE))
|
||||
{
|
||||
BasicCell *cell;
|
||||
const char *value;
|
||||
|
||||
value = gnc_register_get_cell_value (reg, NUM_CELL);
|
||||
value = gnc_table_layout_get_cell_value (reg->table->layout, NUM_CELL);
|
||||
|
||||
DEBUG ("NUM: %s\n", value ? value : "(null)");
|
||||
|
||||
xaccTransSetNum (trans, value);
|
||||
|
||||
cell = gnc_register_get_cell (reg, NUM_CELL);
|
||||
cell = gnc_table_layout_get_cell (reg->table->layout, NUM_CELL);
|
||||
|
||||
if (xaccSetNumCellLastNum ((NumCell *) cell, value))
|
||||
{
|
||||
@@ -2038,55 +2065,56 @@ xaccSRActuallySaveChangedCells (SplitRegister *reg,
|
||||
}
|
||||
}
|
||||
|
||||
if (gnc_register_get_cell_changed (reg, DESC_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout, DESC_CELL, TRUE))
|
||||
{
|
||||
const char *value;
|
||||
|
||||
value = gnc_register_get_cell_value (reg, DESC_CELL);
|
||||
value = gnc_table_layout_get_cell_value (reg->table->layout, DESC_CELL);
|
||||
|
||||
DEBUG ("DESC: %s", value ? value : "(null)");
|
||||
|
||||
xaccTransSetDescription (trans, value);
|
||||
}
|
||||
|
||||
if (gnc_register_get_cell_changed (reg, NOTES_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout, NOTES_CELL, TRUE))
|
||||
{
|
||||
const char *value;
|
||||
|
||||
value = gnc_register_get_cell_value (reg, NOTES_CELL);
|
||||
value = gnc_table_layout_get_cell_value (reg->table->layout, NOTES_CELL);
|
||||
|
||||
DEBUG ("NOTES: %s", value ? value : "(null)");
|
||||
|
||||
xaccTransSetNotes (trans, value);
|
||||
}
|
||||
|
||||
if (gnc_register_get_cell_changed (reg, RECN_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout, RECN_CELL, TRUE))
|
||||
{
|
||||
RecnCell *cell;
|
||||
|
||||
cell = (RecnCell *) gnc_register_get_cell (reg, RECN_CELL);
|
||||
cell = (RecnCell *) gnc_table_layout_get_cell (reg->table->layout,
|
||||
RECN_CELL);
|
||||
|
||||
DEBUG ("RECN: %c", xaccRecnCellGetFlag (cell));
|
||||
|
||||
xaccSplitSetReconcile (split, xaccRecnCellGetFlag (cell));
|
||||
}
|
||||
|
||||
if (gnc_register_get_cell_changed (reg, ACTN_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout, ACTN_CELL, TRUE))
|
||||
{
|
||||
const char *value;
|
||||
|
||||
value = gnc_register_get_cell_value (reg, ACTN_CELL);
|
||||
value = gnc_table_layout_get_cell_value (reg->table->layout, ACTN_CELL);
|
||||
|
||||
DEBUG ("ACTN: %s", value ? value : "(null)");
|
||||
|
||||
xaccSplitSetAction (split, value);
|
||||
}
|
||||
|
||||
if (gnc_register_get_cell_changed (reg, MEMO_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout, MEMO_CELL, TRUE))
|
||||
{
|
||||
const char *value;
|
||||
|
||||
value = gnc_register_get_cell_value (reg, MEMO_CELL);
|
||||
value = gnc_table_layout_get_cell_value (reg->table->layout, MEMO_CELL);
|
||||
|
||||
DEBUG ("MEMO: %s", value ? value : "(null)");
|
||||
|
||||
@@ -2104,13 +2132,13 @@ xaccSRActuallySaveChangedCells (SplitRegister *reg,
|
||||
/* jsled: this is where it starts to get fun. in the template
|
||||
* register, we save the XFRM account in the kvp frame.
|
||||
* also, when loading, we load from the kvp data. */
|
||||
if (gnc_register_get_cell_changed (reg, XFRM_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout, XFRM_CELL, TRUE))
|
||||
{
|
||||
Account *old_acc;
|
||||
Account *new_acc;
|
||||
const char *new_name;
|
||||
|
||||
new_name = gnc_register_get_cell_value (reg, XFRM_CELL);
|
||||
new_name = gnc_table_layout_get_cell_value (reg->table->layout, XFRM_CELL);
|
||||
|
||||
DEBUG ("XFRM: %s", new_name ? new_name : "(null)");
|
||||
|
||||
@@ -2129,11 +2157,11 @@ xaccSRActuallySaveChangedCells (SplitRegister *reg,
|
||||
if (reg->style == REG_STYLE_LEDGER && !info->trans_expanded)
|
||||
other_split = xaccSplitGetOtherSplit (split);
|
||||
|
||||
if (gnc_register_get_cell_changed (reg, MXFRM_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout, MXFRM_CELL, TRUE))
|
||||
{
|
||||
const char *name;
|
||||
|
||||
name = gnc_register_get_cell_value (reg, MXFRM_CELL);
|
||||
name = gnc_table_layout_get_cell_value (reg->table->layout, MXFRM_CELL);
|
||||
|
||||
DEBUG ("MXFRM: %s", name ? name : "(null)");
|
||||
|
||||
@@ -2179,21 +2207,26 @@ xaccSRActuallySaveChangedCells (SplitRegister *reg,
|
||||
* changes have been made to the number of shares, the price, or the
|
||||
* value, then we need to do some calculations to make sure it all
|
||||
* balances properly.*/
|
||||
if ((gnc_register_get_cell_changed (reg, DEBT_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, CRED_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, PRIC_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, SHRS_CELL, TRUE)) &&
|
||||
if ((gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
DEBT_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
CRED_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
PRIC_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
SHRS_CELL, TRUE)) &&
|
||||
((STOCK_REGISTER == (reg->type)) ||
|
||||
(CURRENCY_REGISTER == (reg->type)) ||
|
||||
(PORTFOLIO_LEDGER == (reg->type))))
|
||||
sr_split_auto_calc (reg, split);
|
||||
|
||||
if (gnc_register_get_cell_changed (reg, SHRS_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout, SHRS_CELL, TRUE))
|
||||
{
|
||||
PriceCell *cell;
|
||||
gnc_numeric amount;
|
||||
|
||||
cell = (PriceCell *) gnc_register_get_cell (reg, SHRS_CELL);
|
||||
cell = (PriceCell *) gnc_table_layout_get_cell (reg->table->layout,
|
||||
SHRS_CELL);
|
||||
amount = xaccGetPriceCellValue (cell);
|
||||
|
||||
DEBUG ("SHRS");
|
||||
@@ -2201,12 +2234,13 @@ xaccSRActuallySaveChangedCells (SplitRegister *reg,
|
||||
xaccSplitSetAmount (split, amount);
|
||||
}
|
||||
|
||||
if (gnc_register_get_cell_changed (reg, PRIC_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout, PRIC_CELL, TRUE))
|
||||
{
|
||||
PriceCell *cell;
|
||||
gnc_numeric price;
|
||||
|
||||
cell = (PriceCell *) gnc_register_get_cell (reg, PRIC_CELL);
|
||||
cell = (PriceCell *) gnc_table_layout_get_cell (reg->table->layout,
|
||||
PRIC_CELL);
|
||||
price = xaccGetPriceCellValue (cell);
|
||||
|
||||
DEBUG ("PRIC");
|
||||
@@ -2214,18 +2248,22 @@ xaccSRActuallySaveChangedCells (SplitRegister *reg,
|
||||
xaccSplitSetSharePrice (split, price);
|
||||
}
|
||||
|
||||
if (gnc_register_get_cell_changed (reg, DEBT_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, CRED_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
DEBT_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
CRED_CELL, TRUE))
|
||||
{
|
||||
PriceCell *cell;
|
||||
gnc_numeric new_amount;
|
||||
gnc_numeric credit;
|
||||
gnc_numeric debit;
|
||||
|
||||
cell = (PriceCell *) gnc_register_get_cell (reg, CRED_CELL);
|
||||
cell = (PriceCell *) gnc_table_layout_get_cell (reg->table->layout,
|
||||
CRED_CELL);
|
||||
credit = xaccGetPriceCellValue (cell);
|
||||
|
||||
cell = (PriceCell *) gnc_register_get_cell (reg, DEBT_CELL);
|
||||
cell = (PriceCell *) gnc_table_layout_get_cell (reg->table->layout,
|
||||
DEBT_CELL);
|
||||
debit = xaccGetPriceCellValue (cell);
|
||||
|
||||
new_amount = gnc_numeric_sub_fixed (debit, credit);
|
||||
@@ -2233,10 +2271,14 @@ xaccSRActuallySaveChangedCells (SplitRegister *reg,
|
||||
xaccSplitSetValue (split, new_amount);
|
||||
}
|
||||
|
||||
if (gnc_register_get_cell_changed (reg, DEBT_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, CRED_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, PRIC_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, SHRS_CELL, TRUE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
DEBT_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
CRED_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
PRIC_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
SHRS_CELL, TRUE))
|
||||
{
|
||||
xaccSplitScrub (split);
|
||||
|
||||
@@ -2357,11 +2399,11 @@ use_security_cells (SplitRegister *reg, VirtualLocation virt_loc)
|
||||
|
||||
if (virt_cell_loc_equal (virt_loc.vcell_loc,
|
||||
reg->table->current_cursor_loc.vcell_loc) &&
|
||||
gnc_register_get_cell_changed (reg, XFRM_CELL, FALSE))
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout, XFRM_CELL, FALSE))
|
||||
{
|
||||
const char *name;
|
||||
|
||||
name = gnc_register_get_cell_value (reg, XFRM_CELL);
|
||||
name = gnc_table_layout_get_cell_value (reg->table->layout, XFRM_CELL);
|
||||
account = xaccGetAccountFromFullName (gncGetCurrentGroup (),
|
||||
name,
|
||||
gnc_get_account_separator ());
|
||||
@@ -3058,7 +3100,8 @@ xaccSRGetFGColorHandler (VirtualLocation virt_loc, gpointer user_data)
|
||||
shares = get_trans_total_amount (reg, trans);
|
||||
else if (is_current)
|
||||
shares = xaccGetPriceCellValue
|
||||
((PriceCell *) gnc_register_get_cell (reg, SHRS_CELL));
|
||||
((PriceCell *) gnc_table_layout_get_cell (reg->table->layout,
|
||||
SHRS_CELL));
|
||||
else
|
||||
shares = xaccSplitGetAmount (split);
|
||||
|
||||
@@ -3306,9 +3349,10 @@ xaccSRConfirmHandler (VirtualLocation virt_loc,
|
||||
if (!split)
|
||||
return TRUE;
|
||||
|
||||
if (gnc_register_get_cell_changed (reg, RECN_CELL, FALSE))
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout, RECN_CELL, FALSE))
|
||||
recn = xaccRecnCellGetFlag ((RecnCell *)
|
||||
gnc_register_get_cell (reg, RECN_CELL));
|
||||
gnc_table_layout_get_cell (reg->table->layout,
|
||||
RECN_CELL));
|
||||
else
|
||||
recn = xaccSplitGetReconcile (split);
|
||||
|
||||
@@ -3620,7 +3664,8 @@ xaccSRLoadRegister (SplitRegister *reg, GList * slist,
|
||||
{
|
||||
NumCell *cell;
|
||||
|
||||
cell = (NumCell *) gnc_register_get_cell (reg, NUM_CELL);
|
||||
cell = (NumCell *) gnc_table_layout_get_cell (reg->table->layout,
|
||||
NUM_CELL);
|
||||
xaccSetNumCellLastNum (cell, last_num);
|
||||
has_last_num = TRUE;
|
||||
}
|
||||
@@ -3670,25 +3715,29 @@ xaccSRLoadRegister (SplitRegister *reg, GList * slist,
|
||||
{
|
||||
GList *node;
|
||||
|
||||
xaccQuickFillAddCompletion ((QuickFillCell *)
|
||||
gnc_register_get_cell (reg, DESC_CELL),
|
||||
xaccTransGetDescription (trans));
|
||||
xaccQuickFillAddCompletion
|
||||
((QuickFillCell *)
|
||||
gnc_table_layout_get_cell (reg->table->layout, DESC_CELL),
|
||||
xaccTransGetDescription (trans));
|
||||
|
||||
xaccQuickFillAddCompletion ((QuickFillCell *)
|
||||
gnc_register_get_cell (reg, NOTES_CELL),
|
||||
xaccTransGetNotes (trans));
|
||||
xaccQuickFillAddCompletion
|
||||
((QuickFillCell *)
|
||||
gnc_table_layout_get_cell (reg->table->layout, NOTES_CELL),
|
||||
xaccTransGetNotes (trans));
|
||||
|
||||
if (!has_last_num)
|
||||
xaccSetNumCellLastNum ((NumCell *)
|
||||
gnc_register_get_cell (reg, NUM_CELL),
|
||||
xaccTransGetNum (trans));
|
||||
xaccSetNumCellLastNum
|
||||
((NumCell *)
|
||||
gnc_table_layout_get_cell (reg->table->layout, NUM_CELL),
|
||||
xaccTransGetNum (trans));
|
||||
|
||||
for (node = xaccTransGetSplitList (trans); node; node = node->next)
|
||||
{
|
||||
Split *s = node->data;
|
||||
QuickFillCell *cell;
|
||||
|
||||
cell = (QuickFillCell *) gnc_register_get_cell (reg, MEMO_CELL);
|
||||
cell = (QuickFillCell *)
|
||||
gnc_table_layout_get_cell (reg->table->layout, MEMO_CELL);
|
||||
xaccQuickFillAddCompletion (cell, xaccSplitGetMemo (s));
|
||||
}
|
||||
}
|
||||
@@ -3818,17 +3867,21 @@ xaccSRLoadRegister (SplitRegister *reg, GList * slist,
|
||||
xaccSRShowTrans (reg, table->current_cursor_loc.vcell_loc);
|
||||
|
||||
/* set the completion character for the xfer cells */
|
||||
xaccComboCellSetCompleteChar ((ComboCell *)
|
||||
gnc_register_get_cell (reg, MXFRM_CELL),
|
||||
gnc_get_account_separator ());
|
||||
xaccComboCellSetCompleteChar ((ComboCell *)
|
||||
gnc_register_get_cell (reg, XFRM_CELL),
|
||||
gnc_get_account_separator ());
|
||||
xaccComboCellSetCompleteChar
|
||||
((ComboCell *)
|
||||
gnc_table_layout_get_cell (reg->table->layout, MXFRM_CELL),
|
||||
gnc_get_account_separator ());
|
||||
|
||||
xaccComboCellSetCompleteChar
|
||||
((ComboCell *)
|
||||
gnc_table_layout_get_cell (reg->table->layout, XFRM_CELL),
|
||||
gnc_get_account_separator ());
|
||||
|
||||
/* set the confirmation callback for the reconcile cell */
|
||||
xaccRecnCellSetConfirmCB ((RecnCell *)
|
||||
gnc_register_get_cell (reg, RECN_CELL),
|
||||
recn_cell_confirm, reg);
|
||||
xaccRecnCellSetConfirmCB
|
||||
((RecnCell *)
|
||||
gnc_table_layout_get_cell (reg->table->layout, RECN_CELL),
|
||||
recn_cell_confirm, reg);
|
||||
|
||||
/* enable callback for cursor user-driven moves */
|
||||
gnc_table_control_allow_move (table->control, TRUE);
|
||||
@@ -3887,11 +3940,13 @@ xaccSRLoadXferCells (SplitRegister *reg, Account *base_account)
|
||||
if (group == NULL)
|
||||
return;
|
||||
|
||||
cell = (ComboCell *) gnc_register_get_cell (reg, XFRM_CELL);
|
||||
cell = (ComboCell *)
|
||||
gnc_table_layout_get_cell (reg->table->layout, XFRM_CELL);
|
||||
xaccClearComboCellMenu (cell);
|
||||
LoadXferCell (cell, group);
|
||||
|
||||
cell = (ComboCell *) gnc_register_get_cell (reg, MXFRM_CELL);
|
||||
cell = (ComboCell *)
|
||||
gnc_table_layout_get_cell (reg->table->layout, MXFRM_CELL);
|
||||
xaccClearComboCellMenu (cell);
|
||||
LoadXferCell (cell, group);
|
||||
}
|
||||
|
||||
@@ -578,22 +578,32 @@ gnc_split_register_auto_completion (SplitRegister *reg,
|
||||
return FALSE;
|
||||
|
||||
/* nothing but the date, num, and description should be changed */
|
||||
if (gnc_register_get_cell_changed (reg, XFRM_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, MXFRM_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, PRIC_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, SHRS_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, DEBT_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, CRED_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, NOTES_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, RECN_CELL, TRUE))
|
||||
/* FIXME, this should be refactored. */
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
XFRM_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
MXFRM_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
PRIC_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
SHRS_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
DEBT_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
CRED_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
NOTES_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
RECN_CELL, TRUE))
|
||||
return FALSE;
|
||||
|
||||
/* and the description should be changed */
|
||||
if (!gnc_register_get_cell_changed (reg, DESC_CELL, TRUE))
|
||||
if (!gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
DESC_CELL, TRUE))
|
||||
return FALSE;
|
||||
|
||||
/* to a non-empty value */
|
||||
desc = gnc_register_get_cell_value (reg, DESC_CELL);
|
||||
desc = gnc_table_layout_get_cell_value (reg->table->layout, DESC_CELL);
|
||||
if ((desc == NULL) || (*desc == '\0'))
|
||||
return FALSE;
|
||||
|
||||
@@ -690,19 +700,26 @@ gnc_split_register_auto_completion (SplitRegister *reg,
|
||||
return FALSE;
|
||||
|
||||
/* nothing but the action, memo, and amounts should be changed */
|
||||
if (gnc_register_get_cell_changed (reg, XFRM_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, MXFRM_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, PRIC_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, SHRS_CELL, TRUE) ||
|
||||
gnc_register_get_cell_changed (reg, RECN_CELL, TRUE))
|
||||
/* FIXME. This should be refactored. */
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
XFRM_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
MXFRM_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
PRIC_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
SHRS_CELL, TRUE) ||
|
||||
gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
RECN_CELL, TRUE))
|
||||
return FALSE;
|
||||
|
||||
/* and the memo should be changed */
|
||||
if (!gnc_register_get_cell_changed (reg, MEMO_CELL, TRUE))
|
||||
if (!gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
MEMO_CELL, TRUE))
|
||||
return FALSE;
|
||||
|
||||
/* to a non-empty value */
|
||||
memo = gnc_register_get_cell_value (reg, MEMO_CELL);
|
||||
memo = gnc_table_layout_get_cell_value (reg->table->layout, MEMO_CELL);
|
||||
if ((memo == NULL) || (*memo == '\0'))
|
||||
return FALSE;
|
||||
|
||||
@@ -727,15 +744,16 @@ gnc_split_register_auto_completion (SplitRegister *reg,
|
||||
/* the auto-complete code below is taken from xaccSRGetEntryHandler */
|
||||
|
||||
/* auto-complete the action field if it wasn't changed */
|
||||
if (!gnc_register_get_cell_changed (reg, ACTN_CELL, TRUE))
|
||||
if (!gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
ACTN_CELL, TRUE))
|
||||
{
|
||||
cell = gnc_register_get_cell (reg, ACTN_CELL);
|
||||
cell = gnc_table_layout_get_cell (reg->table->layout, ACTN_CELL);
|
||||
xaccSetComboCellValue ((ComboCell *) cell,
|
||||
xaccSplitGetAction (auto_split));
|
||||
}
|
||||
|
||||
/* auto-complete the account name */
|
||||
cell = gnc_register_get_cell (reg, XFRM_CELL);
|
||||
cell = gnc_table_layout_get_cell (reg->table->layout, XFRM_CELL);
|
||||
|
||||
fullname = xaccAccountGetFullName (xaccSplitGetAccount (auto_split),
|
||||
gnc_get_account_separator ());
|
||||
@@ -744,16 +762,20 @@ gnc_split_register_auto_completion (SplitRegister *reg,
|
||||
|
||||
gnc_basic_cell_set_changed (cell, TRUE);
|
||||
|
||||
if (!gnc_register_get_cell_changed (reg, DEBT_CELL, TRUE) &&
|
||||
!gnc_register_get_cell_changed (reg, CRED_CELL, TRUE))
|
||||
if (!gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
DEBT_CELL, TRUE) &&
|
||||
!gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
CRED_CELL, TRUE))
|
||||
{
|
||||
BasicCell *debit_cell;
|
||||
BasicCell *credit_cell;
|
||||
|
||||
amount = xaccSplitGetValue (auto_split);
|
||||
|
||||
debit_cell = gnc_register_get_cell (reg, DEBT_CELL);
|
||||
credit_cell = gnc_register_get_cell (reg, CRED_CELL);
|
||||
debit_cell = gnc_table_layout_get_cell (reg->table->layout,
|
||||
DEBT_CELL);
|
||||
credit_cell = gnc_table_layout_get_cell (reg->table->layout,
|
||||
CRED_CELL);
|
||||
|
||||
xaccSetDebCredCellValue ((PriceCell *) debit_cell,
|
||||
(PriceCell *) credit_cell, amount);
|
||||
@@ -845,13 +867,17 @@ gnc_split_register_traverse (VirtualLocation *p_new_virt_loc,
|
||||
switch (cell_type)
|
||||
{
|
||||
case XFRM_CELL:
|
||||
if (gnc_register_get_cell_changed (reg, XFRM_CELL, FALSE))
|
||||
cell = (ComboCell *) gnc_register_get_cell (reg, XFRM_CELL);
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
XFRM_CELL, FALSE))
|
||||
cell = (ComboCell *) gnc_table_layout_get_cell (reg->table->layout,
|
||||
XFRM_CELL);
|
||||
break;
|
||||
|
||||
case MXFRM_CELL:
|
||||
if (gnc_register_get_cell_changed (reg, MXFRM_CELL, FALSE))
|
||||
cell = (ComboCell *) gnc_register_get_cell (reg, MXFRM_CELL);
|
||||
if (gnc_table_layout_get_cell_changed (reg->table->layout,
|
||||
MXFRM_CELL, FALSE))
|
||||
cell = (ComboCell *) gnc_table_layout_get_cell (reg->table->layout,
|
||||
MXFRM_CELL);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
@@ -321,10 +321,12 @@ sr_set_cell_fractions (SplitRegister *reg, Split *split)
|
||||
|
||||
fraction = gnc_commodity_get_fraction (currency);
|
||||
|
||||
cell = (PriceCell *) gnc_register_get_cell (reg, DEBT_CELL);
|
||||
cell = (PriceCell *) gnc_table_layout_get_cell (reg->table->layout,
|
||||
DEBT_CELL);
|
||||
xaccSetPriceCellFraction (cell, fraction);
|
||||
|
||||
cell = (PriceCell *) gnc_register_get_cell (reg, CRED_CELL);
|
||||
cell = (PriceCell *) gnc_table_layout_get_cell (reg->table->layout,
|
||||
CRED_CELL);
|
||||
xaccSetPriceCellFraction (cell, fraction);
|
||||
|
||||
account = xaccSplitGetAccount (split);
|
||||
@@ -332,7 +334,8 @@ sr_set_cell_fractions (SplitRegister *reg, Split *split)
|
||||
if (account == NULL)
|
||||
account = sr_get_default_account (reg);
|
||||
|
||||
cell = (PriceCell *) gnc_register_get_cell (reg, SHRS_CELL);
|
||||
cell = (PriceCell *) gnc_table_layout_get_cell (reg->table->layout,
|
||||
SHRS_CELL);
|
||||
|
||||
if (account)
|
||||
xaccSetPriceCellFraction (cell, xaccAccountGetCommoditySCU (account));
|
||||
|
||||
@@ -138,45 +138,6 @@ gnc_register_add_cell (SplitRegister *sr,
|
||||
gnc_table_layout_add_cell (sr->table->layout, cell_type, cell);
|
||||
}
|
||||
|
||||
BasicCell *
|
||||
gnc_register_get_cell (SplitRegister *sr, CellType cell_type)
|
||||
{
|
||||
g_return_val_if_fail (sr != NULL, NULL);
|
||||
g_return_val_if_fail (sr->table != NULL, NULL);
|
||||
|
||||
return gnc_table_layout_get_cell (sr->table->layout, cell_type);
|
||||
}
|
||||
|
||||
const char *
|
||||
gnc_register_get_cell_value (SplitRegister *sr, CellType cell_type)
|
||||
{
|
||||
BasicCell *cell;
|
||||
|
||||
cell = gnc_register_get_cell (sr, cell_type);
|
||||
if (!cell) return NULL;
|
||||
|
||||
return gnc_basic_cell_get_value (cell);
|
||||
}
|
||||
|
||||
gboolean
|
||||
gnc_register_get_cell_changed (SplitRegister *sr,
|
||||
CellType cell_type,
|
||||
gboolean include_conditional)
|
||||
{
|
||||
BasicCell *cell;
|
||||
|
||||
if (!sr) return FALSE;
|
||||
|
||||
cell = gnc_register_get_cell (sr, cell_type);
|
||||
if (!cell) return FALSE;
|
||||
|
||||
if (!include_conditional)
|
||||
return gnc_basic_cell_get_changed (cell);
|
||||
else
|
||||
return (gnc_basic_cell_get_changed (cell) ||
|
||||
gnc_basic_cell_get_conditionally_changed (cell));
|
||||
}
|
||||
|
||||
/* ============================================== */
|
||||
/* configAction strings into the action cell */
|
||||
/* hack alert -- this stuff really, really should be in a config file ... */
|
||||
@@ -186,7 +147,8 @@ configAction (SplitRegister *reg)
|
||||
{
|
||||
ComboCell *cell;
|
||||
|
||||
cell = (ComboCell *) gnc_register_get_cell (reg, ACTN_CELL);
|
||||
cell = (ComboCell *) gnc_table_layout_get_cell (reg->table->layout,
|
||||
ACTN_CELL);
|
||||
|
||||
/* setup strings in the action pull-down */
|
||||
switch (reg->type)
|
||||
@@ -304,7 +266,7 @@ set_cell (SplitRegister *reg, CellBlock *cursor,
|
||||
|
||||
cb_cell = gnc_cellblock_get_cell (cursor, row, col);
|
||||
|
||||
cb_cell->cell = gnc_register_get_cell (reg, cell_type);
|
||||
cb_cell->cell = gnc_table_layout_get_cell (reg->table->layout, cell_type);
|
||||
cb_cell->cell_type = cell_type;
|
||||
cb_cell->sample_text = g_strdup (_(ss->string) + ss->offset);
|
||||
cb_cell->alignment = cell_alignments[cell_type];
|
||||
@@ -318,7 +280,7 @@ set_cell (SplitRegister *reg, CellBlock *cursor,
|
||||
|
||||
if (cb_cell && (cursor == cursor_sl))
|
||||
{
|
||||
cb_cell->cell = gnc_register_get_cell (reg, cell_type);
|
||||
cb_cell->cell = gnc_table_layout_get_cell (reg->table->layout, cell_type);
|
||||
cb_cell->cell_type = cell_type;
|
||||
cb_cell->sample_text = g_strdup (_(ss->string) + ss->offset);
|
||||
cb_cell->alignment = cell_alignments[cell_type];
|
||||
@@ -765,7 +727,8 @@ xaccInitSplitRegister (SplitRegister *reg,
|
||||
configLayout (reg);
|
||||
|
||||
/* The num cell is the transaction number */
|
||||
xaccSetBasicCellBlankHelp (gnc_register_get_cell (reg, NUM_CELL),
|
||||
xaccSetBasicCellBlankHelp (gnc_table_layout_get_cell (reg->table->layout,
|
||||
NUM_CELL),
|
||||
_("Enter the transaction number, such as the "
|
||||
"check number"));
|
||||
|
||||
@@ -773,67 +736,84 @@ xaccInitSplitRegister (SplitRegister *reg,
|
||||
{
|
||||
const char *help = _("Enter the account to transfer from, or choose "
|
||||
"one from the list");
|
||||
xaccSetBasicCellBlankHelp (gnc_register_get_cell (reg, MXFRM_CELL), help);
|
||||
xaccSetBasicCellBlankHelp (gnc_register_get_cell (reg, XFRM_CELL), help);
|
||||
xaccSetBasicCellBlankHelp (gnc_table_layout_get_cell (reg->table->layout,
|
||||
MXFRM_CELL), help);
|
||||
xaccSetBasicCellBlankHelp (gnc_table_layout_get_cell (reg->table->layout,
|
||||
XFRM_CELL), help);
|
||||
}
|
||||
|
||||
{
|
||||
const char *help = _("This transaction has multiple splits; "
|
||||
"press the Split button to see them all");
|
||||
|
||||
xaccComboCellAddIgnoreString ((ComboCell *)
|
||||
gnc_register_get_cell (reg, MXFRM_CELL),
|
||||
_("-- Split Transaction --"), help);
|
||||
xaccComboCellAddIgnoreString
|
||||
((ComboCell *)
|
||||
gnc_table_layout_get_cell (reg->table->layout, MXFRM_CELL),
|
||||
_("-- Split Transaction --"), help);
|
||||
}
|
||||
|
||||
{
|
||||
const char *help = _("This transaction is a stock split; "
|
||||
"press the Split button to see details");
|
||||
|
||||
xaccComboCellAddIgnoreString ((ComboCell *)
|
||||
gnc_register_get_cell (reg, MXFRM_CELL),
|
||||
_("-- Stock Split --"), help);
|
||||
xaccComboCellAddIgnoreString
|
||||
((ComboCell *)
|
||||
gnc_table_layout_get_cell (reg->table->layout, MXFRM_CELL),
|
||||
_("-- Stock Split --"), help);
|
||||
}
|
||||
|
||||
/* the action cell */
|
||||
xaccComboCellSetAutoSize ((ComboCell *)
|
||||
gnc_register_get_cell (reg, ACTN_CELL), TRUE);
|
||||
xaccComboCellSetAutoSize
|
||||
((ComboCell *)
|
||||
gnc_table_layout_get_cell (reg->table->layout, ACTN_CELL), TRUE);
|
||||
|
||||
/* the memo cell */
|
||||
xaccSetBasicCellBlankHelp (gnc_register_get_cell (reg, MEMO_CELL),
|
||||
_("Enter a description of the split"));
|
||||
xaccSetBasicCellBlankHelp
|
||||
(gnc_table_layout_get_cell (reg->table->layout, MEMO_CELL),
|
||||
_("Enter a description of the split"));
|
||||
|
||||
/* the desc cell */
|
||||
xaccSetBasicCellBlankHelp (gnc_register_get_cell (reg, DESC_CELL),
|
||||
_("Enter a description of the transaction"));
|
||||
xaccSetBasicCellBlankHelp
|
||||
(gnc_table_layout_get_cell (reg->table->layout, DESC_CELL),
|
||||
_("Enter a description of the transaction"));
|
||||
|
||||
/* the notes cell */
|
||||
xaccSetBasicCellBlankHelp (gnc_register_get_cell (reg, NOTES_CELL),
|
||||
_("Enter notes for the transaction"));
|
||||
/* the formula cell */
|
||||
xaccSetBasicCellBlankHelp (gnc_register_get_cell (reg, FCRED_CELL),
|
||||
_("Enter credit formula for real transaction"));
|
||||
xaccSetBasicCellBlankHelp (gnc_register_get_cell (reg, FDEBT_CELL),
|
||||
_("Enter debit formula for real transaction"));
|
||||
xaccSetBasicCellBlankHelp
|
||||
(gnc_table_layout_get_cell (reg->table->layout, NOTES_CELL),
|
||||
_("Enter notes for the transaction"));
|
||||
|
||||
/* the formula cells */
|
||||
xaccSetBasicCellBlankHelp
|
||||
(gnc_table_layout_get_cell (reg->table->layout, FCRED_CELL),
|
||||
_("Enter credit formula for real transaction"));
|
||||
|
||||
xaccSetBasicCellBlankHelp
|
||||
(gnc_table_layout_get_cell (reg->table->layout, FDEBT_CELL),
|
||||
_("Enter debit formula for real transaction"));
|
||||
|
||||
/* Use 6 decimal places for prices */
|
||||
xaccSetPriceCellFraction ((PriceCell *)
|
||||
gnc_register_get_cell (reg, PRIC_CELL), 1000000);
|
||||
xaccSetPriceCellFraction
|
||||
((PriceCell *)
|
||||
gnc_table_layout_get_cell (reg->table->layout, PRIC_CELL), 1000000);
|
||||
|
||||
/* Initialize shares and share balance cells */
|
||||
xaccSetPriceCellPrintInfo
|
||||
((PriceCell *) gnc_register_get_cell (reg, SHRS_CELL),
|
||||
((PriceCell *) gnc_table_layout_get_cell (reg->table->layout, SHRS_CELL),
|
||||
gnc_default_share_print_info ());
|
||||
|
||||
xaccSetPriceCellPrintInfo
|
||||
((PriceCell *) gnc_register_get_cell (reg, TSHRS_CELL),
|
||||
((PriceCell *) gnc_table_layout_get_cell (reg->table->layout, TSHRS_CELL),
|
||||
gnc_default_share_print_info ());
|
||||
|
||||
/* The action cell should accept strings not in the list */
|
||||
xaccComboCellSetStrict ((ComboCell *)
|
||||
gnc_register_get_cell (reg, ACTN_CELL), FALSE);
|
||||
xaccSetBasicCellBlankHelp (gnc_register_get_cell (reg, ACTN_CELL),
|
||||
_("Enter the type of transaction, or choose "
|
||||
"one from the list"));
|
||||
xaccComboCellSetStrict
|
||||
((ComboCell *)
|
||||
gnc_table_layout_get_cell (reg->table->layout, ACTN_CELL), FALSE);
|
||||
|
||||
xaccSetBasicCellBlankHelp
|
||||
(gnc_table_layout_get_cell (reg->table->layout, ACTN_CELL),
|
||||
_("Enter the type of transaction, or choose "
|
||||
"one from the list"));
|
||||
|
||||
/* number format for share quantities in stock ledgers */
|
||||
switch (type)
|
||||
@@ -841,15 +821,18 @@ xaccInitSplitRegister (SplitRegister *reg,
|
||||
case CURRENCY_REGISTER:
|
||||
case STOCK_REGISTER:
|
||||
case PORTFOLIO_LEDGER:
|
||||
xaccSetPriceCellPrintInfo ((PriceCell *)
|
||||
gnc_register_get_cell (reg, PRIC_CELL),
|
||||
gnc_default_price_print_info ());
|
||||
xaccSetPriceCellPrintInfo
|
||||
((PriceCell *)
|
||||
gnc_table_layout_get_cell (reg->table->layout, PRIC_CELL),
|
||||
gnc_default_price_print_info ());
|
||||
|
||||
xaccSetBasicCellBlankHelp (gnc_register_get_cell (reg, PRIC_CELL),
|
||||
_("Enter the share price"));
|
||||
xaccSetBasicCellBlankHelp (gnc_register_get_cell (reg, SHRS_CELL),
|
||||
_("Enter the number of shares bought or "
|
||||
"sold"));
|
||||
xaccSetBasicCellBlankHelp
|
||||
(gnc_table_layout_get_cell (reg->table->layout, PRIC_CELL),
|
||||
_("Enter the share price"));
|
||||
|
||||
xaccSetBasicCellBlankHelp
|
||||
(gnc_table_layout_get_cell (reg->table->layout, SHRS_CELL),
|
||||
_("Enter the number of shares bought or sold"));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -190,14 +190,6 @@ void xaccConfigSplitRegister (SplitRegister *reg,
|
||||
|
||||
void xaccDestroySplitRegister (SplitRegister *reg);
|
||||
|
||||
BasicCell * gnc_register_get_cell (SplitRegister *sr, CellType cell_type);
|
||||
const char * gnc_register_get_cell_value (SplitRegister *sr,
|
||||
CellType cell_type);
|
||||
|
||||
gboolean gnc_register_get_cell_changed (SplitRegister *sr,
|
||||
CellType cell_type,
|
||||
gboolean include_conditional);
|
||||
|
||||
/* Returns the type of the current cursor */
|
||||
CursorClass xaccSplitRegisterGetCurrentCursorClass (SplitRegister *reg);
|
||||
|
||||
|
||||
@@ -155,6 +155,38 @@ gnc_table_layout_get_cell (TableLayout *layout, int cell_type)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const char *
|
||||
gnc_table_layout_get_cell_value (TableLayout *layout, int cell_type)
|
||||
{
|
||||
BasicCell *cell;
|
||||
|
||||
g_return_val_if_fail (layout != NULL, NULL);
|
||||
|
||||
cell = gnc_table_layout_get_cell (layout, cell_type);
|
||||
if (!cell) return NULL;
|
||||
|
||||
return gnc_basic_cell_get_value (cell);
|
||||
}
|
||||
|
||||
gboolean
|
||||
gnc_table_layout_get_cell_changed (TableLayout *layout,
|
||||
int cell_type,
|
||||
gboolean include_conditional)
|
||||
{
|
||||
BasicCell *cell;
|
||||
|
||||
g_return_val_if_fail (layout != NULL, FALSE);
|
||||
|
||||
cell = gnc_table_layout_get_cell (layout, cell_type);
|
||||
if (!cell) return FALSE;
|
||||
|
||||
if (!include_conditional)
|
||||
return gnc_basic_cell_get_changed (cell);
|
||||
else
|
||||
return (gnc_basic_cell_get_changed (cell) ||
|
||||
gnc_basic_cell_get_conditionally_changed (cell));
|
||||
}
|
||||
|
||||
int
|
||||
gnc_table_layout_get_cell_type (TableLayout *layout, BasicCell *cell)
|
||||
{
|
||||
|
||||
@@ -47,6 +47,12 @@ void gnc_table_layout_add_cell (TableLayout *layout,
|
||||
BasicCell *cell);
|
||||
|
||||
BasicCell * gnc_table_layout_get_cell (TableLayout *layout, int cell_type);
|
||||
const char * gnc_table_layout_get_cell_value (TableLayout *layout,
|
||||
int cell_type);
|
||||
gboolean gnc_table_layout_get_cell_changed (TableLayout *layout,
|
||||
int cell_type,
|
||||
gboolean include_conditional);
|
||||
|
||||
int gnc_table_layout_get_cell_type (TableLayout *layout, BasicCell *cell);
|
||||
|
||||
GList * gnc_table_layout_get_cells (TableLayout *layout);
|
||||
|
||||
@@ -2303,8 +2303,8 @@ gnucash_sheet_new (Table *table)
|
||||
sheet->grid = item;
|
||||
|
||||
/* some register data */
|
||||
sheet->dimensions_hash_table = g_hash_table_new (g_str_hash,
|
||||
g_str_equal);
|
||||
sheet->dimensions_hash_table = g_hash_table_new (g_int_hash,
|
||||
g_int_equal);
|
||||
|
||||
/* The cursor */
|
||||
sheet->cursor = gnucash_cursor_new (sheet_group);
|
||||
|
||||
@@ -45,21 +45,14 @@ static gboolean use_vertical_lines = TRUE;
|
||||
static gboolean use_horizontal_lines = TRUE;
|
||||
|
||||
|
||||
static char *
|
||||
static gpointer
|
||||
style_get_key (SheetBlockStyle *style)
|
||||
{
|
||||
switch (style->cursor->num_rows)
|
||||
{
|
||||
case 1: return "singles";
|
||||
case 2: return "doubles";
|
||||
static gint key;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
key = style->cursor->num_rows;
|
||||
|
||||
g_warning ("style_get_key: bad cursor type\n");
|
||||
|
||||
return NULL;
|
||||
return &key;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user