in qof and gnc files adding annotation comments to help splint analyze ownership
of memory and objects.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@17983 57a11ea4-9604-0410-9ed3-97b8803252fd
Those two functions were merged into one, qof_instance_get_guid(), in
r15773, but they returned different values if the parameter was NULL.
Some code depends on the return value being guid_null(), or maybe even
NULL, so revert the changes entity->instance, where the entity is not
guaranteed to be non-NULL.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@16212 57a11ea4-9604-0410-9ed3-97b8803252fd
- remove the "private" SX header.
- add GList<Recurrence*> to the SX model
- Parse a GList<Recurrence> from FreqSpec xml.
- GncFrequency changes
- modify GncFrequency to load/save Recurrences.
- simplify GncFrequency: remove "daily [m-f]", "bi-weekly" and super-monthly pages.
- add (Recurrence-only) support for "last weekday of month" to {,semi-}monthly
- update SX cleanup todo-list.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@15601 57a11ea4-9604-0410-9ed3-97b8803252fd
other related edit changes. Bug #339943 should be fixed as of this
change.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13928 57a11ea4-9604-0410-9ed3-97b8803252fd
The net total of this work is (i beleive) fewer lines of code.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@9530 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/engine/gnc-book.h, src/engine/*.h: Added a lot of
documentation comments, improved doxygen output. At least the most
important header files will now show up in doxygen.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@8081 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-scheduledxaction.c (gnc_sxed_update_cal): Fix
the Recurrence-Frequency example-calendar date calculation to show
upcoming instances correctly.
* src/engine/SchedXaction.c (xaccSchedXactionGetNextInstance):
Remove the validity check on the temporal-state-data's notion of
the last-occurance date; as invalidity means something important,
we must let it through; fixes Bug#103955.
* src/backend/file/gnc-schedxaction-xml-v2.c
(gnc_schedXaction_dom_tree_create): Make output of the
deferred-instance last-date node optional on it's validity.
* src/gnome/dialog-sxsincelast.c (cancel_check): Change assertion
into conditional-activity, allowing rational use-case and fixing
Bug #103182.
* src/gnome/dialog-scheduledxaction.c (editor_ok_button_clicked):
Correctly update available SX lists instead of the one we were
spawned from, which may have disappeared in the mean time. Fixes
Bug#103629 [and allows the future fix of not needing to open the
SX List Dialog when clicking "Advanced..." in the sx-from-transaction
SX Editor-open vector].
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7885 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/engine/SchedXaction.h: Doxygen-related changes.
* src/register/ledger-core/split-register-layout.c
(gnc_split_register_layout_add_cells): Change F(DEBT|CRED)_CELL
types to FORMULA_CELL from QUICKFILL_CELL.
* src/register/register-gnome/gncmod-register-gnome.c
(libgncmod_register_gnome_LTX_gnc_module_init): Add
formulacell-gnome override to gnc_register setup.
* src/register/register-core/formulacell.c:
* src/register/register-gnome/formulacell-gnome.c: Filled in a
long-thought of idea for a formula cell: can contain text unlike a
pricecell, but doesn't really want to do auto-complete like a
quickfill cell [what we had been using]. This allows us to
provide the gnome formula cell which can remap the keypad '.'
character based on locale; addresses Bug#97065, which is the
cause of Bugs#97063 and #97062.
* src/gnome/glade/sched-xact.glade: Remove "[Last Day]" option;
add "/last day" to 29/30/31 options in gnc-frequnecy month-based
selections.
* src/gnome/dialog-scheduledxaction.c (new_button_clicked): Change
default new SX frequency to monthly; fixes Bug#100615.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7662 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/register/ledger-core/gnc-ledger-display.c
(gnc_ledger_display_template_gl): Extended to allow a template GL
without a specific transaction being displayed at the time of
creation.
* src/engine/SchedXaction.h: Removed some deprecated function defs.
* src/gnome/gnc-split-reg.c (gsr_default_jump_handler): Don't make
assumptions about the window-register.c code that we can't
support, and don't let it be responsible for too much. Fixes
recent serious register crashes.
* src/gnome/dialog-scheduledxaction.c
(scheduledxaction_editor_dialog_destroy):
* src/gnome/dialog-sxsincelast.c (sxsincelast_destroy):
Close the ledger_display on window teardown. Fixes sx-related
register crashes.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7482 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/backend/file/io-gncxml-v2.c
(write_template_transaction_data): Updated for new
backend-structure arguments, to not crash in the call to
xml_add_trn_data. Fixes unfiled bug.
* src/gnome/dialog-sxsincelast.c:
* src/backend/file/gnc-schedxaction-xml-v2.c
(sx_defer_last_handler)
(sx_defer_rem_occur_handler, sx_defer_inst_count_handler)
(sx_defer_inst_handler):
* src/engine/SchedXaction.c (gnc_sx_add_defer_instance)
(_temporal_state_data_cmp, gnc_sx_remove_defer_instance)
(gnc_sx_get_defer_instances):
Added and modified to support postponing to-be-created SXes; fixes
Bug#88981.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7251 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/scm/fin.scm: Made the exposed calcualtion functions output
positive values.
* src/gnome/window-main.c (gnc_main_window_create_menus): Added
accelerators to SX-related menu items.
* src/gnome/druid-loan.c: Primary change: actually create the
Scheduled Transactions which are setup by the user. Miscellaneous
other cleanups, text, layout and consistency changes.
* src/gnome/dialog-sxsincelast.c: Support handling of the
instance-count in forward-looking transaction creation. Simplfied
some of the internal data-representation regarding lists of items
to be created [removed autoCreateTuple, now uses toCreateTuple].
Removed some DEBUGging output. Handles setting up the implicit
'i' variable.
* src/gnome/dialog-sx-from-trans.c (sxftd_compute_sx): Create SXes
with an appropriate initial instance-count value.
* src/gnome/dialog-scheduledxaction.c
(schedXact_editor_populate): Create SXes with an appropriate
initial instance-count value.
* src/engine/SchedXaction.[ch]: Added support for an
instance-count, in order to support an implicit 'i' [of N]
variable to SX formula/function processing.
* src/engine/SX-ttinfo.c (gnc_ttsplitinfo_free): Made the
ttsplitinfo_free'ing a bit safer.
* src/calculation/expression_parser.c: Added support for
parsing/handling quoted strings. Intended to be parameters to
functions. Fixed bug regarding nested handling of strings in the
parser.
* src/backend/file/gnc-schedxaction-xml-v2.c: Added support for
saving/restoring instance-count field of SXes.
* src/app-utils/test/test-exp-parser.c
(run_parser_test): Fixed pass/fail indication check.
(test_parser): Added tests for string params to functions.
* ChangeLog: Added entry I forgot from last time.
* src/app-utils/gnc-exp-parser.c (func_op): Added support for
typed parameters to functions; params are either numerics or
strings. Result of function is now parsed correctly.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7125 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/register/ledger-core/gnc-ledger-display.c: Some template-GL
cleanup [debugging printf's removed]. Removed never-used
LD_TEMPLATE type.
* src/gnome/glade/sched-xact.glade: Removed unused start page.
* src/gnome/dialog-sxsincelast.c: Added support for using the
gnc-regWidget to display created transactions for review. Added
'Cancel' support. Didn't remove enough dead code, but started to.
* src/gnome/dialog-scheduledxaction.c: Added support for using the
gncRegWidget in the SX editor. Formatting changes.
* src/register/ledger-core/gnc-regWidget.{h,c}: Added; a
macro-widget roughly duplicating the src/gnome/window-register.c
look-and-feel-and-behavior.
* src/engine/SchedXaction.c: Added support for saving a "temporal
snapshot" of a scheduled transaction. Rewrote "sequence state"
manipulations in terms of temporal snapshots.
* src/engine/Query.c: Add support for Querying the template
AccountGroup.
* src/doc/TODO-schedxactions: Updates.
* src/engine/Makefile.am: Prepend-to instead of unconditionally
setting GUILE_LOAD_PATH when creating iso-4217-currencies.c, for
those of us that need to set it for whatever reason we need to do
so.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@6795 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome-utils/gnc-frequency.c: saving state and updating the
calendar markings no longer force so much of a
component-manager/UI refresh.
* src/guile/gw-gnc-spec.scm: Changed sx-since-last return type to
gboolean [bool]; added better sx-since-last-run-wrapper param name
[s/foo/bookfile/].
* src/gnome/dialog-scheduledxaction.c (new_button_clicked): Better
initial-FreqSpec setup to prevent error from GNCFrequency.
* src/engine/SchedXaction.c (xaccSchedXactionSetTemplateTrans):
Added support for setting template-transaction currency from the
TTinfo structure.
* src/gnome/dialog-sxsincelast.c: Correct support for "nothing
to do": if this is the case, don't load/create the UI. Required
much re-working due to my bad design. :(
Added component-manager freeze/thaw [equivalents] around engine
interaction to minimize program-wide GUI refresh during
Transaction creation.
(finish_finish): Added support for 'finish' button.
(cancel_check): Initial support for cancel button, checking with
user regarding.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5769 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/Makefile.am: Removed obsolete dialog-nextrun.{c,h}
* src/gnome/window-main.c (gnc_main_window_create_menus): Added
both Scheduled Transaction-related items to "Scheduled
Transactions" sub-menu of "Tools".
(gnc_main_window_about_cb): Added self to GUI About dlg.
* src/gnome/dialog-scheduledxaction.c: Renamed '_'-led functions.
* src/gnome/dialog-sxsincelast.c: Changed from a loose
confederation of multiple dialogs to the strong central authority
of a GnomeDruid-based since-last-run UI. Renamed '_'-led
functions.
* src/gnome/glade/sched-xact.glade: Fixed a non-unique-name
problem between the GnomeNumberEntry "end_nentry" and it's
GtkEntry "end_nentry". Added Druid-based Since-Last-Run dialog.
* src/gnome/dialog-scheduledxaction.c (schedXact_editor_populate),
(editor_ok_button_clicked): Added support for now-uniquely-named
"end_gnome_nentry".
* src/engine/SchedXaction.c
(xaccSchedXactionCreateSequenceState): Added.
(xaccSchedXactionIncrSequenceState): Added.
(xaccSchedXactionDestroySequenceState): Added.
Added support for opaque state data when generating a sequence of
SX instances to support number-of-occurance-terminated SXes.
* src/backend/file/gnc-freqspec-xml-v2.c (dom_tree_to_freqSpec):
Added missing instance of GNCSession propogation.
* src/backend/file/io-gncxml-v2.c
(write_template_transaction_data): Added correct determination for
writing out the template-transaction section [before: only if
transactions existed in accounts; now: if any accounts exist] to
prevent read errors from SXes with valid-and-referenced Accounts,
but no Transactions in them.
* src/gnome-utils/gnc-frequency.c (gnc_frequency_setup): Better
error text when UIFreqType isn't recognized or appropriate.
* src/gnome/dialog-scheduledxaction.c (editor_ok_button_clicked):
Correctly sets SXes to have no occurance data if that's the case.
Better option variable naming, usage.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5710 57a11ea4-9604-0410-9ed3-97b8803252fd
* Added module/plugin system (src/gnc-module/*)
* reshuffled source code from src/engine, src/register, and some
from src/guile, src/scm, src/gnome (see src/README.modules).
engine, backends, register, qif importer are now "modules".
* unfinished new QIF import/export module (the old one's still
there and still works)
* really too many files touched to get into it.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5075 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/glade/sched-xact.glade: Added seperate reminders
dialog from since-last-run dialog. Removed reminders
frame/section from since-last-run dialog. Added alternative SX
Editor UI [not presently used].
* src/gnome/dialog-sxsincelast.c: Changes for
reminders-as-seperate-dialog; selected reminders then update
since-last-run dialog [whether it's open or not]; the dialogs
[mostly] deal with their closing conditions correctly. Support
for ad-hoc variables in template-transaction-split formulas.
* src/engine/gnc-schedxaction-xml-v2.c
(gnc_schedXaction_end_handler): Added support for restoring
in-development pre-template-account-stored-in-SX change.
(tt_act_handler): Added support for restoring in-devel pre-CIT
.gml2/XMLv2 files.
* src/gnc-exp-parser.c (gnc_exp_parser_parse_seperate_vars): Added
for Scheduled-Transaction-related since-last-run/split-formula
parsing.
* src/gnome/dialog-sxsincelast.c: Added support for variable entry
before creation/formulas in template transactions.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5058 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/gnc-schedxaction-xml-v2.c: Support for new
SchedXaction options [create/remind-days-in-advance; auto-create,
notify-on-creation].
* src/gnome/dialog-scheduledxaction.c (putSchedXactionInClist):
Fix for next-occurance processing.
* src/engine/SchedXaction.c (xaccSchedXactionGetNextInstance):
Better handling of start date/last-occur date/current dates when
generating the next occurance date. Gotta remember to clear those
g_dates, lest the come up 'valid' due to stack trash... :(
* src/gnome/gnc-sxlastrun.{h,c}: Added; newer/better
since-last-occur dialog.
* src/gnome/window-main.c: Added Scheduled Transaction stuff to
"Tools" menu.
* src/scm/prefs.scm: Added initial cut at Scheduled Transaction
preferences.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@4905 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/engine/gnc-numeric.c: use C comments.
* src/engine/SchedXaction.[ch]: use C comments.
* src/gnome/gnc-frequency.[ch]: use C comments. fix warnings
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@4759 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/engine/gnc-account-xml-v2.c (dom_tree_to_account): Added.
* src/engine/gnc-transaction-xml-v2.c (dom_tree_to_transaction):
Added.
* src/FileDialog.c: Added support for copying
scheduled-transaction-related GNCBook fields.
src/engine/
* src/engine/FreqSpec.{h,c}: Added.
* src/engine/SchedXaction.{h,c}: Added.
* src/engine/gnc-{freqspec,schedxaction}-xml-v2.c: Added
* src/engine/gnc-book.c: Added the template group [template
transaction belong to the template group] and the Scheduled
Trasnaction list.
* src/gnome/glade/sched_xact.glade: Added.
* src/gnome/dialog-nextrun.{h,c}: Added.
* src/gnome/dialog-scheduledxaction.{h,c}: Added.
* src/gnome/gnc-frequency.{h,c}: Added.
* src/SplitLedger.c, src/MultiLedger.c: Added support for a
Template Ledger.
* src/guile/gnc.gwp: Added wrapping for
dialog-{scheduledxactions,nextrun}-creation functions.
* src/register/splitreg.c: Added formula credit and debit cells,
and flags for template-register support.
* src/register/formulacell.h: Added.
* src/gnome/gnc-dateedit.h: Added explanatory comment from dave_p
in IRC.
* src/gnome/query-user.h: Added prototype of
gnc_verify_dialog_parented(...), so I could use it the SX UI
stuff.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@4725 57a11ea4-9604-0410-9ed3-97b8803252fd