From leaking references in g_object_get because both g_object_get
and g_value_set_object ref the object, which is only unreffed once.
Using g_value_take_object() instead prevents the double-ref.
BP
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@23192 57a11ea4-9604-0410-9ed3-97b8803252fd
Nothing in gnc-session-scm.c was being used, so deleted it and its corresponding header.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@21579 57a11ea4-9604-0410-9ed3-97b8803252fd
This re-indentation was done using astyle-1.24 using the following options:
astyle --indent=spaces=4 --brackets=break --pad-oper --pad-header --suffix=none
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@20163 57a11ea4-9604-0410-9ed3-97b8803252fd
This re-indentation was done using astyle-1.24 using the following options:
astyle --indent=spaces=4 --brackets=break --pad-oper --pad-header --suffix=none
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@19301 57a11ea4-9604-0410-9ed3-97b8803252fd
Patch by Frank H. Ellenberger.
Because many sources were listet as unknown, I tried to sort them in.
Because normal users don't know all englisch abbreviations of far continents,
I tried to use better understandable descriptions and added country codes.
Caveeats:
1. The HU methods were not quite clear to me, so I added only one.
2. The Currencies methods seems to fetch lists of currencies,
something what we don't need here; correct me, if I am wrong.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@19059 57a11ea4-9604-0410-9ed3-97b8803252fd
This will make approx. 50% of the currency names show up in translated form.
At least more than nothing. Eventually, we most probably must change our
long name definitions to match those of iso_4217, and after this we will
get 100% translations.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@19058 57a11ea4-9604-0410-9ed3-97b8803252fd
Note that only the type was renamed, but not any enums or function names.
Hence, the scheme wrappers should be unchanged completely (hopefully).
Discussed at http://lists.gnucash.org/pipermail/gnucash-devel/2010-March/027679.html
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@18969 57a11ea4-9604-0410-9ed3-97b8803252fd
This also strips trailing whitespaces from lines where they existed.
This re-indentation was done using astyle-1.24 using the following options:
astyle --indent=spaces=4 --brackets=break --pad-oper --pad-header --suffix=none
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@18788 57a11ea4-9604-0410-9ed3-97b8803252fd
Those were introduced in r17724, bug#539957, but apparently this
C99 is not supported by MSVC and won't be for some time to come.
Hence, for MSVC we need the workaround to define a macro that will
shadow the member names. However, the initialization itself works
fine and non-MSVC code is unchanged, so I think we can live with that.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@18755 57a11ea4-9604-0410-9ed3-97b8803252fd
I also changed some of the documentation that referred to it, but there are still some
references left in the (unmaintained ?) design documents.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@18623 57a11ea4-9604-0410-9ed3-97b8803252fd
Patch by Mike Alexander:
This patch implements trading accounts somewhat as described in Peter
Selinger's document at
<http://www.mathstat.dal.ca/~selinger/accounting/gnucash.html>. Although he
describes it as a multiple currency problem, it really applies to any
transactions involving multiple commodities (for example buying or selling a
stock) Hence I've called the trading accounts "commodity exchange accounts"
which seems more descriptive.
In summary these patches add an option to use commodity exchange accounts and
if it is on a transaction must be balanced both in value (in the transaction
currency) and in each commodity or currency used in any split in the
transaction. If a transaction only contains splits in the transaction currency
then this is the same rule as Gnucash has always enforced.
In this patch, the option to use trading accounts has been moved from
Edit->Preferences to File->Properties and is now associated with the active
book instead of being a global option. If you have set the global value on in
a previous version you will need to set it on again in each file for which you
want trading accounts, the previous global setting will be ignored.
A more detailed list of changes follows:
1. Added a "Use commodity exchange accounts" per-book option.
2. Added gnc_monetary and MonetaryList data types.
3. Renamed xaccTransGetImbalance to xaccTransGetImbalanceValue and added a new
xaccTransGetImbalance that returns a MonetaryList. Also added
xaccTransIsBalanced to see if the transaction is balanced without returning a
GList that needs to be freed. It calls both xaccTransGetImbalance and
xaccTransGetImbalanceValue since a transaction may be unbalanced with regard to
either without being unbalanced with regard to the other.
4. Changed gnc_split_register_get_debcred_bg_color to use xaccTransIsBalanced.
5. Changed gnc_split_register_balance_trans to not offer to adjust an existing
split if there imbalances in multiple currencies. Because of bugs in the
register code this is rarely called.
6. Changed importers to use xaccTransGetImbalanceValue to check for imbalance,
assuming that they won't create multiple currency trasactions.
7. Changed xaccTransScrubImbalance to create a balancing split for each
imbalanced commodity in the transaction. Also balances the transaction value.
The commodity balancing splits go into accounts in the hierarchy
Trading:NAMESPACE:COMMODITY. The value balancing splits go into
Imbalance-CURRENCY as before.
8. Changed xaccSplitConvertAmount to use xaccTransIsBalanced instead of
xaccTransGetImbalance.
9. Changed gnc_split_register_get_debcred_entry to sometimes use the split
amount instead of value if using currency accounts.
If the register is a stock register (i.e., shows shares and prices), it uses
the value if the split is in the register commodity (i.e. is for the stock) and
the amount otherwise. It shows the currency symbol unless the commodity is the
default currency.
If the register is not a stock register it always uses the amount and shows the
currency symbol if the split is not in the register commodity.
Also changed it to not return a value for a null split unless the transaction
is unbalanced in exactly one currency. This is what goes in a blank split as
the proposed value.
10. Changed refresh_model_row to use xaccTransGetImbalanceValue to get the
imbalance, assuming that importers don't create transactions in multiple
currencies. Also same change in gnc_import_process_trans_item,
downloaded_transaction_append, and gnc_import_TransInfo_is_balanced.
11. Changed the TRANS_IMBALANCE accessor method in xaccTransRegister to use
xaccTransGetImbalanceValue. As far as I can tell this is only used by the
"pd-balance" query type in gnc_scm2query_term_query_v1() defined in
engine-helpers.c. This query type only tests the result for zero/non-zero.
12. Changed xaccTransGetAccountConvRate to accept any split into the correct
commodity instead of insisting on one into the provided account. Then can use
it in xaccTransScrubImbalance to set the value of the imbalance split from its
amount, however later changed xaccTransScrubImbalance to not use it. Instead
it sets the value for the new split correctly to keep the value of the whole
transaction balanced.
13. Changed the balance sheet report to include a new option to not compute
unrealized gains and losses.
14. Related to 9 above, changed gnc_split_register_auto_calc to not do anything
if given a stock register where the value cell doesn't contain the value.
15. Also related to 9, changed gnc_split_register_save_amount_values to set the
amount and value fields in the split correctly when using trading accounts.
16. Changed the new account and edit account dialogs to allow any commodity or
currency for an income account if using trading accounts. It would be better
to add a new account type for trading accounts, but that's a big deal and I'll
leave that for later after we see whether this set of changes is going to be
accepted or rejected.
17. Change gnc_xfer_dialog_run_exchange_dialog to understand that the new value
is really the split's amount if using trading accounts.
18. Changed xaccSplitGetOtherSplit to ignore trading splits if using commodity
exchange accounts.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@18429 57a11ea4-9604-0410-9ed3-97b8803252fd
While loading an xml file, do not look up an internal commodity and modify that,
but rather work on a copy. When inserting the commodity, apply the same
replacements as in gnc_commodity_table_lookup().
This change should not be necessary on branches/2.2 but it might not do any
harm.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@17814 57a11ea4-9604-0410-9ed3-97b8803252fd
Note that mnemonics are not copied on branches/2.2.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@17812 57a11ea4-9604-0410-9ed3-97b8803252fd
This is fixed by inserting a wrapper function whose pointer has the
correct type as needed by g_list_find_custom.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@17711 57a11ea4-9604-0410-9ed3-97b8803252fd
This patch adds a new account selection filter allowing valid commodity
to be restricted, and makes use of it for bill posting. This filter is
allowed to be NULL (just as with the 'account type' filter) and when
NULL, isn't used. The patch also fixes a bug where gnc commodity copy
wasn't copying mnemonic, thus erroneously making a copy not equal to the
original when comparison happens. The behaviour is that the user isn't
able to select a post account in the wrong currency. If there is no
possible account (aka, EVERYTHING gets filtered out) they get a blank
combo box. This is consistent with what the account type filter does
when there are no valid account-type accounts.
Patch by Jamie Campbell and Mark Jenkins.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@17708 57a11ea4-9604-0410-9ed3-97b8803252fd
fails. Most engine objects catch the qof commit but then just log the
problem to the trace log. Now, the engine objects will invoke this
callback. gnc-main-window registers a callback and opens a dialog box
to inform the user. This is necessary because with an sql backend,
commits happen whenever an object is created or modified, not just
synchronously when the user selects to save the file.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@17667 57a11ea4-9604-0410-9ed3-97b8803252fd
New Israeli Shekel: The informal abbreviation may be "NIS", but its
iso-4217 code is clearly ILS and only this! Incorrectly changed due to
bug#152755 (Nov 2004), r10331, and changed back again by bug#492417
(Oct 2008).
BP
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@17660 57a11ea4-9604-0410-9ed3-97b8803252fd
This introduces the dbi backend and the --enable-dbi configure option.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@17444 57a11ea4-9604-0410-9ed3-97b8803252fd
migrate each object's "free()" function to a combination of
dispose() and finalize().
(and yes, "make check" still passes all its tests)
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/branches/gobject-engine-dev-warlord@15827 57a11ea4-9604-0410-9ed3-97b8803252fd
- fix a bunch of tests to use the new gobject defs
- make sure we initialize g_type_init() in qof_init()
- fix qofbook's destruction sequence (I broke it earlier)
- use dispose() in QofInstance
- use qof_init() for the business tests.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/branches/gobject-engine-dev-warlord@15826 57a11ea4-9604-0410-9ed3-97b8803252fd
g-wrap is gone. I, for one, welcome our new swig overlords.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@15024 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