gnucash maint: Multiple changes pushed

John Ralls jralls at code.gnucash.org
Tue Sep 28 15:04:33 EDT 2021


Updated	 via  https://github.com/Gnucash/gnucash/commit/d561cc61 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/96db26cc (commit)
	 via  https://github.com/Gnucash/gnucash/commit/8bfa5a63 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/c96024ab (commit)
	from  https://github.com/Gnucash/gnucash/commit/dee4f5e5 (commit)



commit d561cc61881666485ba268d319e06a6c1309bb87
Author: John Ralls <jralls at ceridwen.us>
Date:   Tue Sep 28 12:03:48 2021 -0700

    Revert "Revert "[gnc-plugin-page-register] when reversing reversed txn, offer jump""
    
    This reverts commit c96024ab3df0a77ff35d6e65dc98e4086cf8c9f1.
    GnuCash 4.8a having been tagged.

diff --git a/gnucash/gnome/gnc-plugin-page-register.c b/gnucash/gnome/gnc-plugin-page-register.c
index ff7ade8d4..989593cef 100644
--- a/gnucash/gnome/gnc-plugin-page-register.c
+++ b/gnucash/gnome/gnc-plugin-page-register.c
@@ -4072,13 +4072,6 @@ gnc_plugin_page_register_cmd_reverse_transaction (GtkAction* action,
     if (trans == NULL)
         return;
 
-    if (xaccTransGetReversedBy (trans))
-    {
-        gnc_error_dialog (GTK_WINDOW (window), "%s",
-                          _ ("A reversing entry has already been created for this transaction."));
-        return;
-    }
-
     split = gnc_split_register_get_current_split (reg);
     account = xaccSplitGetAccount (split);
 
@@ -4088,6 +4081,17 @@ gnc_plugin_page_register_cmd_reverse_transaction (GtkAction* action,
         return;
     }
 
+    new_trans = xaccTransGetReversedBy (trans);
+    if (new_trans)
+    {
+        const char *rev = _("A reversing entry has already been created for this transaction.");
+        const char *jump = _("Jump to the transaction?");
+        if (gnc_verify_dialog (GTK_WINDOW (window), TRUE, "%s\n\n%s", rev, jump))
+            goto jump_to_trans;
+        else
+            return;
+    }
+
     if (!gnc_dup_time64_dialog (window, _("Reverse Transaction"),
                                 _("New Transaction Information"), &date))
     {
@@ -4104,6 +4108,7 @@ gnc_plugin_page_register_cmd_reverse_transaction (GtkAction* action,
 
     gnc_resume_gui_refresh();
 
+ jump_to_trans:
     /* Now jump to new trans */
     gsr = gnc_plugin_page_register_get_gsr (GNC_PLUGIN_PAGE (page));
     split = xaccTransFindSplitByAccount(new_trans, account);

commit 96db26cc1d79e6afc2b267df74cd4511dfa2bd41
Author: John Ralls <jralls at ceridwen.us>
Date:   Tue Sep 28 11:27:04 2021 -0700

    Retag 4.8 for more GSettings crash repairs.

diff --git a/NEWS b/NEWS
index 9737ffe2b..60a287cb9 100644
--- a/NEWS
+++ b/NEWS
@@ -3,8 +3,10 @@ Version history:
 4.8  - 28 September 2021
 The ninth release of the 4.x stable series.
 
-This is a snap release to fix a crasher bug on Linux. The only change is
-     GSettings hotfix - resolve crash due to bad schema reference
+This is a snap release to fix a crasher bug on Linux. The only changes are
+    [gsettings] Avoid crash from settings schema not being registered.
+    Rethink how gsettings migration file is constructed
+    GSettings hotfix - resolve crash due to bad schema reference
 
 4.7  - 26 September 2021
 The eighth release of the 4.x stable series.

commit 8bfa5a63f2d9fa80f9985821f61ac289a243e609
Author: John Ralls <jralls at ceridwen.us>
Date:   Tue Sep 28 11:00:05 2021 -0700

    [gsettings] Avoid crash from settings schema not being registered.

diff --git a/libgnucash/app-utils/gnc-gsettings.cpp b/libgnucash/app-utils/gnc-gsettings.cpp
index 9288f6f51..4476d7dc8 100644
--- a/libgnucash/app-utils/gnc-gsettings.cpp
+++ b/libgnucash/app-utils/gnc-gsettings.cpp
@@ -101,9 +101,13 @@ static GSettings * gnc_gsettings_get_settings_ptr (const gchar *schema_str)
 
     gset = static_cast<GSettings*> (g_hash_table_lookup (schema_hash, full_name));
     DEBUG ("Looking for schema %s returned gsettings %p", full_name, gset);
+    auto schema_source{g_settings_schema_source_get_default(                                                            )};
     if (!gset)
     {
-        gset = g_settings_new (full_name);
+        auto schema_source {g_settings_schema_source_get_default()};
+        auto schema {g_settings_schema_source_lookup(schema_source, full_name,
+                                                     FALSE)};
+        gset = g_settings_new_full (schema, nullptr, nullptr);
         DEBUG ("Created gsettings object %p for schema %s", gset, full_name);
         if (G_IS_SETTINGS(gset))
             g_hash_table_insert (schema_hash, full_name, gset);
@@ -114,7 +118,6 @@ static GSettings * gnc_gsettings_get_settings_ptr (const gchar *schema_str)
     {
         g_free(full_name);
     }
-
     LEAVE("");
     return gset;
 }

commit c96024ab3df0a77ff35d6e65dc98e4086cf8c9f1
Author: John Ralls <jralls at ceridwen.us>
Date:   Tue Sep 28 10:23:55 2021 -0700

    Revert "[gnc-plugin-page-register] when reversing reversed txn, offer jump"
    
    This reverts commit b8c9b1a6ce0e1e4c6740e1de450859b90cbadcec.
    Because I need to re-tag 4.8 after more work on g_settings.

diff --git a/gnucash/gnome/gnc-plugin-page-register.c b/gnucash/gnome/gnc-plugin-page-register.c
index 989593cef..ff7ade8d4 100644
--- a/gnucash/gnome/gnc-plugin-page-register.c
+++ b/gnucash/gnome/gnc-plugin-page-register.c
@@ -4072,6 +4072,13 @@ gnc_plugin_page_register_cmd_reverse_transaction (GtkAction* action,
     if (trans == NULL)
         return;
 
+    if (xaccTransGetReversedBy (trans))
+    {
+        gnc_error_dialog (GTK_WINDOW (window), "%s",
+                          _ ("A reversing entry has already been created for this transaction."));
+        return;
+    }
+
     split = gnc_split_register_get_current_split (reg);
     account = xaccSplitGetAccount (split);
 
@@ -4081,17 +4088,6 @@ gnc_plugin_page_register_cmd_reverse_transaction (GtkAction* action,
         return;
     }
 
-    new_trans = xaccTransGetReversedBy (trans);
-    if (new_trans)
-    {
-        const char *rev = _("A reversing entry has already been created for this transaction.");
-        const char *jump = _("Jump to the transaction?");
-        if (gnc_verify_dialog (GTK_WINDOW (window), TRUE, "%s\n\n%s", rev, jump))
-            goto jump_to_trans;
-        else
-            return;
-    }
-
     if (!gnc_dup_time64_dialog (window, _("Reverse Transaction"),
                                 _("New Transaction Information"), &date))
     {
@@ -4108,7 +4104,6 @@ gnc_plugin_page_register_cmd_reverse_transaction (GtkAction* action,
 
     gnc_resume_gui_refresh();
 
- jump_to_trans:
     /* Now jump to new trans */
     gsr = gnc_plugin_page_register_get_gsr (GNC_PLUGIN_PAGE (page));
     split = xaccTransFindSplitByAccount(new_trans, account);



Summary of changes:
 NEWS                                   | 6 ++++--
 libgnucash/app-utils/gnc-gsettings.cpp | 7 +++++--
 2 files changed, 9 insertions(+), 4 deletions(-)



More information about the gnucash-changes mailing list