[GNC-dev] gsettings not working bug 797222 Resetting the "change reconciled split" warning doesn't take effect until GnuCash is restarted

Chris Good goodchris96 at gmail.com
Tue May 19 21:44:03 EDT 2020

Hi gurus,

1. src/gnucash/libgnucash/app-utils/gnc-gsettings.c
gnc_gsettings_load_backend() contains:
	    /* The gsettings backend only works in an installed environment.
	     * When called from the source environment (for testing
	     * simply return.
	    if (g_strcmp0 (g_getenv ("GNC_UNINSTALLED"), "1") == 0)

I don't think that is true anymore as there is no GNC_UNINSTALLED in the
environment file and the schemas seem to be compiled to

This code was added in
	gjanssens committed on Dec 3, 2013
	The preferences backend can't work from the source environment
	it's schemas won't be compiled. This situation is only relevant for
	which is done from the source (or build) tree.
	Note that a few preferences are needed by the xml backend. If no
	backend is loaded, some sane defaults will be used instead. Again
this should
	only matter for testing, in which case the real preferences are not

Should the above code be removed?

2. I've debugged (Linux) and found there doesn't seem to be any bug in the
GnuCash code and that there is some sort of disconnect between
writing a gsettings (dconf) setting and reading it. I've put in debug
statements right after writing a setting, which reads it again, and it gets
an old value.

I found there is a g_settings_sync() that is supposed to wait until all
writes (which need a D-Bus session bus) have occurred.
Putting that in has not helped. I found on the internet several pages saying
g_settings_sync() is not needed if there is a gtk main loop and as I have
seen that during debugging, I guess it is not needed...

I have compiled glib with optimization off so I can debug (the problem still
exists) but I really have no idea of what it is supposed to do. I can see
g_settings_get_int() reading something like a hash table and getting the
wrong value. It doesn't seem to executing anything I can identify as

Any suggestions please?

Chris Good

More information about the gnucash-devel mailing list