Skip to content

Commit

Permalink
Modify commit de9c0eb to not use xaccAccountSetSortReversed
Browse files Browse the repository at this point in the history
Account sort order / sort by and filter by are all stored in the
register with the account functions in the process of being depreciated
so instead get the sort order from a new value added to SplitRegister.

Also in the general ledger, there is no default account and so was
causing an error in the trace file.
  • Loading branch information
Bob-IT committed Mar 3, 2023
1 parent 747b558 commit 672cfdd
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 7 deletions.
7 changes: 5 additions & 2 deletions gnucash/gnome/gnc-split-reg.c
Expand Up @@ -2152,11 +2152,14 @@ gnc_split_reg_set_sort_reversed(GNCSplitReg *gsr, gboolean rev, gboolean refresh
* In other words, qof_query_set_sort_increasing should
* always use the inverse of rev.
*/
SplitRegister *reg = gnc_ledger_display_get_split_register (gsr->ledger);
Query *query = gnc_ledger_display_get_query( gsr->ledger );

gnc_split_register_set_reverse_sort (reg, rev);

qof_query_set_sort_increasing (query, !rev, !rev, !rev);
gsr->sort_rev = rev;
Account *acct = gnc_ledger_display_leader (gsr->ledger);
xaccAccountSetSortReversed(acct, rev);

if (refresh)
gnc_ledger_display_refresh( gsr->ledger );
}
Expand Down
9 changes: 4 additions & 5 deletions gnucash/register/ledger-core/split-register-load.c
Expand Up @@ -377,7 +377,6 @@ gnc_split_register_load (SplitRegister* reg, GList* slist,
gboolean need_divider_upper = FALSE;
gboolean found_divider_upper = FALSE;
gboolean found_divider = FALSE;
bool reverse_sort = xaccAccountGetSortReversed(default_account);
gboolean has_last_num = FALSE;
gboolean multi_line;
gboolean dynamic;
Expand Down Expand Up @@ -610,8 +609,8 @@ gnc_split_register_load (SplitRegister* reg, GList* slist,
use_autoreadonly &&
!found_divider_upper)
{
if (((reverse_sort && xaccTransGetDate(trans) < autoreadonly_time) ||
(!reverse_sort && xaccTransGetDate (trans) >= autoreadonly_time)))
if (((table->model->reverse_sort && xaccTransGetDate(trans) < autoreadonly_time) ||
(!table->model->reverse_sort && xaccTransGetDate (trans) >= autoreadonly_time)))
{
table->model->dividing_row_upper = vcell_loc.virt_row;
found_divider_upper = TRUE;
Expand All @@ -623,8 +622,8 @@ gnc_split_register_load (SplitRegister* reg, GList* slist,
}

if (info->show_present_divider && !found_divider &&
((reverse_sort && xaccTransGetDate(trans) < present) ||
(!reverse_sort && xaccTransGetDate (trans) > present)))
((table->model->reverse_sort && xaccTransGetDate (trans) < present) ||
(!table->model->reverse_sort && xaccTransGetDate (trans) > present)))
{
table->model->dividing_row = vcell_loc.virt_row;
found_divider = TRUE;
Expand Down
7 changes: 7 additions & 0 deletions gnucash/register/ledger-core/split-register.c
Expand Up @@ -2942,6 +2942,13 @@ gnc_split_register_config (SplitRegister* reg,
gnc_table_realize_gui (reg->table);
}

void
gnc_split_register_set_reverse_sort (SplitRegister* reg, gboolean reverse_sort)
{
g_return_if_fail (reg);
gnc_table_model_set_reverse_sort (reg->table->model, reverse_sort);
}

void
gnc_split_register_set_auto_complete (SplitRegister* reg,
gboolean do_auto_complete)
Expand Down
9 changes: 9 additions & 0 deletions gnucash/register/ledger-core/split-register.h
Expand Up @@ -323,6 +323,15 @@ void gnc_split_register_config (SplitRegister* reg,
SplitRegisterStyle style,
gboolean use_double_line);

/** Sets a split register's reverse sort order based on register
*
* @param reg a ::SplitRegister
*
* @param reverse_sort @c TRUE reverse sort order, @c FALSE default
*/
void gnc_split_register_set_reverse_sort (SplitRegister* reg,
gboolean reverse_sort);

/** Sets whether a register uses auto-completion.
*
* @param reg a ::SplitRegister
Expand Down
8 changes: 8 additions & 0 deletions gnucash/register/register-core/table-model.c
Expand Up @@ -199,6 +199,14 @@ gnc_table_model_read_only (TableModel *model)
return model->read_only;
}

void
gnc_table_model_set_reverse_sort (TableModel *model,
gboolean reverse_sort)
{
g_return_if_fail (model);
model->reverse_sort = reverse_sort;
}

void
gnc_table_model_set_entry_handler (TableModel *model,
TableGetEntryHandler entry_handler,
Expand Down
7 changes: 7 additions & 0 deletions gnucash/register/register-core/table-model.h
Expand Up @@ -122,6 +122,10 @@ typedef struct
* and edits should not be allowed. */
gboolean read_only;

/* If true, denotes that this table is being displayed
* in the reverse direction. */
gboolean reverse_sort;

/* If positive, denotes a row that marks a boundary that should
* be visually distinguished. */
int dividing_row;
Expand All @@ -145,6 +149,9 @@ void gnc_table_model_set_read_only (TableModel *model,
gboolean read_only);
gboolean gnc_table_model_read_only (TableModel *model);

void gnc_table_model_set_reverse_sort (TableModel *model,
gboolean read_only);

void gnc_table_model_set_entry_handler
(TableModel *model,
TableGetEntryHandler entry_handler,
Expand Down

0 comments on commit 672cfdd

Please sign in to comment.