Set feature flag if book-currency option selected and initiate registered
callbacks when currency accounting book option changes to book-currency so that registers/reports can update themselves.
The changes made are:
app-utils/gnc-ui-util.c & h - define gnc_book_option_book_currency_selected_cb
core-utils/gnc-features.c & h - define GNC_FEATURE_BOOK_CURRENCY
engine/engine-helpers.c & h - define gnc_book_option_book_currency_selected
to call registered callbacks and set feature
gnome-utils/gnc-main-window.c & h - add checking of book-currency option to
gnc_book_options_dialog_apply_cb function; refactor common code with
assistant-hiearchy.c by creating gnc_book_options_dialog_apply_helper
gnome/assistant-hierarchy.c - use gnc_book_options_dialog_apply_helper
This got dropped when qof_instance_get replaced direct KVP access and it makes
it impossible to edit a scheduled transaction since splits can't have both a credit
and debit value.
When gnc-numeric.c was converted to C++, gnc_numeric_equal was changed so
that an invalid number is equal to anything. The SX since last run dialog
initializes unset variables to invalid numbers which means that whatever you
type is equal to what is already there and is ignored.
Instead have gnc:company-info and gnc:fancy-date-info use the book
parameter again (which got lost in the kvp refactoring).
This preserves some code for potentially being able to have two
books open at once.
Make sure the internal split function get_corr_account_split
behaves consistently on multi-split transactions. The transaction
report depends on this.
Add test case to catch potential regressions
Simplify filter test function in transaction report.
The backends were using qof_backend_get_error() to test for sync errors.
This function clears the error, so the tests resulted in the error being
cleared before the session could see it and so it thought that the sync
had succeeded.
Replace those uses of qof_backend_get_error() with a new function
qof_backend_check_error() that doesn't clear the error.
Rewrite get_quote_time() to use the modern OO interface to Date::Manip.
This requires perl-5.12 or later, so require that. schemify_date() isn't
used anywhere, so remove that.
Windows XP doesn't provide a default key, just the TZI returned by
GetDefaultTimeZone(), so use that instead of throwing if there's no
default key in the registry. If GetDefaultTimeZone() files, throw: We
can't safely read the database without a timezone.