gnucash master: Multiple changes pushed

Christopher Lam clam at code.gnucash.org
Tue Aug 9 06:50:43 EDT 2022


Updated	 via  https://github.com/Gnucash/gnucash/commit/41de4cef (commit)
	 via  https://github.com/Gnucash/gnucash/commit/6ba912ee (commit)
	 via  https://github.com/Gnucash/gnucash/commit/2d8bda80 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/de7a6308 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/ad27be33 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/b94164e8 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/b4d3d495 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/322a5998 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/a5c2e4d1 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/e822c12f (commit)
	 via  https://github.com/Gnucash/gnucash/commit/bfa0fd18 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/f0ac8d69 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/e7e3ed8c (commit)
	 via  https://github.com/Gnucash/gnucash/commit/61fc2aad (commit)
	 via  https://github.com/Gnucash/gnucash/commit/bc480efd (commit)
	from  https://github.com/Gnucash/gnucash/commit/8b07ac88 (commit)



commit 41de4cefce621c214c0d6f6ff1c5ca05df8fd917
Merge: 6ba912ee0 61fc2aadd
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Tue Aug 9 18:15:30 2022 +0800

    Merge branch 'maint-sx-popup'


commit 6ba912ee0d3b5129d9a8c90da9f5889932f76684
Merge: 8b07ac88c 2d8bda80c
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Tue Aug 9 18:15:23 2022 +0800

    Merge branch 'maint'


commit 2d8bda80c3bda04d4148c5bdb615c1d153644967
Author: mocsa <csaba at feltoltve.hu>
Date:   Tue Aug 9 00:21:31 2022 +0200

    Translation update  by mocsa <csaba at feltoltve.hu> using Weblate
    
    po/hu.po: 57.2% (3092 of 5400 strings; 1338 fuzzy)
    467 failing checks (8.6%)
    Translation: GnuCash/Program (Hungarian)
    Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/
    
    Co-authored-by: mocsa <csaba at feltoltve.hu>

diff --git a/po/hu.po b/po/hu.po
index 9a1938ce5..3e6e7c49f 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -10,10 +10,10 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: GnuCash 4.11-2\n"
-"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
-"product=GnuCash&component=Translations\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug."
+"cgi?product=GnuCash&component=Translations\n"
 "POT-Creation-Date: 2022-07-22 06:33+0200\n"
-"PO-Revision-Date: 2022-07-14 15:50+0000\n"
+"PO-Revision-Date: 2022-08-08 22:21+0000\n"
 "Last-Translator: mocsa <csaba at feltoltve.hu>\n"
 "Language-Team: Hungarian <https://hosted.weblate.org/projects/gnucash/"
 "gnucash/hu/>\n"
@@ -3723,9 +3723,8 @@ msgid "Archive old data using accounting periods"
 msgstr "Régi adatok archíválása könyvelési időszakok használatával"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:191
-#, fuzzy
 msgid "_Price Database"
-msgstr "Ár adatbázis"
+msgstr "Árfolyam-adatbázis"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:192
 msgid "View and edit the prices for stocks and mutual funds"
@@ -17623,7 +17622,7 @@ msgstr "_Dátum"
 #: gnucash/gtkbuilder/dialog-price.glade:781
 #: gnucash/report/reports/standard/price-scatter.scm:82
 msgid "Price Database"
-msgstr "Ár adatbázis"
+msgstr "Árfolyam-adatbázis"
 
 #: gnucash/gtkbuilder/dialog-price.glade:828
 msgid "Add a new price."
@@ -21336,9 +21335,8 @@ msgid "Import _Prices from a CSV file..."
 msgstr "Tranzakciók importálása szöveges fájlból"
 
 #: gnucash/import-export/csv-imp/gnc-plugin-csv-import.c:61
-#, fuzzy
 msgid "Import Prices from a CSV file"
-msgstr "Tranzakciók importálása szöveges fájlból"
+msgstr "Árfolyamok CSV-fájlból"
 
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:134
 #, fuzzy

commit de7a63082be4eebf913814f28b046eaca7b53aad
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Mon Aug 8 09:05:19 2022 +0800

    [gnc-sx-instance-model] leaks: free temporal_state
    
    it's a simple struct containing GDate and int

diff --git a/libgnucash/app-utils/gnc-sx-instance-model.c b/libgnucash/app-utils/gnc-sx-instance-model.c
index 39507aaeb..4e114eb11 100644
--- a/libgnucash/app-utils/gnc-sx-instance-model.c
+++ b/libgnucash/app-utils/gnc-sx-instance-model.c
@@ -533,6 +533,8 @@ _gnc_sx_gen_instances(gpointer *data, gpointer user_data)
 
     instances->instance_list = g_list_reverse (instlist);
 
+    gnc_sx_destroy_temporal_state (temporal_state);
+
     return instances;
 }
 

commit ad27be333ec40c5eaec3a51d57119e27d9bd7a8f
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Mon Aug 8 12:59:34 2022 +0800

    [gnc-sx-instance-model] prepend GList loops instead of append

diff --git a/libgnucash/app-utils/gnc-sx-instance-model.c b/libgnucash/app-utils/gnc-sx-instance-model.c
index c3a433857..39507aaeb 100644
--- a/libgnucash/app-utils/gnc-sx-instance-model.c
+++ b/libgnucash/app-utils/gnc-sx-instance-model.c
@@ -451,7 +451,7 @@ static void
 _build_list_from_hash_elts(gpointer key, gpointer value, gpointer user_data)
 {
     GList **list = (GList**)user_data;
-    *list = g_list_insert_sorted(*list, value, _compare_GncSxVariables);
+    *list = g_list_prepend (*list, value);
 }
 
 GList *
@@ -459,13 +459,14 @@ gnc_sx_instance_get_variables(GncSxInstance *inst)
 {
     GList *vars = NULL;
     g_hash_table_foreach(inst->variable_bindings, _build_list_from_hash_elts, &vars);
-    return vars;
+    return g_list_sort (vars, _compare_GncSxVariables);
 }
 
 static GncSxInstances*
 _gnc_sx_gen_instances(gpointer *data, gpointer user_data)
 {
     GncSxInstances *instances = g_new0(GncSxInstances, 1);
+    GList *instlist = NULL;
     SchedXaction *sx = (SchedXaction*)data;
     const GDate *range_end = (const GDate*)user_data;
     GDate creation_end, remind_end;
@@ -493,8 +494,7 @@ _gnc_sx_gen_instances(gpointer *data, gpointer user_data)
             seq_num = gnc_sx_get_instance_count(sx, postponed->data);
             inst = gnc_sx_instance_new(instances, SX_INSTANCE_STATE_POSTPONED,
                                        &inst_date, postponed->data, seq_num);
-            instances->instance_list =
-                g_list_append(instances->instance_list, inst);
+            instlist = g_list_prepend (instlist, inst);
             gnc_sx_destroy_temporal_state(temporal_state);
             temporal_state = gnc_sx_clone_temporal_state(postponed->data);
             gnc_sx_incr_temporal_state(sx, temporal_state);
@@ -512,7 +512,7 @@ _gnc_sx_gen_instances(gpointer *data, gpointer user_data)
         seq_num = gnc_sx_get_instance_count(sx, temporal_state);
         inst = gnc_sx_instance_new(instances, SX_INSTANCE_STATE_TO_CREATE,
                                    &cur_date, temporal_state, seq_num);
-        instances->instance_list = g_list_append(instances->instance_list, inst);
+        instlist = g_list_prepend (instlist, inst);
         gnc_sx_incr_temporal_state(sx, temporal_state);
         cur_date = xaccSchedXactionGetNextInstance(sx, temporal_state);
     }
@@ -526,12 +526,13 @@ _gnc_sx_gen_instances(gpointer *data, gpointer user_data)
         seq_num = gnc_sx_get_instance_count(sx, temporal_state);
         inst = gnc_sx_instance_new(instances, SX_INSTANCE_STATE_REMINDER,
                                    &cur_date, temporal_state, seq_num);
-        instances->instance_list = g_list_append(instances->instance_list,
-                                                 inst);
+        instlist = g_list_prepend (instlist, inst);
         gnc_sx_incr_temporal_state(sx, temporal_state);
         cur_date = xaccSchedXactionGetNextInstance(sx, temporal_state);
     }
 
+    instances->instance_list = g_list_reverse (instlist);
+
     return instances;
 }
 
@@ -848,7 +849,7 @@ _find_unreferenced_vars(gchar *key,
         !g_hash_table_lookup_extended(cb_pair->hash, key, NULL, NULL))
     {
         DEBUG("variable [%s] not found", key);
-        cb_pair->list = g_list_append(cb_pair->list, key);
+        cb_pair->list = g_list_prepend (cb_pair->list, key);
     }
 }
 
@@ -928,7 +929,7 @@ gnc_sx_instance_model_update_sx_instances(GncSxInstanceModel *model, SchedXactio
             removed_cb_data.hash = new_instances->variable_names;
             removed_cb_data.list = NULL;
             g_hash_table_foreach(existing->variable_names, (GHFunc)_find_unreferenced_vars, &removed_cb_data);
-            removed_var_names = removed_cb_data.list;
+            removed_var_names = g_list_reverse (removed_cb_data.list);
         }
         DEBUG("%d removed variables", g_list_length(removed_var_names));
 
@@ -938,7 +939,7 @@ gnc_sx_instance_model_update_sx_instances(GncSxInstanceModel *model, SchedXactio
             added_cb_data.hash = existing->variable_names;
             added_cb_data.list = NULL;
             g_hash_table_foreach(new_instances->variable_names, (GHFunc)_find_unreferenced_vars, &added_cb_data);
-            added_var_names = added_cb_data.list;
+            added_var_names = g_list_reverse (added_cb_data.list);
         }
         DEBUG("%d added variables", g_list_length(added_var_names));
 
@@ -1556,7 +1557,7 @@ gnc_sx_instance_model_set_variable(GncSxInstanceModel *model,
 static void
 _list_from_hash_elts(gpointer key, gpointer value, GList **result_list)
 {
-    *result_list = g_list_append(*result_list, value);
+    *result_list = g_list_prepend (*result_list, value);
 }
 
 GList*
@@ -1584,7 +1585,7 @@ gnc_sx_instance_model_check_variables(GncSxInstanceModel *model)
                     GncSxVariableNeeded *need = g_new0(GncSxVariableNeeded, 1);
                     need->instance = inst;
                     need->variable = var;
-                    rtn = g_list_append(rtn, need);
+                    rtn = g_list_prepend (rtn, need);
                 }
             }
             g_list_free(var_list);

commit b94164e8ffca14cb9294d3c5efc2d7ebcd1cbdc8
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Mon Aug 8 12:59:50 2022 +0800

    [gnc-tree-view-price] prepend GList loops instead of append

diff --git a/gnucash/gnome-utils/gnc-tree-view-price.c b/gnucash/gnome-utils/gnc-tree-view-price.c
index 77a42457e..abe5302d4 100644
--- a/gnucash/gnome-utils/gnc-tree-view-price.c
+++ b/gnucash/gnome-utils/gnc-tree-view-price.c
@@ -762,7 +762,7 @@ get_selected_prices_helper (GtkTreeModel *s_model,
     price = gnc_tree_model_price_get_price (GNC_TREE_MODEL_PRICE(model),
                                             &iter);
     if (price)
-        *return_list = g_list_append(*return_list, price);
+        *return_list = g_list_prepend (*return_list, price);
 }
 
 /*
@@ -780,7 +780,7 @@ gnc_tree_view_price_get_selected_prices (GncTreeViewPrice *view)
 
     selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(view));
     gtk_tree_selection_selected_foreach(selection, get_selected_prices_helper, &return_list);
-    return return_list;
+    return g_list_reverse (return_list);
 }
 
 static void
@@ -805,7 +805,7 @@ get_selected_commodity_helper (GtkTreeModel *s_model,
     commodity = gnc_tree_model_price_get_commodity (GNC_TREE_MODEL_PRICE(model), &iter);
 
     if (commodity)
-        *return_list = g_list_append(*return_list, commodity);
+        *return_list = g_list_prepend (*return_list, commodity);
 }
 
 /*
@@ -824,5 +824,5 @@ gnc_tree_view_price_get_selected_commodities (GncTreeViewPrice *view)
 
     selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(view));
     gtk_tree_selection_selected_foreach (selection, get_selected_commodity_helper, &return_list);
-    return return_list;
+    return g_list_reverse (return_list);
 }

commit b4d3d4952d41782cf09e884c1df751e26549a445
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Mon Aug 8 12:59:42 2022 +0800

    [gnc-tree-model-split-reg] prepend GList loops instead of append

diff --git a/gnucash/gnome-utils/gnc-tree-model-split-reg.c b/gnucash/gnome-utils/gnc-tree-model-split-reg.c
index c333b48b0..8f911df38 100644
--- a/gnucash/gnome-utils/gnc-tree-model-split-reg.c
+++ b/gnucash/gnome-utils/gnc-tree-model-split-reg.c
@@ -516,7 +516,7 @@ gtm_sr_foreach_func (GtkTreeModel *model,
     g_assert ( rowref_list != NULL );
 
     rowref = gtk_tree_row_reference_new (model, path);
-    *rowref_list = g_list_append (*rowref_list, rowref);
+    *rowref_list = g_list_prepend (*rowref_list, rowref);
 
     return FALSE; /* do not stop walking the store, call us with next row */
 }
@@ -530,8 +530,6 @@ gtm_sr_remove_all_rows (GncTreeModelSplitReg *model)
 
     gtk_tree_model_foreach (GTK_TREE_MODEL(model), (GtkTreeModelForeachFunc)gtm_sr_foreach_func, &rr_list);
 
-    rr_list = g_list_reverse (rr_list);
-
     for ( node = rr_list;  node != NULL;  node = node->next )
     {
         GtkTreePath *path;

commit 322a5998fbc67758cce059a8ef8ced540c0f73cc
Author: Christian Wehling <christian.wehling at web.de>
Date:   Sat Aug 6 21:20:31 2022 +0200

    Translation update  by Christian Wehling <christian.wehling at web.de> using Weblate
    
    po/de.po: 99.9% (5399 of 5400 strings; 1 fuzzy)
    181 failing checks (3.3%)
    Translation: GnuCash/Program (German)
    Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/de/
    
    Co-authored-by: Christian Wehling <christian.wehling at web.de>

diff --git a/po/de.po b/po/de.po
index 381712ca8..929c1b059 100644
--- a/po/de.po
+++ b/po/de.po
@@ -39,7 +39,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug."
 "cgi?product=GnuCash&component=Translations\n"
 "POT-Creation-Date: 2022-07-22 06:33+0200\n"
-"PO-Revision-Date: 2022-08-01 20:19+0000\n"
+"PO-Revision-Date: 2022-08-06 19:20+0000\n"
 "Last-Translator: Christian Wehling <christian.wehling at web.de>\n"
 "Language-Team: German <https://hosted.weblate.org/projects/gnucash/gnucash/"
 "de/>\n"
@@ -17955,11 +17955,11 @@ msgstr "Online Kurse"
 
 #: gnucash/gtkbuilder/dialog-price.glade:12
 msgid "Bid"
-msgstr "Geldkurs"
+msgstr "Geldkurs (Ihr Verkauf)"
 
 #: gnucash/gtkbuilder/dialog-price.glade:15
 msgid "Ask"
-msgstr "Briefkurs"
+msgstr "Briefkurs (Ihr Kauf)"
 
 #: gnucash/gtkbuilder/dialog-price.glade:18
 msgid "Last"

commit a5c2e4d197064e51440042b7d0108af3a7e91ece
Author: Enrique Ayesta Perojo <eayesta at gmail.com>
Date:   Sat Aug 6 21:20:31 2022 +0200

    Translation update  by Enrique Ayesta Perojo <eayesta at gmail.com> using Weblate
    
    po/eu.po: 27.5% (1485 of 5400 strings; 2524 fuzzy)
    916 failing checks (16.9%)
    Translation: GnuCash/Program (Basque)
    Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/eu/
    
    Co-authored-by: Enrique Ayesta Perojo <eayesta at gmail.com>

diff --git a/po/eu.po b/po/eu.po
index 6729aa943..e49f54859 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -3,23 +3,24 @@
 # Copyright (C) 2005 Free Software Foundation, Inc.
 # Mikel Olasagasti Uranga, 2005
 # Hizkuntza Politikarako Sailburuordetza <hizkpol at ej-gv.es>, 2005.
-#
+# Enrique Ayesta Perojo <eayesta at gmail.com>, 2022.
 msgid ""
 msgstr ""
 "Project-Id-Version: GnuCash 4.11-2\n"
-"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
-"product=GnuCash&component=Translations\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug."
+"cgi?product=GnuCash&component=Translations\n"
 "POT-Creation-Date: 2022-07-22 06:33+0200\n"
-"PO-Revision-Date: 2005-08-05 10:45+0200\n"
-"Last-Translator: Mikel Olasagasti <hey_neken at mundurat.net>\n"
-"Language-Team: Basque <translation-team-eu at lists.sourceforge.net>\n"
+"PO-Revision-Date: 2022-08-05 14:15+0000\n"
+"Last-Translator: Enrique Ayesta Perojo <eayesta at gmail.com>\n"
+"Language-Team: Basque <https://hosted.weblate.org/projects/gnucash/gnucash/"
+"eu/>\n"
 "Language: eu\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.14-dev\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: KBabel 1.9.1\n"
 
 #: borrowed/goffice/go-charmap-sel.c:70
 msgid "Arabic"
@@ -31164,7 +31165,7 @@ msgstr ""
 
 #: libgnucash/engine/policy.c:62
 msgid "Manually select lots."
-msgstr ""
+msgstr "Aukeratu sortak eskuz."
 
 #: libgnucash/engine/qofbookslots.h:66
 #, fuzzy
@@ -31211,7 +31212,7 @@ msgstr "_Ezabatu kontua"
 #. Translators: " + " is an separator in a list of string-representations of recurrence frequencies
 #: libgnucash/engine/Recurrence.c:511
 msgid " + "
-msgstr ""
+msgstr " + "
 
 #. Translators: %u is the recurrence multiplier, i.e. this
 #. event should occur every %u'th week.
@@ -31235,7 +31236,7 @@ msgstr "azken eguna"
 #: libgnucash/engine/Recurrence.c:674
 #, c-format
 msgid "%s %s"
-msgstr ""
+msgstr "%s %s"
 
 #. Translators: %d is the number of Recurrences in the list.
 #: libgnucash/engine/Recurrence.c:727

commit e822c12f8bc1b5b6305c81f05b1880fbf1d15410
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sun Aug 7 09:22:01 2022 +0800

    Bug 798590 - Transaction report: wrong type argument in position 1
    
    handle single-col subtotals

diff --git a/gnucash/report/trep-engine.scm b/gnucash/report/trep-engine.scm
index 57b4e8973..48e80cdfc 100644
--- a/gnucash/report/trep-engine.scm
+++ b/gnucash/report/trep-engine.scm
@@ -1893,7 +1893,7 @@ be excluded from periodic reporting.")
           (else (gnc:error "unknown sortvalue"))))
   (define list-of-rows (sort (delete 'row-total (grid-rows grid)) <?))
   (define list-of-cols (sort (delete 'col-total (grid-cols grid)) <?))
-  (define row-average-enabled? (pair? (cdr list-of-cols)))
+  (define row-average-enabled? (and (pair? list-of-cols) (pair? (cdr list-of-cols))))
   (define (monetary-div monetary divisor)
     (and monetary
          (let* ((amount (gnc:gnc-monetary-amount monetary))

commit bfa0fd1819d88ba7300271ce2786a35a9a26dfa2
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sat Aug 6 14:08:22 2022 +0800

    Bug 798588 - sx scrubbing was using incorrect free function
    
    the GHashTable values are gnc_numeric*.

diff --git a/libgnucash/app-utils/gnc-sx-instance-model.c b/libgnucash/app-utils/gnc-sx-instance-model.c
index b3a8e782d..c3a433857 100644
--- a/libgnucash/app-utils/gnc-sx-instance-model.c
+++ b/libgnucash/app-utils/gnc-sx-instance-model.c
@@ -102,7 +102,7 @@ scrub_sx_split_numeric (Split* split, gboolean is_credit, GList **changes)
     char *formval;
     gnc_numeric *numval = NULL;
     GHashTable *parser_vars = g_hash_table_new_full
-        (g_str_hash, g_str_equal, g_free, (GDestroyNotify)gnc_sx_variable_free);
+        (g_str_hash, g_str_equal, g_free, (GDestroyNotify)g_free);
     char *error_loc;
     gnc_numeric amount = gnc_numeric_zero ();
     gboolean parse_result = FALSE;

commit f0ac8d69b2f352b88c0133387cc58af24a816195
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sat Aug 6 14:09:26 2022 +0800

    [gnc-sx-instance-model.c] indent attributes properly

diff --git a/libgnucash/app-utils/gnc-sx-instance-model.c b/libgnucash/app-utils/gnc-sx-instance-model.c
index dcb51f8cb..b3a8e782d 100644
--- a/libgnucash/app-utils/gnc-sx-instance-model.c
+++ b/libgnucash/app-utils/gnc-sx-instance-model.c
@@ -107,8 +107,10 @@ scrub_sx_split_numeric (Split* split, gboolean is_credit, GList **changes)
     gnc_numeric amount = gnc_numeric_zero ();
     gboolean parse_result = FALSE;
 
-    qof_instance_get (QOF_INSTANCE (split), formula, &formval,
-                      numeric, &numval, NULL);
+    qof_instance_get (QOF_INSTANCE (split),
+                      formula, &formval,
+                      numeric, &numval,
+                      NULL);
 
     parse_result = gnc_exp_parser_parse_separate_vars (formval, &amount,
                                                        &error_loc, parser_vars);
@@ -116,8 +118,6 @@ scrub_sx_split_numeric (Split* split, gboolean is_credit, GList **changes)
     if (!parse_result || g_hash_table_size (parser_vars) != 0)
         amount = gnc_numeric_zero ();
 
-    g_hash_table_unref (parser_vars);
-
     if (!numval || !gnc_numeric_eq (amount, *numval))
     {
         ScrubItem *change = g_new (ScrubItem, 1);
@@ -126,6 +126,7 @@ scrub_sx_split_numeric (Split* split, gboolean is_credit, GList **changes)
         *changes = g_list_prepend (*changes, change);
     }
 
+    g_hash_table_destroy (parser_vars);
     g_free (formval);
     g_free (numval);
 }
@@ -148,7 +149,9 @@ gnc_sx_scrub_split_numerics (gpointer psplit, gpointer puser)
     for (GList *n = changes; n; n = n->next)
     {
         ScrubItem *change = n->data;
-        qof_instance_set (QOF_INSTANCE (split), change->name, &change->amount, NULL);
+        qof_instance_set (QOF_INSTANCE (split),
+                          change->name, &change->amount,
+                          NULL);
     }
     xaccTransCommitEdit (trans);
     g_list_free_full (changes, g_free);

commit e7e3ed8c2beefd8c412d343b924a6d175810add0
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sat Aug 6 10:20:16 2022 +0800

    [test-charts] add cash-flow to clear warning about missing report

diff --git a/gnucash/report/reports/standard/test/test-charts.scm b/gnucash/report/reports/standard/test/test-charts.scm
index d4707a74b..76b53f7ba 100644
--- a/gnucash/report/reports/standard/test/test-charts.scm
+++ b/gnucash/report/reports/standard/test/test-charts.scm
@@ -4,6 +4,7 @@
 (use-modules (gnucash reports standard category-barchart))
 (use-modules (gnucash reports standard net-charts))
 (use-modules (gnucash reports standard account-piecharts))
+(use-modules (gnucash reports standard cash-flow))
 (use-modules (gnucash reports standard cashflow-barchart))
 (use-modules (gnucash reports standard price-scatter))
 (use-modules (gnucash reports example daily-reports))

commit 61fc2aadd369f10fc5265e4daf24481e3d7248c7
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Fri Jul 22 00:42:19 2022 +0800

    also shift-F10

diff --git a/gnucash/gnome/gnc-plugin-page-sx-list.c b/gnucash/gnome/gnc-plugin-page-sx-list.c
index 9ddee7f35..76db337fd 100644
--- a/gnucash/gnome/gnc-plugin-page-sx-list.c
+++ b/gnucash/gnome/gnc-plugin-page-sx-list.c
@@ -480,6 +480,13 @@ treeview_button_press (GtkTreeView *treeview, GdkEvent *event,
     return FALSE;
 }
 
+static gboolean
+treeview_popup_menu (GtkTreeView *treeview, GncPluginPageSxList *page)
+{
+    treeview_popup (treeview, NULL, page);
+    return TRUE;
+}
+
 static GtkWidget *
 gnc_plugin_page_sx_list_create_widget (GncPluginPage *plugin_page)
 {
@@ -571,6 +578,8 @@ gnc_plugin_page_sx_list_create_widget (GncPluginPage *plugin_page)
 
     g_signal_connect (G_OBJECT(priv->tree_view), "button-press-event",
                       G_CALLBACK(treeview_button_press), page);
+    g_signal_connect (G_OBJECT(priv->tree_view), "popup-menu",
+                      G_CALLBACK(treeview_popup_menu), page);
 
     /* Add vbox and label */
     vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);

commit bc480efdd95160cf1841a851f01702d03d6a6a96
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Thu Jul 21 21:38:58 2022 +0800

    [gnc-plugin-page-sx-list] enable popup for sx editor

diff --git a/gnucash/gnome/gnc-plugin-page-sx-list.c b/gnucash/gnome/gnc-plugin-page-sx-list.c
index 218a5e0c3..9ddee7f35 100644
--- a/gnucash/gnome/gnc-plugin-page-sx-list.c
+++ b/gnucash/gnome/gnc-plugin-page-sx-list.c
@@ -409,6 +409,76 @@ gppsl_model_populated_cb (GtkTreeModel *tree_model, GncPluginPageSxList *page)
     }
 }
 
+static void
+gpps_new_cb (GtkMenuItem *menuitem, GncPluginPageSxList *page)
+{
+    gnc_plugin_page_sx_list_cmd_new (NULL, page);
+    return;
+}
+
+static void
+gpps_edit_cb (GtkMenuItem *menuitem, GncPluginPageSxList *page)
+{
+    gnc_plugin_page_sx_list_cmd_edit (NULL, page);
+    return;
+}
+
+static void
+gpps_delete_cb (GtkMenuItem *menuitem, GncPluginPageSxList *page)
+{
+    gnc_plugin_page_sx_list_cmd_delete (NULL, page);
+    return;
+}
+
+static void
+treeview_popup (GtkTreeView *treeview, GdkEvent *event, GncPluginPageSxList *page)
+{
+    GncPluginPageSxListPrivate *priv = GNC_PLUGIN_PAGE_SX_LIST_GET_PRIVATE (page);
+    GtkTreeView *tree_view = GTK_TREE_VIEW (priv->tree_view);
+    GtkTreeSelection *selection = gtk_tree_view_get_selection (tree_view);
+    gint count_selection = gtk_tree_selection_count_selected_rows (selection);
+    GtkWidget *menu, *menuitem;
+
+    menu = gtk_menu_new();
+
+    menuitem = gtk_menu_item_new_with_mnemonic (_("_New"));
+    g_signal_connect (menuitem, "activate", G_CALLBACK(gpps_new_cb), page);
+    gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem);
+
+    menuitem = gtk_menu_item_new_with_mnemonic (_("_Edit"));
+    g_signal_connect (menuitem, "activate", G_CALLBACK(gpps_edit_cb), page);
+    gtk_widget_set_sensitive (menuitem, count_selection > 0);
+    gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem);
+
+    menuitem = gtk_menu_item_new_with_mnemonic (_("_Delete"));
+    g_signal_connect (menuitem, "activate", G_CALLBACK(gpps_delete_cb), page);
+    gtk_widget_set_sensitive (menuitem, count_selection > 0);
+    gtk_menu_shell_append (GTK_MENU_SHELL(menu), menuitem);
+
+    gtk_menu_attach_to_widget (GTK_MENU (menu), GTK_WIDGET (priv->tree_view), NULL);
+    gtk_widget_show_all (menu);
+    gtk_menu_popup_at_pointer (GTK_MENU (menu), event);
+}
+
+static gboolean
+treeview_button_press (GtkTreeView *treeview, GdkEvent *event,
+                       GncPluginPageSxList *page)
+{
+    GncPluginPageSxListPrivate *priv = GNC_PLUGIN_PAGE_SX_LIST_GET_PRIVATE (page);
+    GtkTreeView *tree_view = GTK_TREE_VIEW (priv->tree_view);
+    GtkTreeSelection *selection = gtk_tree_view_get_selection (tree_view);
+
+    if (event->type == GDK_BUTTON_PRESS)
+    {
+        GdkEventButton *event_button = (GdkEventButton*)event;
+        if (event_button->button == GDK_BUTTON_SECONDARY)
+        {
+            treeview_popup (tree_view, event, page);
+            return TRUE;
+        }
+    }
+    return FALSE;
+}
 
 static GtkWidget *
 gnc_plugin_page_sx_list_create_widget (GncPluginPage *plugin_page)
@@ -499,6 +569,9 @@ gnc_plugin_page_sx_list_create_widget (GncPluginPage *plugin_page)
                           "model-populated", (GCallback)gppsl_model_populated_cb, (gpointer)page);
     }
 
+    g_signal_connect (G_OBJECT(priv->tree_view), "button-press-event",
+                      G_CALLBACK(treeview_button_press), page);
+
     /* Add vbox and label */
     vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
     gtk_box_set_homogeneous (GTK_BOX(vbox), FALSE);



Summary of changes:
 gnucash/gnome-utils/gnc-tree-view-price.c    |  8 +--
 gnucash/gnome/gnc-plugin-page-sx-list.c      | 82 ++++++++++++++++++++++++++++
 gnucash/report/trep-engine.scm               |  2 +-
 libgnucash/app-utils/gnc-sx-instance-model.c | 27 +++++----
 po/de.po                                     |  6 +-
 po/eu.po                                     | 23 ++++----
 po/hu.po                                     | 14 ++---
 7 files changed, 123 insertions(+), 39 deletions(-)



More information about the gnucash-changes mailing list