Commit Graph

24700 Commits

Author SHA1 Message Date
John Ralls
f0ecc0e2eb std::string(char*) crashes if it's given a nullptr. 2021-08-05 15:52:13 -07:00
John Ralls
b6622a386b Pick up option aliases recently added in maint. 2021-08-05 15:52:13 -07:00
John Ralls
26946d792c Configure the book options before trying to load them. 2021-08-05 15:52:13 -07:00
John Ralls
914f5f359b Don't unref option UI elements.
They're wrapped in unique_ptr and will take care of themselves.
2021-08-05 15:52:13 -07:00
John Ralls
71955cc326 Correctly terminate gtk_list_store_set(). 2021-08-05 15:52:13 -07:00
John Ralls
a97b3e0c6d Don't let C code destroy the ODB, it's owned by Guile. 2021-08-05 15:52:13 -07:00
John Ralls
58d090ff32 Protect strncmp from empty string. It crashes if given one. 2021-08-05 15:52:13 -07:00
John Ralls
a2e1a3e1b8 Extract the GncOptionDB* from the Scheme dispatch function closure.
Scheme code keeps the GncOptionDB in a closure. Extract it for C/C++
use. Ownership remains with the closure, don't free the GncOptionDB*.
2021-08-05 15:46:56 -07:00
John Ralls
99eaa81a28 Fix parse of commodity namespace from scheme istream.
Just ignore 2 instead of ignoring 1 twice. No ifdef required.
2021-08-04 10:04:47 -07:00
John Ralls
0bd9033bb3 Move includes of glib and gtk out or extern C in new cpp files. 2021-08-01 11:11:20 -07:00
John Ralls
0f02236ebe Fix gcc warnings. 2021-08-01 10:27:50 -07:00
John Ralls
18997db720 Separate GncOptionAccountValue into GncOptionAccountListValue and GncOptionAccountSelValue.
They have different get_value() return types so can't cohabit comfortably.
2021-07-31 18:22:46 -07:00
John Ralls
dd8e8b4efa Evaluate the getter for making invoice options. 2021-07-31 18:22:45 -07:00
John Ralls
05ac056449 Make separate option type for GncOwner.
GncOwner is not a QofInstance subclass.
2021-07-31 18:22:45 -07:00
John Ralls
9d150b1ae7 Always set budget option to default budget. 2021-07-31 18:18:05 -07:00
John Ralls
f5d8d508ee Create the GncOptionVariant's GncOptionValue in place.
Saves a temporary, prevents premature unprotecting of Scheme objects.
2021-07-31 18:18:05 -07:00
John Ralls
c034a26ae7 Protect stored scheme option values from the garbage collector. 2021-07-31 18:18:05 -07:00
John Ralls
67dab6b320 Remove business-options.scm and business-prefs.scm.
Their functions have been reimplemented elsewhere.
2021-07-31 18:18:04 -07:00
John Ralls
a1af86ed40 Implement gnc:generate-restore-forms, gnc-optiondb-save-to-scheme. 2021-07-31 17:54:30 -07:00
John Ralls
c34986dad4 Change gnc:new-options to return a fake dispatch function.
To placate test-report.scm
2021-07-31 17:54:30 -07:00
John Ralls
3f89d063eb Evaluate default function in gnc:make-account-sel-limited-option. 2021-07-31 17:54:30 -07:00
John Ralls
6eb5dfed51 make-internal fail if there is a ui_item, not if there isn't. 2021-07-31 17:54:30 -07:00
John Ralls
29a2365fdf Avoid infinite recursion when the alias changes only the section name. 2021-07-31 17:54:30 -07:00
John Ralls
7885353fe3 Bring option aliases up to date. 2021-07-31 17:54:30 -07:00
John Ralls
bbe74aa086 Remove tooltips from multichoice option values.
This is the c++options equivalent to 02a6a0ae and e1525721.
2021-07-31 17:54:30 -07:00
John Ralls
5a2ba091a3 Fix compilation error from latest rebase. 2021-07-31 17:54:30 -07:00
John Ralls
7c6ecafd61 Rewrite options.scm to wrap options.hpp functions where needed. 2021-07-31 17:54:30 -07:00
John Ralls
ce5fe577bf Fix failure to pass accounts list to gnc:make-account-list-option
The Scheme way of generating options is somehow able to obtain the
account-list even when running the generator before creating the account
tree. The C++ options object doesn't have that ability so one must make
sure to run the account creation first in a let* statement.
2021-07-31 17:54:30 -07:00
John Ralls
52ef53a405 Implement multichoice selection options. 2021-07-31 17:54:30 -07:00
John Ralls
7239eb809a Test more natural way of designating relative dates. 2021-07-31 17:54:30 -07:00
John Ralls
23461f1d6c The value of a list-option is a list. Duh. 2021-07-31 17:54:30 -07:00
John Ralls
12f8df1eab Fix test failure: Clear the stream before reusing it. 2021-07-31 17:54:30 -07:00
John Ralls
be322a0d7c Group GncOptionMultChoiceValue::set_multiple with set_default_multiple.
Better readability.
2021-07-31 17:54:30 -07:00
John Ralls
27670a6e98 Make the 'pixel and 'percent SCM symbols C++ constants.
Improves efficiency and conciseness.
2021-07-31 17:54:30 -07:00
John Ralls
a94f69d6e0 Pretty up some SFINAE formatting for easier reading. 2021-07-31 17:54:30 -07:00
John Ralls
0f8446a1bb Remove some no longer needed diagnostics. 2021-07-31 17:54:30 -07:00
John Ralls
f66a918be4 Implement GncOptionValue<const QofQuery*>
QofQuery isn't a QofInstance and doesn't have a GUID.
2021-07-31 17:54:30 -07:00
John Ralls
0a8f66ee90 Fold GncOptionGncOwnerValue into GncOptionValue<const QofQuery*>.
Reflecting the way Scheme options handles it.
2021-07-31 17:54:30 -07:00
John Ralls
418eb06620 Remove GncOptionDateValue::set_default_value(size_t)
Because it's ambiguous with set_default_value(time64).
2021-07-31 17:54:30 -07:00
John Ralls
7d0cdf7c94 Handle #f input to option typemap(in)s. 2021-07-31 17:54:30 -07:00
John Ralls
86a2f1551f Implement gnc-make-date-option. 2021-07-31 17:54:30 -07:00
John Ralls
693e966bf9 Extract Scheme date handling functions and apply them.
Including in RelativeDatePeriodVec typemap, making it work correctly.
2021-07-31 17:54:30 -07:00
John Ralls
63502900f3 Permit GncOptionAccountValue to have a nil default value. 2021-07-31 17:54:30 -07:00
John Ralls
42185c0ec8 typemap for std::size_t
Unaccountably missing from swig_guile.
2021-07-31 17:54:30 -07:00
John Ralls
5c74337810 Add function GncOption::set_default_value.
Allows reports to derive from other reports and then change the option
default values to suit. If they change only the values and not the defaults
then it's possible to create saved report configs that don't include the
options whose values are changed to the base report's default value. See
https://bugs.gnucash.org/show_bug.cgi?id=642292.
2021-07-31 17:54:30 -07:00
John Ralls
c04f4a00e0 Replace gnc_make_option<SCM> with gnc_make_scm_option
To finesse SWIG_Guile's typedef unsigned long SCM, which causes SFINAE
issues when trying to resolve the template.
2021-07-31 17:54:30 -07:00
John Ralls
e7309f077b Replace gnc_make_option<gnc_commodity*> with gnc_make_commodity_option.
To handle cases where we try to create commodity options with a symbol as
the default instead of a gnc_commodity*.
2021-07-31 17:54:29 -07:00
John Ralls
3aa86ca992 QofInstance* needs a typemap to match the from/to SCM logic. 2021-07-31 17:54:29 -07:00
John Ralls
4a305998e4 GncOptionDateValue set_value_from_scm: 'else' required. 2021-07-31 17:54:29 -07:00
John Ralls
d9984f75ab Update test-gnc-optiondb.scm for not renaming the RelativeDatePeriod enums. 2021-07-31 17:54:29 -07:00