John Ralls
572cb6b1d1
Banish gnc_get_optiondb_from_dispatcher to gnc-report.cpp.
...
Puts it closer to its points of use and removes it with its Scheme
dependency from libgnucash.
2022-03-14 10:32:08 -07:00
John Ralls
d4c3c30b1a
Use GUIDs to represent QofInstances instead of pointers.
...
Converting them to pointers for Scheme to use. Prevents
dangling pointers when the user deletes a QofInstance as long as the
Scheme report code re-fetches its pointers from the options when it's
regenerated.
2022-03-12 17:58:23 -08:00
John Ralls
a7a643f7f2
Store option commodities and namespace and mnemonic instead of pointer.
...
Protects against crashes caused by the user deleting the commodity and
allows the option to work if a deleted commodity is recreated.
2022-01-03 14:47:18 -08:00
John Ralls
65bd860249
Fix relative_date_to_time64 calculations.
...
Where the date requested extends beyond the start or end of the year.
2022-01-01 16:05:06 -08:00
John Ralls
6841e5b5c8
Replace GncOptionValue<const QofInstance*> with GncOptionQofInstanceValue.
...
That stores its values as a pair of <QofIdType, gncGUID> so that it
won't have dangling ptrs if the instance gets deleted.
2021-12-30 12:21:56 -08:00
John Ralls
11225d9741
c++options: Remove gnc:options-data
2021-12-15 14:54:41 -08:00
John Ralls
16dc15964c
c++options: Remove the callback registration functions.
2021-12-15 14:32:39 -08:00
John Ralls
759376eb13
c++options: Fix multicolumn report
2021-12-15 14:13:47 -08:00
John Ralls
18edc17541
c++options remove stray debugging comment.
2021-12-14 14:20:20 -08:00
John Ralls
b5d0c42505
c++options: Put copyright and FSF header comment on gnc-optiondb.i.
2021-12-14 12:06:39 -08:00
John Ralls
a700701cd3
c++options: Remove three unused test functions.
...
Scheme serialization is now tested in test-option-gnc-scheme-output.scm.
2021-12-14 11:52:15 -08:00
John Ralls
eb0bd4f998
c++options: Remove unneeded C++20 header and resolve ambiguous call.
2021-12-14 11:51:37 -08:00
John Ralls
a3f50586df
c++options: More thorough testing of scheme serialization.
2021-12-14 11:03:37 -08:00
John Ralls
6cd88c230c
c++options: Create bool or string internal options when possible.
...
There's no need to save internal options as SCM when we support the
underlying type in C++.
2021-12-14 11:03:01 -08:00
John Ralls
e9b850cca5
c++options: Correct Scheme serialization of type bool.
2021-12-14 10:58:48 -08:00
John Ralls
66f9fc81c7
c++options: Implement serialization for GncOwner.
2021-12-14 10:57:41 -08:00
John Ralls
0ce841d4ce
c++options Fix Scheme bindings for QofQuery options.
2021-12-14 10:55:59 -08:00
John Ralls
216b483e26
c++options SCM bindings Rewrite save_scm_value to branch on type.
...
Instead of GncOptionUIType, mostly. We still need to do that to tell apart
commodities and currencies from other QofInstances.
Allows compile-time dispatch for most types.
2021-12-13 11:05:15 -08:00
John Ralls
947c061989
C++options: Create QofQueryValue trait.
2021-12-11 15:12:22 -08:00
John Ralls
f26014a04e
c++options: QofInstanceValue: Protect against crashes when m_value is nullptr.
2021-12-11 15:11:26 -08:00
John Ralls
269249378f
c++options fix setting account-selection widget from option.
2021-12-02 16:05:14 -08:00
John Ralls
6f93a68bad
c++options: Serialize and deserialize to strings instead of streams.
...
And use serialize to create values for gnc:generate-restore-forms and both
of them for the meat of the stream functions.
This fixes in particular QofInstance serialization where passing the
option value directly to scheme format resulted in a notation about
a swig pointer instead of the desired GUID string or commodity namespace
and mnemonic strings.
2021-12-02 15:04:49 -08:00
John Ralls
dd7feb9988
options.scm: Remove second license comment.
2021-11-19 11:45:54 -08:00
John Ralls
d1fe359e47
gnc_numeric_to_decimal: Change can't round warning to a debug.
...
Routinely used as a check so a warning isn't appropriate.
2021-11-19 11:44:57 -08:00
John Ralls
74fd716afb
Clarify gnc_relative_date_to_time64 helper functions.
2021-11-19 11:43:04 -08:00
John Ralls
f6c9e63e3d
Fix PR comments so far.
...
Except for gnc-option-date's normalize_tm and set_day_and_time.
2021-11-14 15:28:22 -08:00
John Ralls
cf5da9fffd
Resolve merge conflicts.
2021-11-12 19:56:29 -08:00
John Ralls
96b09ded9f
Doxygen documentation for new options classes.
2021-11-12 15:27:36 -08:00
John Ralls
00a982d97d
Use Scheme to generate and parse saved option files.
...
The saved option files being Scheme executables.
2021-11-12 15:27:36 -08:00
Christopher Lam
984d816a58
Merge branch 'maint'
2021-11-06 21:41:17 +08:00
Christopher Lam
79d8ef0299
Revert b5f5129f7
using gnc_list_length_cmp
2021-11-02 23:34:26 +08:00
Christopher Lam
3dfdf60608
[gnc-glib-utils] Define and export gnc_list_length_cmp
2021-11-02 23:34:25 +08:00
Christopher Lam
b5f5129f7d
Shortcut g_list_length comparison against small numbers
...
It's more efficient to test node && node->next etc when testing GList
length against small numbers
2021-10-30 22:29:17 +08:00
Christopher Lam
f813f7cd14
[gnc-autoclear] Move autoclear algorithm into gnome-utils
2021-10-28 21:41:46 +08:00
Geert Janssens
bdb06479e8
GSettings - fix GObject warning when old prefs-version is unset
...
This will happen when current master (future 5.0) has been run
at least once.
2021-10-27 10:35:11 +02:00
John Ralls
5a8cbf4193
Bug 798325 - New Currency for Venezuela (VED)
...
Add latest Venezuelan revaluation of the Bolivar Soberano, following
the ISO notation replacing VES (which the Venezualan central bank is
keeping) with VED and the exchange code (ditto) with 926.
2021-10-23 12:27:11 -07:00
Christopher Lam
f40dbb8c28
Avoid unnecessary g_list_length in equality functions
2021-10-21 17:56:15 +08:00
Christopher Lam
f0970c8eb4
[gnc-features] don't repeatedly g_strconcat gchars*
2021-10-20 19:29:32 +08:00
Christopher Lam
31a0300abe
[Recurrence.c] avoid repeated calls to g_list_length
2021-10-20 19:29:26 +08:00
Christopher Lam
b480600dc8
[gnc-pricedb] gnc_price_list_equal: avoid 4 g_list_length calls
2021-10-18 22:41:44 +08:00
Christopher Lam
23e528f51a
[utest-gnc-pricedb] add tests for gnc_price_list_equal
...
Also need to change PWARN which causes test failure, to PINFO
2021-10-18 22:25:21 +08:00
Geert Janssens
09b3ce2382
Revert "Add structure to map migrated preferences to old ones"
...
This reverts commit c6103a5c17
.
2021-10-16 19:02:17 +02:00
Geert Janssens
806d0b3157
Revert "GSettings - make most of the api private"
...
This reverts commit 26b2d7ca78
.
2021-10-16 19:02:10 +02:00
Geert Janssens
1d4673ed2a
Revert "GSettings - rework internal helper functions to use more C++"
...
This reverts commit 24fa289952
.
2021-10-16 19:02:04 +02:00
Geert Janssens
24fa289952
GSettings - rework internal helper functions to use more C++
2021-10-16 10:49:05 +02:00
Geert Janssens
26b2d7ca78
GSettings - make most of the api private
...
All preference calls should happen via the gnc_prefs_... apis.
The gnc_gsettings_... apis are an internal implementation of this.
2021-10-16 10:49:04 +02:00
Geert Janssens
c6103a5c17
Add structure to map migrated preferences to old ones
...
This can be used to keep both in sync in the period between
initial migration and eventual obsolence.
Note only non-obsoleted, migrated preferences are tracked.
We don't want to resync preferences that have been
obsoleted (reset). That would nullify the whole idea
of making them obsolete for future removal.
This commit only adds the mapping, synching will follow in a future
commit.
2021-10-16 10:49:04 +02:00
John Ralls
2f4438ab28
Bug 798335 - No longer possible to change trading account
...
Strip trading splits only if "Use Trading Accounts" is enabled
for the book so that users who want to manage trading accounts by
hand may do so.
2021-10-14 17:22:32 -07:00
Christopher Lam
9eaa3eb23a
Merge branch 'maint'
2021-10-14 09:34:28 +08:00
John Ralls
7c9c2eba3c
Bug 798320 - Error message indicating a crash of GNUcash when closing...
...
application - MacOS 10.15.7 (19H1419)
Destruction order problem: The SX template accounts can't be destroyed
until after the template splts and transactions are.
Register them before the transactions and splits, as destruction occurs
in reverse order of registration.
2021-10-08 14:17:28 -07:00