When fixing related combo error a couple of critical errors were logged
for 'Function is not appropriate for this type of widget' which turned
out to be visibility properties so added them to stop error.
If a GtkDialog builder description has the visible property set,
GtkBuilder will call gtk_window_show on it before we've had a chance
to call gtk_window_set_transient_for, and that raises a warning.
91f4b19 changed the test for gncInvoiceDateExists from date != 0
to date != INT64_MAX, which isn't backwards compatible, so test
for both. But the submitted file had a posted date of -1 so
gncInvoiceIsPosted returned true anyway. That's not consistent with
the logic in dialog-invoice.c, which checked gncInvoicePostedAcc != NULL,
a better test. The result was that the "Post" button lit up but
gncInvoicePost returned immediately, doing nothing, so change
gncInvoiceIsPosted to use gncInvoicePostedAcc instead.
Be smarter about what is path and key for each slot.
Instead of assuming a slash is always a path separator (first attempt
on unstable) or never a separator (second attempt),
track the parent path while loading kvp slots from the db
and deduce the slot's name by substracting this parent path.
Old code would nest a small single-row, 2-column html-table within the
entry-list html-table to display discount percentage and '%'. This is
an overkill and causes alignment issues. Display a string instead.
xaccSplitGetSharePrice will typically return a gnc-numeric (or scm
rational) value. This leads to the TR showing a price of, eg. $22 +
12228521/25349850 which is not ideal. This commit will modify the
share price to round the exact rational to an inexact decimal
according to the account share price currency SCU. If the SCU is less
than 10000, increase the precision by 2 significant digits.
When accounts are deleted that have an open register window a component
not found error is triggered. After the account is destroyed, a call to
'gnc_resume_gui_refresh' calls 'gnc_gui_refresh_internal' and this then
calls 'find_component_ids_by_class' which is used in order resulting in
'register-single' being unregistered before 'GncPluginPageRegister' and
hence 'ld' being freed but the register not knowing this. Reversing the
list fixes this.
When an account is deleted which has sub accounts a dialog is displayed
that had parts destroyed so they are not shown depending on certain
criteria and as a result an error occurred as it tried to get the
sensitivity of a destroyed widget. Change this so all parts of the
dialog are present but made in-sensitive when not applicable so the
dialog layout is the same on all occurrences.
Replacing libgncmod-python, libgncmod-core-utils-python, and
libgncmod-app-utils-python with _sw_core_utils and _sw_app_utils.
The latter two are the modules that init.py wants to load and with
Python3 Swig appears to no longer make them available via libgncmod.
Note that there may still be some problems with actually using the
console, but it at least loads at startup without complaint.
Although the PR was titled "Some [fixes] for missing transient parent
warnings", it actually has a bugfix and an assorted collection of
GUI cleanups that happen to include a couple of transient-parent fixes.
This switches swig to use python 3 specific features when generating the
bindings, switches the build over to python 3 and makes the neccesary
python 2 to 3 conversions in the bindings and tests.