Since Account.c is now Account.cpp, the function signatures look a bit
different internally. The tests rely on function signatures in error
messages. Instead of trying to figure out what the exact
function signature might be, I use a substring matching strategy to
ensure that the correct error was issued.
I.e., remove the shell invocation and with it the need to set the shebang.
Surprisingly this required some build-system modifications particularly
for cmake in order to correctly set the environment.
This effectively replaces the use of GNUCASH_BUILD_DATE with GNUCASH_SCM_REV_DATE.
The latter is extracted from the current commit if building from some kind of vcs
(currently only works correctly for svn and git). The info extracted while building
from vcs is then also added to the dist tarball so it's available when building
from tarball as well (via the file libgnucash/core-utils/gnc-vcs-info.h).
The same date is also used to set the date in gnucash' man page document.
A practical detail: I have changed the substitution variables in the man page template
from @- -@ to ${} so we could leverage CONFIGURE_FILE in cmake. The necessary
related adjustments have also been made to Makefile.am's substitution rules.
intltool-update should be run from the build directory, not the source directory.
If run from the source directory it will omit glade messages that have a context attribute
so all msgids with a msgctxt comment would be missing.
While it doesn't fully fix the python bindings, gnucash
now at least doesn't segfault on start up if built with
python bindings enabled. There are still issues to fix though.
On Windows CMake converts "\n" to CRLF, which causes xgettext to
mangle paths with [type: gettext/gsettings] in front of them and
also dirties the source directory with uncommittable changes.
The autotools build doesn't regenerate POTFILES.in and we've historically
maintained it by hand.
Apparently that platform trips over a missing newline at the end of the generated POTFILES.in.in file.
Adding one allows cmake to complete configuration and appears to be fine on Fedora as well
(although it worked fine without the newline too).
Thanks go to Michael Jung <gnucash-devel@mailinglists.mjung.org> for reporting this and proposing the fix.
It is split into
- /libgnucash (for the non-gui bits)
- /gnucash (for the gui)
- /common (misc source files used by both)
- /bindings (currently only holds python bindings)
This is the first step in restructuring the code. It will need much
more fine tuning later on.
These are currently unmaintained, cutecash us based on the obsolete qt4
and gtkmm is only used by cutecash. Whenever someone wishes to revive
this experiment it can be recovered from git history and be brought
into a separate repository.
They are both about handling core gnucash objects. Qof was once split out
in an attempt to make it a separate library. This hasn't worked out so there's
no good reason any more to keep this artificial separation.
A few considerations:
- The qof tests are merged into the engine test directory but they are kept as
a separate test entity for now. Several assumptions made in the qof tests
are no longer valid in the context of the engine. (For example if the
pricedb test is added in the same test executable as the qofbook test,
the book creation test fails because it now has 2 collections (pricedb and
book) instead of only one. There are plenty of others like this so merging
the tests needs more careful review and is perhaps best done while converting
to c++/Google test.
- I had to use unique names for the MockBackend classes because apparently the tests were
using a MockClass from another file in the cmake builds, causing several
tests to fail.
This adds unnecessary overhead and also serves as an initial experiment
to greatly reduce the gnc-module based modularization.
Oh, and it fixes the autotools make check failure in standard-reports
which I introduced in the previous commit. The fix was to either
fully gnc-modularize business reports or to go to de-gnc-modularize
standard-reports. I chose the latter as I don't want to add any new
gnc-modules any more at this point.
There was no added value in it being a full widget. It only served two functions really
- speed draw the visible and non-editable part of a register window
- locating a cell starting from a pixel
Both are used exclusively by the sheet object, so
I have made them private functions of the sheet.
They are still kept in a separate file though for length considerations.
- cleanup whitespace
- add import-pending-matches.c to POTFILES.in
- convert asserts into g_return(_val)_if_fail
- handle the case where no matches are found (which can happen at least in the csv importer and I suspect in the OFX importer as well)
This was still pulled in via the now removed gnc-csv-model.
In order to remove this, the fixed format csv importer
has been tweaked to get the required features from
the c++ csv importer code instead.
This base class takes care of the common things like
file opening and character set conversion.
The actual interpretation of the contents will be
delegated to specialized child classes.
Effective c++ note: explicitly declare special member functions
The Character Encoding menu imported from goffice comes with many such strings.
I still need to find a nice way to copy the existing translations for them
from goffice directly to gnucash.
To qof-backend.hpp and qof-backend.cpp respectively, to reflect that they
implement the QofBackend class (which won’t be a class until a future commit).
This update adds the option to search for an account in an account list
and once selected it will jump to that account in the Account Treeview
or if it is a hidden account the account editor will open.
This new dialog creates a list view of transaction associations and
allows them to be checked to see if they are still available and be able
to jump to the corresponding transaction in the register or open the
associated entry.