* src/register/register-core/formulacell.c
(gnc_formula_cell_modify_verify): Add ':' to the token list of
allowable characters in the formula cell. Fixes Bug#106260.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@9865 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/druid-loan.c (gnc_ui_sx_loan_druid_create): Use the
account-list filtering capability of the GncAccountSel to only
show/allow-creation-of valid account-types in the
loan-druid. Fixes Bug#124595.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@9863 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-scheduledxaction.c (gnc_sxed_check_consistent):
Bug#133709 fix: when we have a problem parsing a credit/debit
cell, indicate to the user what occurred.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@9860 57a11ea4-9604-0410-9ed3-97b8803252fd
* HACKING: Added instructions about running under valgrind.
* lib/gnucash_valgrind.supp: Added a large set of valgrind
suppressions for both guile and gnucash.
* src/register/ledger-core/gnc-ledger-display.c
(gnc_ledger_display_template_gl): Change the reg_type to
SEARCH_LEDGER so all the 'action' types appear. Bug#108833.
* src/gnome/glade/sched-xact.glade: Remove unused 'ledger_status'
widget. Bug#102269.
* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_draw_to_buffer):
At least be consistent about the background coloring of the month
labels, even if we're still not using GTK themeage correctly.
* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_destroy): Destroy
the transient window when the widget is destroyed. Bug#103910.
* src/gnome/dialog-scheduledxaction.c
(gnc_ui_scheduled_xaction_editor_dialog_create): Make the advance
and remind spin-buttons editable [Bug#94963].
* src/gnome/glade/sched-xact.glade: Change the upper bound on the
advance and remind spins to 365 [days], with a page-size of 30
[days].
* src/gnome/dialog-sx-from-trans.c (gnc_sx_create_from_trans):
Disallow the Scheduling of being-editing transactions in the
Register, preventing a class of unbalacned SX template
transactions from being entered and propogated through the
system. See Bug#130330.
* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr): Fix nasty
memory-corruption issue; insufficent bounds checking on array
index. Bug#125600.
* src/gnome/dialog-sxsincelast.c (create_each_transaction_helper):
Better handling of various error cases in
transaction-creation. Bug#120311; Bug#130330.
2004-03-01 Joshua Sled <jsled@asynchronous.org>
* src/gnome/dialog-scheduledxaction.c (gnc_sxed_check_consistent):
Fix for part of Bug#121740 -- only allow auto-create SXes which
have splits to be created.
2004-02-07 Joshua Sled <jsled@asynchronous.org>
* src/gnome/dialog-scheduledxaction.c (editor_ok_button_clicked):
* src/gnome-utils/gnc-frequency.c (gnc_frequency_save_state):
* src/backend/file/gnc-freqspec-xml-v2.c (fs_none_handler):
* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr):
Adding "NONE" as an allowable FreqSpec [Bug#103968].
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@9858 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/register/register-gnome/formulacell-gnome.c: Changed
FormulaCell from MOD_SX to MOD_REGISTER.
* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr):
s/g_string_sprintf/snprintf/, as the former can't handle the
re-ordered format parameters which the po-files use; fixes
Bug#101650.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7731 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-scheduledxaction.c (gnc_sxed_check_consistent):
Fixed balance checks to be per-transaction; fixes Bug#97062, as
well as fixing another unfiled bug that would be possible with the
old code.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7693 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/gnome-utils/gnc-account-sel.c
(gnc_account_sel_set_new_account_ability): Change the
gnc-account-sel's "New..." account button to expand but not fill
it's allocation.
* src/gnome/druid-loan.c (ld_pay_prep, ld_pay_save_current): Add
the ability to independently specify the source/from account of a
payment; fixes Bug#99467.
(ld_pay_prep, ld_pay_save_current): Add some insensitive widgets
to show the escrow account; fixes Bug#99476.
* src/gnome/druid-loan.c (ld_calc_upd_rem_payments): Get the
currently-typed value for doing the recalculation, not what the
gtk_spin_button reports.
(gnc_ui_sx_loan_druid_create): Recalc the remaining months when
the period-size OptionMenu changes.
(ld_pay_prep): Handle better the act of setting up the payment
page for both the Spec-FromAcct and Through-Escrow options.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7586 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/app-utils/gnc-helpers.c (g_date_equals, g_date_hash): Added
to allow the use of GDates as GHashTable keys.
* src/gnome/druid-loan.c (ld_rep_next): Fix bug in 'payment' page
transitions.
(ld_rev_prep, ld_rev_recalc_schedule, ld_rev_update_clist):
Support for a loan amortization schedule review page; fixes
Bug#98966.
(ld_destroy): General post-run allocation cleanup.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7582 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/druid-loan.c (ld_rev_prep): Initial support for a
payment schedule review page, addressing Bug#98966.
* src/gnome/dialog-scheduledxaction.c (putSchedXactionInDialog):
Don't double-free dates; fixes Bug#99452.
* src/gnome/gnc-split-reg.c (gnc_split_reg_jump_to_split)
(gnc_split_reg_jump_to_split_amount, gnc_split_reg_record)
(gsr_emit_include_date_signal):
* src/gnome/window-register.c (gnc_register_include_date_adapter):
Add back in support for including a date in the range
limited/viewed by the window-register.
* src/gnome/gnc-split-reg.c (gnc_split_reg_get_read_only)
* src/gnome/window-register.c (regWindowLedger): Change manner of
setting window-title in read-only-register case so the
gnc-split-reg isn't changing the window-titles of windows it has
no authority over. Fixed Bug#99396.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7552 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-sxsincelast.c:
* src/gnome/dialog-scheduledxaction.c:
Use printGDate() when we need to print dates; fixes Bug#96477.
* src/engine/date.[ch] (printGDate): Convenience wrapper around
printDate.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7497 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/druid-loan.c (ld_calc_current_instance_num): Do some
work to figure out the correct current-instance-number for
non-monthly Loan-Repayment SXes.
(ld_create_sxes): Make the created SXes time out after the length
of the loan, rather than trying to get the number-of-periods
totally correct. This obsoletes Bug#97808.
* src/gnome/dialog-sxsincelast.c (sxsincelast_tc_row_sel): Don't
assertion-failure if the user select a non-leaf row.
* src/gnome/dialog-scheduledxaction.c (sxed_confirmed_cancel):
Added; used by cancel button handler and [newly added] GnomeDialog
"close" handler; fixes Bug#84683.
* src/gnome/druid-loan.c: I18n of some strings previously
unaccounted for.
(ld_opt_consistency): Don't enable the "Through Escrow" checkbox
if there is no escrow account defined.
(ld_calc_upd_rem_payments): Added; calculate the number of
remaining payments based on the start date, loan length and
current date; fixes Bug#91815.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7496 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/gnc-split-reg.c (gsr_setup_status_widgets): Only setup
the status check if we've created it to prevent some
warning/critical noise.
(gnc_split_reg_class_init): Setup default signal handlers to
GTK_RUN_LAST so that they can be stopped by callers.
(gnc_split_reg_use_extended_popup): Added; replaces
dialog-schedxaction.c version of same in a cleaner way.
(gsr_default_schedule_handler): If the transaction which is
requested to be "Schedule..."d was created from an SX, then the
editor for the SX which created the txn is opened rather than from
SX-From-Trans dialog.
(gnc_split_reg_jump_to_blank, gnc_split_reg_jump_to_split_amount)
(gnc_split_reg_jump_to_split): Add ledger refreshes to get correct
behavior.
* src/gnome/dialog-sxsincelast.c (sxsld_jump_to_real_txn): Added;
jump to the correct [read: real] txn on a jump signal from the
ledger.
* src/gnome/gnc-split-reg.c (gsr_default_jump_handler): Use new
regWindowSimple signature for creating new windows on a jump.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7487 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/window-register.c (gnc_register_delete_cb): Change the
order of window deletion to not cause a crash.
* src/gnome/window-register.c (regWindowSimple),
(regWindowAccGroup): Only return the GNCSplitReg, not the whole
regData. Fixes a bunch of existing and potential crashes.
* src/gnome/window-main.c (gnc_main_window_gl_cb):
* src/gnome/window-acct-tree.c
(gnc_acct_tree_window_toolbar_open_cb)
(gnc_acct_tree_window_menu_open_subs_cb)
(gnc_acct_tree_window_menu_open_cb)
(gnc_acct_tree_window_activate_cb):
* src/gnome/top-level.c (gnc_html_register_url_cb):
Modify to not necessarily expect a RegWindow for creation of a
ledger view. Fixes a bunch of existing and potential crashes.
* src/gnome/gnc-split-reg.c (gnc_split_reg_delete_cb): Removed;
dead.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7484 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/gnome/dialog-sxsincelast.c
(sxsincelast_tc_row_unsel, sxsincelast_tc_row_sel): Now [again]
uses the read-only register to show the relevant template
transaction, so the user has context about any variables they're
being asked to fill in values for.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7468 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/window-register.c (regWindowLedger): If we
gtk_widget_show_all the correct widget [the window], then it's
available for setting its size and changing the style and whatnot.
* src/gnome/orig-window-register.c (regWindowLedger): Hack for
Bug#97640; re-init the style after we've shown the widgets to
affect a "style change", which lets the GUI nature of the cells
[combos, autocomplete] init and function.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7465 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-sxsincelast.c: Use GNCSplitReg over
GNCRegWidget.
* src/gnome/dialog-scheduledxaction.c
(schedXact_editor_create_ledger): Use GNCSplitReg over
GNCRegWidget.
* src/gnome/glade/register.glade: Moved a bunch of the
previously-shared widget definitions into seperate places to be
accessed by window-register.c and gnc-split-reg.c.
* src/gnome/window-register.c: Massive code-sucking into
gnc-split-reg.c; this file now only handles the details of being
the register window: dealing with dates and the extended menus and
whatnot.
* src/gnome/gnc-split-reg.c: Added; a better implementation of
gnc-regWidget. All the "common" register-editing code has been
moved here from window-register.c.
* src/register/ledger-core/gnc-regwidget.c: Removed; replaced with
src/gnome/gnc-split-reg.c.
* src/register/register-gnome/gnucash-date-picker.c
(gnc_date_picker_new): Call gtk_widget_show_all rather than
gtk_widget_realize in order to setup the calendar to a state
sufficient for subsequent calls.
* HACKING: Added description of how to start GnuCash in GDB.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7437 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-sxsincelast.c (sxsincelast_tc_row_sel): Place
the template transaction associated with the SX in the window,
fixing Bug#93900.
* src/gnome/dialog-sxsincelast.c (sxsincelast_populate): Process
the auto-create transactions if there are only auto-create,
no-notify SXes as a result of the since-last-run-dialog
invocation; fixes bug #96944.
* src/gnome/dialog-sxsincelast.c (sxsincelast_populate): Changed
return-value from sxsincelast_populate to reflect all the possible
conditions, allowing...
* src/gnome/window-main.c (gnc_main_window_sched_xaction_slr_cb):
Changed since-last-run-dialog-create return-value handling; fixes
Bug#90060.
* src/gnome/dialog-sxsincelast.c (add_to_create_list_to_gui):
Setup of to-create page more correct; the first item which needs
interaction is selected, or the widgets are set to inactive.
Fixes Bug#96669 and Bug#96665.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7394 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-scheduledxaction.c (gnc_sxed_update_cal): Check
validatity of date before subsequent processing; fixes Bug#96467.
* src/gnome-utils/gnc-dense-cal.c
(gnc_dense_cal_mark)
(gnc_dense_cal_mark_remove): Queue a re-draw when marks are added
or removed; fixes Bug#96468.
* src/gnome-utils/gnc-frequency.c (year_range_sels_changed): Emit
"changed" signal when the year-range selections change; fixes
Bug#96470.
* src/gnome/dialog-scheduledxaction.c (gnc_sxed_check_consistent):
Free the name str after we've used it [conrad-found, unfiled bug].
* src/gnome-utils/gnc-dense-cal.c (populate_hover_window): Now
more tolerant of mark sets without names.
* src/gnome/druid-loan.c:
* src/gnome/dialog-scheduledxaction.c: Cleaned up compilation
warnings so -Werror can go back on soon.
* src/gnome/window-main.c (gnc_main_window_create_menus): Reworded
MenuItem for loan-repayment druid as per Chris' suggestion.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7370 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/app-utils/gnc-exp-parser.c (gnc_exp_parser_parse): This
function now fails correctly if there are un-bound variables in
the expression. This causes expressions like 'AUD 1.23' to fail.
This is related to, but not a fix for, Bug#95474.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7328 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-sxsincelast.c (process_auto_create_list): Use
the appropriate function for creating toCreateInstances to fix
Bug#95637.
(sxsld_get_future_created_txn_count): Added to assist in
next-page-determination.
(sxsld_disposition_changed): Correctly predicts
post-processing/future txn count; fixes Bug#95734.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7318 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/register/ledger-core/gnc-regwidget.c
(gnc_register_create_tool_bar): Added support for tooltips to the
toolbar of the gnc-regwidget
(gnc_regWidget_new): Added support for conditionally disallowing
various capabilities of the reg-widget, as scheduled transactions
use of the regwidget requires. Fixes Bug#95009.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7298 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/druid-loan.c: The druid now enforces valid account
selection for the GNCAccountSel widgets; fixes Bug#90784.
* src/gnome/gnc-account-sel.c (gas_destroy): GNCAccountSel
now cleans up after itself, especially with removing its engine
event observation. Moved from src/gnome-utils/ to src/gnome/
because of circular dep introduced below.
* src/dialog-account/dialog-account.c
(gnc_ui_new_account_with_types): Added new function to create a
NewAccount dialog with only a valid-types filtering list.
* src/gnome-utils/gnc-account-sel.c
(gnc_account_sel_set_acct_filters): Added support for filtering
the accounts available through the GNCAccountSel.
(gnc_account_sel_set_new_account_ability): Added support for a
conditional "New..." button which allows the creation a new
account. If the selector has a filter in place, the filter will
apply to the new-account creation as well.
* src/gnome-utils/gnc-account-sel.c: Added ifdefs, comments around
regions pertaining to unimplemented feature of completion.
Fix for Bug#90779.
(gnc_account_sel_event_cb): Added support for updating list
contents when the account tree changes; the current selection is
respected if the account still exists; fixes Bug#94951.
* src/gnome/dialog-sxsincelast.c
(sxsld_process_to_create_instance): Handle the corner case of not
incrementing the state while postponing/ignoring a
never-been-created SX. Handle only incrementing the counters of
newly-come-due SXes.
* src/engine/SchedXaction.c (gnc_sx_create_temporal_state): Fix
corner case of creating the temporal state of a never-been-created
SX; fixes Bug#94947.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7283 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/gnome-utils/gnc-frequency.c: Added support for a "changed"
signal so callers can use their own calendar to show the effects
of editing the FreqSpec.
* src/gnome/dialog-sx-from-trans.c: Added support for using the
dense-calendar for showing the effects of option changes.
* src/gnome/dialog-scheduledxaction.c: Added editor support for
using the dense-calendar for showing the effects of FreqSpec
changes; re-arranged the editor layout to accomodate. Added
editor support for showing the last-occurred date of an SX.
* src/gnome/glade/sched-xact.glade: Changes to sx-from-trans
dialog, SX editor, GNCFrequency-widgets.
* src/gnome/dialog-sxsincelast.c (sxsincelast_entry_changed):
Added support for variable-entry parsing errors to go to an
on-screen status bar instead of being printed to stderr
[Bug#90354].
* src/gnome/druid-loan.c (gnc_loan_druid_length_changed): Added
change-handler to the total-loan-length spin; when it changes, the
remaining-length spin changes the same [Bug#90785].
(gnc_ui_sx_loan_druid_create): Adjusted the size/granularity of
the interest-rate spin-button to 3 sig.digits. [Bug#90780].
* src/gnome/glade/sched-xact.glade: Changed [back?] the
shrink/auto-shrink flags on the since-last-run-druid, fixing
Bug#90364 and strangely fixing Bug#90365.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7183 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/engine/FreqSpec.c (gnc_freq_spec_compare),
(int_cmp), (_gnc_freq_spec_get_min): Added to support ordering
FreqSpecs for sorting.
* src/gnome/dialog-scheduledxaction.c: Added support for
column-sorting the SX list, resolving Bug#87865 fixed. Cleaned up
GDate allocation when done with them. Fixed Bug#90326 relating to
next-instance-date calculation, which was b0rken when the
dense-calendar was added in cases where the next SX instance is
outside of the visible calendar range.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7148 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-sxsincelast.c: Added support for saving the
state of the ledger if a review-ledger is transitioned away from
after a "simple" edit [Bug#90075].
* src/gnome/dialog-sx-from-trans.c (sxftd_ok_clicked): *
src/gnome/dialog-sxsincelast.c (gnc_sxsld_finish): Now updates the
SX List [if open] when an obsolete SX is removed [Bug#84685].
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7145 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-scheduledxaction.c (gnc_sxed_check_consistent):
The pre-defined variable 'i' no longer blocks transactions from
being created "auto-create".
* src/calculation/expression_parser.c: Added documentation for
function support in the expression parser.
* src/gnome/dialog-sxsincelast.c (create_each_transaction_helper):
Scrub created splits so they get setup correctly, fixing the
"incorrect-running-balance" problem [Bug#89879].
Wrote the oft-procrastinated memory-cleanup code; ensured [most]
other dynamic memory allocation is clean. Removed some dead
code/debugging.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7144 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-sxsincelast.c (add_reminders_to_gui): The SX
nodes in the reminders tree are now not selectable, as is
appropriate.
(create_each_transaction_helper): Fixed a nasty problem with
freeing a static string.
(sxsincelast_populate): Be better about cleaning up after ourself
during the initial instance generation. Be better about writing
clean, generic code.
(processSelectedReminderList): Be better about writing clean,
generic code.
(to_create_prep): Empty the variable table when we transition into
the page; closes Bug#84689.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7141 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-sxsincelast.c (to_create_next): Fix for
re-creating to-create transactions when the variables change;
fixes Bug#89924. Fixed another small bug in the variable-table
handling code.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7138 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/import-export/gnc-generic-import.c: #if-def'd out the
original version, and replaced with a version sans the printf.
For some reason, with the printf, GCC 3.1 can't compile this file.
* src/gnome/dialog-sxsincelast.c: Added support for the Back [and
Next] button to behave correctly in the Druid. Closes Bug#84688.
Fixed a double-freeing bug [Bug#89475]. Correct use of
gnc_{suspend,resume}_gui_refresh makes Transaction processing much
faster, closing Bug#84686.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7137 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/register/ledger-core/gnc-ledger-display.c
(gnc_ledger_display_gl): Added filter for template
transaction-accounts to General Ledger, fixing Bug 86302.
* src/gnome/dialog-scheduledxaction.c (gnc_sxed_check_consistent):
Changed wording to fix half of Bug 87622 [the other half being
unreproducible :(].
* src/gnome/dialog-sx-from-trans.c (sxftd_update_fs): Add support
for Bi-Weekly to be part of the pull-down; fixes half of
Bug 88178.
* src/engine/FreqSpec.c (xaccFreqSpecGetWeekly): Keep the returned
day-of-week within reasonable bounds.
(xaccFreqSpecGetFreqStr): s/Anually/Yearly/ [sic] - Bug 88176.
* src/gnome/glade/sched-xact.glade: Dead-UI
removal. s/Anually/Yearly/ [sic] - Fixes Bug 88176.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7126 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/gnome/druid-loan.[ch]: Added; Initial implementation of
Gnome Druid for setting up loan-repayment Scheduled Transactions.
* src/doc/loans.txt: Added; notes about how loans will be dealt
with in GnuCash.
* src/gnome/glade/sched-xact.glade: Added loan-druid.
* src/gnome/window-main.c (gnc_main_window_create_menus): Added
'Mortgage/Loan Repayment Setup' Druid invocation menu item.
* src/scm/fin.scm: Added. Implementations of 'ipmt', 'ppmt', 'pmt'
and supporting code.
* src/app-utils/test/test-exp-parser.c (test_parser): Added tests
for functions-in-expressions. Added [passed] test for Conrad's
bug.
* src/app-utils/gnc-exp-parser.c (func_op): Added. gnc-side
callback for dealing with a function in an expression.
* src/calculation/expression_parser.c: Added initial, undocumented
support for functions in expressions.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7115 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_mark_remove):
Unrealistic marks [such as '-1'] are now ignored instead of
hitting assertion.
* src/gnome/dialog-scheduledxaction.c: Dead code removal; naming
clarifications.
(gnc_sxed_check_consistent): Added.
(gnc_sxed_check_changed): Added; used when the cancel button is
pressed. SX editor now queries the user if the SX has changed.
(gnc_sxed_save_sx): Added; seperated from consistency-check.
(_gnc_sxed_get_widgets): Added; many glade_xml_get_widget(...)s
removed from code.
(free_var_numeric): Added; we now cleanup the temporary variable
table correctly after doing balance checking.
(schedXact_editor_create_ledger): RegWidget toolbar shouldn't
expand; fixed.
(putSchedXactionInDialog): Fixed assertion-failure/abort when a
previously-unscheduled SX is scheduled.
* src/engine/SchedXaction.c (xaccSchedXactionGetNextInstance),
(xaccSchedXactionGetInstanceAfter): Fixed bug in
number-of-occurance instance-state processing.
* src/register/ledger-core/gnc-regwidget.c:
* src/gnome/dialog-schedxaction.c:
* src/gnome/dialog-sxsincelast.c:
* src/engine/SchedXaction.[ch]:
* src/engine/FreqSpec.[ch]: Dead code removal/cleanup.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7054 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-sxsincelast.c: Lists of SX instances [the
Reminders and To-Create] are now trees instead of clists.
Better structure of internal state.
Fixed multiple-SX-reminder selection/processing bug [Bug#85997].
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7010 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome-utils/gnc-dense-cal.[ch]: Added; a multiply-markable,
visually-dense Gtk calendar widget, to be used by
Scheduled Transactions.
* src/gnome/dialog-scheduledxaction.c
(putSchedXactionInDialog): Renamed; supports marking the new
GncDenseCal.
(delete_button_clicked): Now much less lame about dealing with the
CList when items are removed; supports [un]marking the
GncDenseCal.
* src/gnome/dialog-scheduledxaction.c (editor_ok_button_clicked):
Query the user if they want to create an unbalanceable
[varible-containing] transaction. Inform the user if they try to
create an auto-create transaction which has variables, as this is
not allowed.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@6980 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-sx-from-trans.c (sxftd_get_end_info): Changed
to do the strtoul before we free the data itself; fixes "can't
create once/number-of-occurance SXes" [in from-transaction dialog]
bug.
* src/gnome/dialog-scheduledxaction.c (editor_ok_button_clicked):
Do a very lame but good-enough-for-now check to see if we can
determine if the template transactions will still balance. Note
that we don't do anything with the result of that check, yet, but
we perform it.
* src/app-utils/gnc-exp-parser.c (gnc_exp_parser_real_init): Added
so we can conditionaly add the "predefined variables" to the
binding table for parsing a given expression.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@6886 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-sx-from-trans.c (sxftd_advanced_clicked): Since
"Advanced..." editing completely entails the from-transaction
dialog, we close it if the user selects "Advanced..." to prevent
errors when the from-trans dialog is "Ok"'d.
* src/gnome/dialog-scheduledxaction.c (delete_button_clicked):
Better deletion confirmation checking; we now look for
being-edited scheduled transactions and confirm them specially
with the user to prevent inconsistencies from cropping up.
* src/doc/TODO-schedxactions: Updated; more 'X'-ed off items make
me happy.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@6818 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/backend/file/sixtp.c (sixtp_parse_file): Explicitly create
an xmlParserCtxt and keep it in the sixtp_sax_data, so we can...
(sixtp_sax_start_handler): retain line/column numbers for stack
frames, which pays off in...
* src/backend/file/sixtp-stack.c (sixtp_stack_frame_print):
printing the line/column numbers of parsing errors when they
occur.
* src/backend/file/sixtp.c (sixtp_parse_buffer): Analagous change
for in-memory-buffer parsing.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@6817 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-scheduledxaction.c
(editor_ok_button_clicked): Added checks for ScheduledTransactions
with no name, same name as existing SchedXaction.
(row_select_handler): Resolved "critical" GTK run-time warning
regarding navigating the Scheduled Transaction list with the arrow
keys.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@6805 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-scheduledxaction.c
(editor_ok_button_clicked): Check to see if the user is attempting
to create a Scheduled Transaction which can't occur; confirm with
them if they are.
* src/gnome-utils/gnc-frequency.c
(freq_option_value_changed): StartDate and frequency-specific
options now come into better sync [when possible] on
frequency-type change.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@6799 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
Fixed gnc_template_register_model_add_save_handlers to leave the
split-register's NUM_CELL and DESC_CELL save handlers [as they are Correct
and Relevant].
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@6192 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
in since-last-run dialog [before: 'break' out of processing further SXes
if a given SX in the list has no instances; now: 'continue' to other SXes
which may have instances yet].
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5748 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-sxsincelast.c: Unused pages are skipped,
initial version.
* src/gnome/dialog-sx-from-trans.c: Added start date handling; as
well, correctly update the start date when the frequency option
changes. Added using FreqSpecs for start date calculation. Added
correctly
* src/gnome-utils/gnc-account-tree.c (gnc_account_tree_init): Make
account-tree description column auto-resize.
* src/engine/SchedXaction.c (xaccSchedXactionSetEndDate): Removed
end date validity check; an invalid end date is how we signal "no
end date".
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5739 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-scheduledxaction.c (sxed_delete_event): Added.
(gnc_ui_scheduled_xaction_editor_dialog_create): Added support for
delete-event [WM window close].
(sxed_check_close): Added close-check, including register check.
(editor_cancel_button_clicked): Renamed from
editor_close_button_clicked; correctly handles a cancel WRT ledger
changes.
* src/gnome/glade/sched-xact.glade: Added as-yet-unused Start
Date widgets to make-from-transaction dialog.
* src/gnome/dialog-sx-from-trans.c (sxftd_add_template_trans): Use
the user-friendly amount formating instead of a stringified
gnc_numeric. Copies the account data over into the template
transaction.
(sxftd_init): Added; supports using the Description of the
transaction as the initial name of the SX.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5715 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
* src/gnome/dialog-scheduledxaction.c (delete_button_clicked):
Fixed multiple bugs in deletion selection-handling.
(schedXact_editor_populate), (schedXact_editor_create_ledger):
Added code for respecting the user's Preferences.
* src/gnome/dialog-scheduledxaction.c
(gnc_ui_scheduled_xaction_dialog_create): Added support for only a
single SX list to be up at any one time; if one already exists,
show and raise that window instead of creating a new one.
* src/gnome/dialog-scheduledxaction.c
(gnc_ui_scheduled_xaction_editor_dialog_create): Only one editor
for any Scheduled Transaction open at a time; if one already
exists, show and raise it's window.
* src/gnome/dialog-scheduledxaction.c
(schedXact_editor_create_ledger): Add [read: steal from
window-register.c] register toolbar, suitably modified for SXes.
* src/app-utils/prefs.scm: Updates to wording, defaults for
Scheduled Transaction preferences.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5659 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-sxsincelast.c: Displays
auto-created-and-notification-requested scheduled transactions in
a GL rather than a clist.
* src/register/ledger-core/split-register-model.c
(gnc_template_register_model_new): Added date-cell entry/io-flags
handler for template register, making date cell inactive, and
stating "Scheduled" instead of a date.
* src/gnome/dialog-sxsincelast.c (_create_transactions_on): Now
does appropriate cleanup in the case it needs to create a
temporary toCreateTuple for transaction-creation.
(_create_each_transaction_helper): Cleanup failed
transaction-creation appropriately. Support for returning a list
of the GUIDs of created transactions.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5445 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/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... :(
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@4841 57a11ea4-9604-0410-9ed3-97b8803252fd