gnucash maint: Bug 797903 - Transaction window: The 'blue line' is always...
John Ralls
jralls at code.gnucash.org
Mon Feb 27 13:13:12 EST 2023
Updated via https://github.com/Gnucash/gnucash/commit/de9c0eb5 (commit)
from https://github.com/Gnucash/gnucash/commit/f483d758 (commit)
commit de9c0eb5408ed1f90fd36abc4f1d2d4a7bc4af0a
Author: John Ralls <jralls at ceridwen.us>
Date: Mon Feb 27 10:11:06 2023 -0800
Bug 797903 - Transaction window: The 'blue line' is always...
(erroneously) topmost when t. sorting order is inverted.
Same problem for the 'red line'. Make register code aware of sort
order and flip the logic when reverse sorting.
diff --git a/gnucash/gnome/gnc-split-reg.c b/gnucash/gnome/gnc-split-reg.c
index d6c37ce17..38cf709a7 100644
--- a/gnucash/gnome/gnc-split-reg.c
+++ b/gnucash/gnome/gnc-split-reg.c
@@ -2148,6 +2148,8 @@ gnc_split_reg_set_sort_reversed(GNCSplitReg *gsr, gboolean rev, gboolean refresh
Query *query = gnc_ledger_display_get_query( gsr->ledger );
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 );
}
diff --git a/gnucash/register/ledger-core/split-register-load.c b/gnucash/register/ledger-core/split-register-load.c
index a86250be0..99d8df6bd 100644
--- a/gnucash/register/ledger-core/split-register-load.c
+++ b/gnucash/register/ledger-core/split-register-load.c
@@ -25,7 +25,11 @@
#include <config.h>
#include <glib/gi18n.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include "Account.h"
+#include "Transaction.h"
#include "account-quickfill.h"
#include "combocell.h"
#include "gnc-component-manager.h"
@@ -373,6 +377,7 @@ 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;
@@ -605,7 +610,8 @@ gnc_split_register_load (SplitRegister* reg, GList* slist,
use_autoreadonly &&
!found_divider_upper)
{
- if (xaccTransGetDate (trans) >= autoreadonly_time)
+ if (((reverse_sort && xaccTransGetDate(trans) < autoreadonly_time) ||
+ (!reverse_sort && xaccTransGetDate (trans) >= autoreadonly_time)))
{
table->model->dividing_row_upper = vcell_loc.virt_row;
found_divider_upper = TRUE;
@@ -616,9 +622,9 @@ gnc_split_register_load (SplitRegister* reg, GList* slist,
}
}
- if (info->show_present_divider &&
- !found_divider &&
- (xaccTransGetDate (trans) > present))
+ if (info->show_present_divider && !found_divider &&
+ ((reverse_sort && xaccTransGetDate(trans) < present) ||
+ (!reverse_sort && xaccTransGetDate (trans) > present)))
{
table->model->dividing_row = vcell_loc.virt_row;
found_divider = TRUE;
@@ -649,7 +655,6 @@ gnc_split_register_load (SplitRegister* reg, GList* slist,
&vcell_loc);
table->model->dividing_row_lower = vcell_loc.virt_row;
-
if (!multi_line)
start_primary_color = !start_primary_color;
@@ -731,7 +736,9 @@ gnc_split_register_load (SplitRegister* reg, GList* slist,
&vcell_loc);
if (future_after_blank)
+ {
table->model->dividing_row_lower = vcell_loc.virt_row;
+ }
}
/* go to blank on first pass */
Summary of changes:
gnucash/gnome/gnc-split-reg.c | 2 ++
gnucash/register/ledger-core/split-register-load.c | 17 ++++++++++++-----
2 files changed, 14 insertions(+), 5 deletions(-)
More information about the gnucash-changes
mailing list