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