Commit Graph
29743 Commits
Author SHA1 Message Date
delvani 9f7b5f3318 Translation update by delvani <del.cidrak@users.noreply.hosted.weblate.org> using Weblate
po/pt_BR.po: 98.0% (5545 of 5656 strings; 95 fuzzy)
0 failing checks (0.0%)
Translation: GnuCash/Program (Portuguese (Brazil))
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/pt_BR/

Co-authored-by: delvani <del.cidrak@users.noreply.hosted.weblate.org>
2026-02-22 04:10:04 +00:00
Milo Ivir d01660481c Translation update by Milo Ivir <mail@milotype.de> using Weblate
po/hr.po: 98.2% (5558 of 5656 strings; 1 fuzzy)
0 failing checks (0.0%)
Translation: GnuCash/Program (Croatian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hr/

Co-authored-by: Milo Ivir <mail@milotype.de>
2026-02-22 04:10:02 +00:00
Francisco Serrador 8d1341c334 Translation update by Francisco Serrador <fserrador@gmail.com> using Weblate
po/es.po: 100.0% (5656 of 5656 strings; 0 fuzzy)
3 failing checks (0.1%)
Translation: GnuCash/Program (Spanish)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/es/

Translation update  by Francisco Serrador <fserrador@gmail.com> using Weblate

po/es.po: 100.0% (5656 of 5656 strings; 0 fuzzy)
0 failing checks (0.0%)
Translation: GnuCash/Program (Spanish)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/es/

Translation update  by Francisco Serrador <fserrador@gmail.com> using Weblate

po/glossary/es.po: 100.0% (213 of 213 strings; 0 fuzzy)
0 failing checks (0.0%)
Translation: GnuCash/Glossary (Spanish)
Translate-URL: https://hosted.weblate.org/projects/gnucash/glossary/es/

Translation update  by Francisco Serrador <fserrador@gmail.com> using Weblate

po/glossary/es.po: 100.0% (213 of 213 strings; 0 fuzzy)
0 failing checks (0.0%)
Translation: GnuCash/Glossary (Spanish)
Translate-URL: https://hosted.weblate.org/projects/gnucash/glossary/es/

Translation update  by Francisco Serrador <fserrador@gmail.com> using Weblate

po/es.po: 100.0% (5656 of 5656 strings; 0 fuzzy)
1 failing checks (0.1%)
Translation: GnuCash/Program (Spanish)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/es/

Co-authored-by: Francisco Serrador <fserrador@gmail.com>
2026-02-22 04:09:59 +00:00
Yegor Derevenets c2cda6bd91 Translation update by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate
po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
104 failing checks (1.8%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/

Co-authored-by: Yegor Derevenets <yegor.derevenets@gmail.com>
2026-02-22 04:09:57 +00:00
Szia Tomi a45ef0b570 Translation update by Szia Tomi <sziatomi01@gmail.com> using Weblate
po/hu.po: 90.2% (5107 of 5656 strings; 125 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

Translation update  by Szia Tomi <sziatomi01@gmail.com> using Weblate

po/hu.po: 90.2% (5106 of 5656 strings; 125 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

Translation update  by Szia Tomi <sziatomi01@gmail.com> using Weblate

po/hu.po: 90.2% (5105 of 5656 strings; 125 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

Translation update  by Szia Tomi <sziatomi01@gmail.com> using Weblate

po/hu.po: 90.2% (5103 of 5656 strings; 126 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

Translation update  by Szia Tomi <sziatomi01@gmail.com> using Weblate

po/hu.po: 90.1% (5101 of 5656 strings; 126 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

Translation update  by Szia Tomi <sziatomi01@gmail.com> using Weblate

po/hu.po: 90.1% (5099 of 5656 strings; 126 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

Translation update  by Szia Tomi <sziatomi01@gmail.com> using Weblate

po/hu.po: 90.1% (5097 of 5656 strings; 126 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

Co-authored-by: Szia Tomi <sziatomi01@gmail.com>
2026-02-22 04:09:54 +00:00
hamaryns bdf04d6877 Translation update by hamaryns <hendrik@hendrikmaryns.name> using Weblate
po/nl.po: 98.0% (5543 of 5656 strings; 107 fuzzy)
16 failing checks (0.2%)
Translation: GnuCash/Program (Dutch)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/nl/

Co-authored-by: hamaryns <hendrik@hendrikmaryns.name>
2026-02-22 04:09:51 +00:00
John Ralls 6983adb14a Merge Noerr Noah's 'fix-gsettings-segfault' into stable. 2026-02-20 12:10:14 -08:00
Christopher Lam 2b7043b4ba [reports] use gnc_date_interval_format 2026-02-13 22:01:48 +08:00
Christopher Lam 47938d1a2c [gnc-date.cpp] gnc_date_interval_format localisable with ICU 2026-02-13 21:58:01 +08:00
Noah 587cc4b91e Use g_return_val_if_fail / g_return_if_fail for NULL guards
Replace verbose if-block NULL checks with idiomatic GLib
precondition macros, per review feedback.
2026-02-12 09:11:23 -08:00
Claude 606fc45582 Fix segfault in gnc_gsettings_get_settings_obj when GSettings schemas are not installed
Add NULL guards before dereferencing return values from GLib calls to prevent
segmentation faults when GSettings schemas are missing (e.g., in library-only builds).

The crash occurred when g_settings_schema_source_get_default() returned NULL
and was passed directly to g_settings_schema_source_lookup(), causing a NULL
pointer dereference. The existing G_IS_SETTINGS check came too late.

Changes:
- Add NULL check for schema_source before using it
- Add NULL check for schema before calling g_settings_new_full()
- Add NULL guard in gnc_settings_dump_schema_paths() for consistency
- All callers already handle NULL returns via G_IS_SETTINGS checks

Fixes: https://bugs.gnucash.org/show_bug.cgi?id=799740

https://claude.ai/code/session_01Cdnp3XkAQ29hG1eCxUSAUw
2026-02-09 18:35:56 +00:00
John Ralls 3cee6a3bbc Merge Roy Hansen's 'improve/csv-import-date-format-info' into stable. 2026-02-06 15:59:37 -08:00
Roy Hansen f32abb9194 Improve usability of csv-transaction-import by adding tooltip
for date-format selection.

The date-format selection box displayes all variations with a "-"
separator, however this separator also matches "/" and ".".
The tooltip explains this behavior.
2026-02-02 12:43:41 +01:00
John Ralls 2a67864ae4 Merge latest translations from Weblate. 2026-02-01 13:58:52 -08:00
Giuseppe Foti 5675de8afc Translation update by Giuseppe Foti <foti.giuseppe@gmail.com> using Weblate
po/it.po: 96.6% (5468 of 5656 strings; 138 fuzzy)
29 failing checks (0.5%)
Translation: GnuCash/Program (Italian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/it/

Co-authored-by: Giuseppe Foti <foti.giuseppe@gmail.com>
2026-02-01 21:47:22 +00:00
Yegor Derevenets e53a62d837 Translation update by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate
po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
104 failing checks (1.8%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/

Translation update  by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate

po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
104 failing checks (1.8%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/

Translation update  by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate

po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
104 failing checks (1.8%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/

Translation update  by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate

po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
104 failing checks (1.8%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/

Translation update  by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate

po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
104 failing checks (1.8%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/

Translation update  by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate

po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
102 failing checks (1.8%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/

Translation update  by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate

po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
102 failing checks (1.8%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/

Translation update  by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate

po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
99 failing checks (1.7%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/

Translation update  by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate

po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
99 failing checks (1.7%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/

Translation update  by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate

po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
99 failing checks (1.7%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/

Translation update  by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate

po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
99 failing checks (1.7%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/

Translation update  by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate

po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
99 failing checks (1.7%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/

Translation update  by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate

po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
99 failing checks (1.7%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/

Translation update  by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate

po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
93 failing checks (1.6%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/

Translation update  by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate

po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
93 failing checks (1.6%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/

Translation update  by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate

po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
93 failing checks (1.6%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/

Translation update  by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate

po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
91 failing checks (1.6%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/

Translation update  by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate

po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
91 failing checks (1.6%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/

Translation update  by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate

po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
91 failing checks (1.6%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/

Translation update  by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate

po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
91 failing checks (1.6%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/

Translation update  by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate

po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
91 failing checks (1.6%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/

Translation update  by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate

po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
85 failing checks (1.5%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/

Co-authored-by: Yegor Derevenets <yegor.derevenets@gmail.com>
2026-02-01 21:47:21 +00:00
Szia Tomi e322398421 Translation update by Szia Tomi <sziatomi01@gmail.com> using Weblate
po/hu.po: 90.0% (5095 of 5656 strings; 126 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

Translation update  by Szia Tomi <sziatomi01@gmail.com> using Weblate

po/hu.po: 89.9% (5088 of 5656 strings; 126 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

Translation update  by Szia Tomi <sziatomi01@gmail.com> using Weblate

po/hu.po: 89.9% (5088 of 5656 strings; 126 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

Translation update  by Szia Tomi <sziatomi01@gmail.com> using Weblate

po/hu.po: 89.9% (5088 of 5656 strings; 126 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

Translation update  by Szia Tomi <sziatomi01@gmail.com> using Weblate

po/hu.po: 89.9% (5085 of 5656 strings; 126 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

Translation update  by Szia Tomi <sziatomi01@gmail.com> using Weblate

po/hu.po: 89.8% (5080 of 5656 strings; 126 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

Translation update  by Szia Tomi <sziatomi01@gmail.com> using Weblate

po/hu.po: 89.8% (5080 of 5656 strings; 126 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

Translation update  by Szia Tomi <sziatomi01@gmail.com> using Weblate

po/hu.po: 89.8% (5080 of 5656 strings; 126 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

Translation update  by Szia Tomi <sziatomi01@gmail.com> using Weblate

po/hu.po: 89.7% (5076 of 5656 strings; 127 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

Translation update  by Szia Tomi <sziatomi01@gmail.com> using Weblate

po/hu.po: 89.6% (5073 of 5656 strings; 127 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

Translation update  by Szia Tomi <sziatomi01@gmail.com> using Weblate

po/hu.po: 89.6% (5072 of 5656 strings; 127 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

Translation update  by Szia Tomi <sziatomi01@gmail.com> using Weblate

po/hu.po: 89.6% (5071 of 5656 strings; 127 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

Translation update  by Szia Tomi <sziatomi01@gmail.com> using Weblate

po/hu.po: 89.6% (5071 of 5656 strings; 127 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

Co-authored-by: Szia Tomi <sziatomi01@gmail.com>
2026-02-01 21:47:20 +00:00
David 478e94e43d Translation update by David <davidgmartins98@gmail.com> using Weblate
po/pt_BR.po: 97.7% (5526 of 5656 strings; 114 fuzzy)
20 failing checks (0.3%)
Translation: GnuCash/Program (Portuguese (Brazil))
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/pt_BR/

Co-authored-by: David <davidgmartins98@gmail.com>
2026-02-01 21:47:20 +00:00
hamaryns acf23646d3 Translation update by hamaryns <hendrik@hendrikmaryns.name> using Weblate
po/nl.po: 97.9% (5541 of 5656 strings; 109 fuzzy)
16 failing checks (0.2%)
Translation: GnuCash/Program (Dutch)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/nl/

Co-authored-by: hamaryns <hendrik@hendrikmaryns.name>
2026-02-01 21:47:19 +00:00
Mirek Špaňko 38941538c1 Translation update by Mirek Špaňko <mirekspanko@hotmail.cz> using Weblate
po/cs.po: 40.3% (2285 of 5656 strings; 2077 fuzzy)
888 failing checks (15.7%)
Translation: GnuCash/Program (Czech)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/cs/

Translation update  by Mirek Špaňko <mirekspanko@hotmail.cz> using Weblate

po/glossary/cs.po: 27.6% (59 of 213 strings; 2 fuzzy)
0 failing checks (0.0%)
Translation: GnuCash/Glossary (Czech)
Translate-URL: https://hosted.weblate.org/projects/gnucash/glossary/cs/

Co-authored-by: Mirek Špaňko <mirekspanko@hotmail.cz>
2026-02-01 21:47:18 +00:00
John Ralls f4169c9d5a Merge Roy Hansen's 'CSV-reparse' into stable. 2026-02-01 13:46:18 -08:00
John Ralls ce4af95212 Merge Stefann Koch's 'fix-798873' into stable. 2026-02-01 12:54:39 -08:00
Christopher Lam e0d9d336ba Merge branch 'add_search_invoices_to_customer_list_popup' #2062 into stable 2026-01-31 13:04:12 +08:00
Christopher Lam d44f3d68fc Addendum parent commit -- expand to other owner documents 2026-01-31 13:03:47 +08:00
Stefan Koch e1bbb9bb7b Bug 798873 - Crash when scrubbing after "undoing” changes
Fix double delete in qof_instance_kvp_remove_guid and remove vestigial glist support.

In the KvpValue::Type::FRAME case if the guid matches, it does both:
            delete inst->kvp_data->set_path({path}, nullptr);
            delete v;
Where earlier the v was set to be:
    auto v = inst->kvp_data->get_slot({path});
The second delete is a duplicate of the first and should be removed.
2026-01-30 09:50:21 -05:00
Stefan Koch 52bbcf72c5 Fix innocuous bug in qofinstance idata property. 2026-01-30 09:50:21 -05:00
Christopher Lam 7296407457 [new-owner-report.scm] fix display/due-date tooltip 2026-01-29 07:29:38 +08:00
Christopher Lam 0b4f14e107 [Transaction.cpp] use g_list_copy_deep avoiding g_list_append 2026-01-27 23:43:49 +08:00
Christopher Lam 6ccbafd1db [gnc-log-replay.cpp] don't need to strdup const char*
thereby fixing leak.
2026-01-27 23:43:47 +08:00
Christopher Lam d64c8c8d59 [account.cpp] remove unused static var 2026-01-27 23:43:44 +08:00
Christopher Lam dfe7295a08 [trep-engine.scm] grid: replace cell data with nested hash tables
Replace the list-based grid-cell storage with nested hash tables keyed
by row and column, with per-cell commodity collectors.

Eliminates repeated list traversals and duplicate filtering when
building and rendering the subtotal table, reducing gc load.
2026-01-27 23:21:04 +08:00
Christopher Lam 7825beed0b [report-utilities.scm] gnc:make-commodity-collector 'getmonetary-strict
will find monetary with desired commodity or #f if does not
exist. this is similar to 'getmonetary but does not return a
zero-amount gnc:monetary object.
2026-01-27 22:29:10 +08:00
Christopher Lam f0856f7ff3 Merge branch 'trep-col-totals' #2170 into stable 2026-01-25 11:09:23 +08:00
Christopher Lam 9d07ed7726 [trep-engine] Encapsulate grid state behind a closure
Instead of passing the grid list into grid-* procedures, `make-grid`
now returns a dispatcher that owns the grid and implements operations
selected by an argument.

• Removes repeated `grid` parameters from helpers
• Makes row/column/HTML logic operate on shared private state
• Provides a clearer API: 'add 'get-html
2026-01-25 11:08:45 +08:00
Christopher Lam 9bbe29b42d [trep-engine.scm] tally secondary subtotals in subtotal table
when displaying secondary-level subtotals, also tally the amounts in
the row-total grid
2026-01-25 11:08:45 +08:00
Christopher Lam d3baa74e72 [trep-engine.scm] refactor grid renderer
for each row with multiple commodities, instead of working on
commodities via their indices, work on the commodities directly.

without this refactoring, a subtotal table row with multiple
commodities may show different commodities on the same line.

with this refactoring, the row will show a stable list of commodities.
2026-01-25 09:51:55 +08:00
Christopher Lam a33a1f2f1b [trep-engine.scm] upgrade grid-add
formerly, grid-add was simply adding a new (vector row col data) to
the grid. it was assuming there was no existing data in row/col.

upgrade so that it will consider the existing grid row/col; if there's
existing data it will add the monetary amounts into it.
2026-01-25 09:43:23 +08:00
Christopher Lam 5f5caf49b9 [trep-engine.scm] use :grid-cell record type 2026-01-25 09:42:19 +08:00
Christopher Lam 3a2ac526a6 [gnc-commodity.cpp] improve gnc_commodity_compare
ensure it is a stable sort
2026-01-24 23:49:30 +08:00
Roy Hansen 44bc641131 Bug - When importing csv-transactions, currency_format is not always
properly applied.

Reparse/tokenize all import lines when changing date/currency
formats. In addition, make sure this also happens when setting
base_account.
2026-01-24 11:46:56 +01:00
Robert Fewell c32002bd77 Bug 799705 - Remove Old Prices by Namespace
Add visibility of the namespace used for commodities so prices to
remove can be more specific.
Add a further option to restrict which namespaces are shown in the
list view. This also allows for quick selection by entering the
namespace in the combo entry.
2026-01-18 10:25:19 +00:00
John Ralls e5fe2f3e0e Merge Stefan Koch's 'sk-unittest-qofid' into stable. 2026-01-17 17:11:27 -08:00
Christopher Lam cad455e3c0 Merge branch 'account-col-earliest-date' into stable #2168 2026-01-16 06:31:42 +08:00
Stefan Koch 113af56272 fixup: Review comments about style of code. 2026-01-15 13:14:36 -05:00
Stefan Koch 7f0d66d439 fixup: Add the new test-qofid.cpp file the the source distribution. 2026-01-15 13:00:52 -05:00
Stefan Koch be5933a1ec fixup: Remove memory leaks in the test code. 2026-01-15 11:52:59 -05:00
Stefan Koch 0e3853bfb7 Fix undefined behaviour in collection_compare_cb function.
The collection_compare_cb function set the user_data pointer to point to a local variable
of the function.  That pointer is then used in the (only) calling function
qof_collection_compare to make decisions.  This is undefined.  It is likely not an actual
problem because the stack depth of the qof_collection_foreach followed by
collection_compare_cb is deeper than the qof_collection_get_data call (and others
in between if any) that the stack data user data stays uncorrupted.

But, it is undefined behavior, and could cause really subtle bugs if these there are code
changes that have deeper stack between the setting and using.

Also, using this local variable is not necessary, the qof_collection_compare function
already  sets up a variable local to its scope for this that the collection_compare_cb can
use directly.

This commit removes the local (to collection_compare_cb) variable and uses the one setup
in qof_collection_compare.

The full coverage test for qofid.cpp passed before and after this change.
2026-01-15 08:52:50 -05:00
Stefan Koch 6e9a20dfeb Implement full test coverage of libgnucash/engine/qofid
NOTE:  This does not have full coverage because the "if (!target || !ent)" body in the
collection_compare_cp function cannot be reached. There is too  much safety in the rest of
the system to test this error.

NOTE: I made this a separate test from the test-engine so that I was able to check that it
by itself could test the full coverage of the qofid.cpp file. If it was part of the larger
test, I could have missed some parts that were covered incidentally elsewhere.
2026-01-15 08:52:50 -05:00
Stefan Koch a2cc9881df Explicitly set the is_dirty attribute in qof_collection_new
It is likely that the memory was zeroed anyway, but the explicitness makes it easier to read.
2026-01-15 08:52:50 -05:00
Stefan Koch 9079d87307 Remove unused qof_collection_from_glist function. 2026-01-15 08:52:50 -05:00