Details:
Remove the last bits of libguile from top-level.[ch].
Change the gui initialization funtions so they can be called from C.
Drop some gwrappers for gui initialization functions.
Process the --nofile and filename command-line options from C.
Drastic simpilification of main.scm.
Initialize the gui and enter the gtk event-loop from C.
Even though there's some more clean-up to do, this patch does mark
a certain milestone: A developer seeking to understand and/or modify
GnuCash's startup process can now essentially ignore the guile portion.
Most parts of our startup now look pretty typical for a gnome-2 app.
The parts that remain firmly in guile are initialization of the report
menus and the installation of price-quote sources.
Caveat: We have multiple mechanisms for handling the filename
argument string -- some in guile and some in C. The C-side mechanisms
(in engine/gnc-filepath-utils.c) seem a little nicer than the guile
ones (in main.scm). They have slightly different behavior (e.g. which
paths they'll search for data files.) They both handle URIs and
making absolute paths out of relative ones. This patch switches from
using the guile functions to the C function. I've tested that the common
cases are handled the same way, but it wouldn't surprise me if some
corner-cases are not.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12956 57a11ea4-9604-0410-9ed3-97b8803252fd
Also remove now unused guile portion of --add-price-quote option.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12947 57a11ea4-9604-0410-9ed3-97b8803252fd
This is done by booting guile with a custom inner_main.
Much of the work is still handled by price-quotes.scm, which
is now a true stand-alone guile module without the circular dependency
on the (gnucash main) module.
One caveat: Since the initialization of guile-side debugging variables
is in main.scm, and since main.scm is no longer executed when running
--add-price-quotes, the guile code that runs during --add-price-quote
isn't affected by the --debug option. A work-around is to use the
GNC_DEBUG environment variable:
$ GNC_DEBUG=yes gnucash --add-price-quote myfile
In the longer term, we'll either move the debugging aids to a common place
where it can be used by both main.scm and price-quotes.scm, or we'll get
the debugging state from the C-side via gwrap.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12946 57a11ea4-9604-0410-9ed3-97b8803252fd
This is now handled by Gnome's gnome_program_locate_file() function.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12943 57a11ea4-9604-0410-9ed3-97b8803252fd
Also one bit of uncommitted code from gwrap change.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12912 57a11ea4-9604-0410-9ed3-97b8803252fd
Remove the "load config" command line options, since they weren't doing
anything different than the default.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12909 57a11ea4-9604-0410-9ed3-97b8803252fd
Move one function from path.scm to command-line.scm.
Remove processing of arguments now handled in C.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12872 57a11ea4-9604-0410-9ed3-97b8803252fd
Also show svn revision info if binary was built from svn.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12838 57a11ea4-9604-0410-9ed3-97b8803252fd
Strangely, symbols that are resolved during a dlopen() *before* calling
scm_set_current_module() are not resolvable from guile code that is inside
a module.
In order for code in a guile module to see symbols from dlopen'ed libraries,
they must be dlopen'ed *while* that guile module is current. I imagine this
is because the process of changing the current guile module purposely hides
all symbols in the current symbol table - to create an illusion of an empty
table. Kinda interesting... kinda scary...
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12816 57a11ea4-9604-0410-9ed3-97b8803252fd
libtool 1.5.16 seems to not mind the dependency being undeclared but
libtool 1.5.6 on FC3 won't lt_dlopen() the .la file without it.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12351 57a11ea4-9604-0410-9ed3-97b8803252fd
from scriptlets in Makefile. That way, if the generating scriptlet is
changed, (or the Makefile is regenerated) the target will also be remade.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12350 57a11ea4-9604-0410-9ed3-97b8803252fd
Hmm... A commit message for my commit messages... what to write?
Using this, format which is much closer to svn log, saved some time.
This commit took about 10 min to prepare, and I estimate it would have
taken another 20 to format like my last entries. The main effort is
moving the messages off of column 0. I suspect that the non-uniform
entry style might start to bother me enough to look at the xslt again.
We'll see.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12338 57a11ea4-9604-0410-9ed3-97b8803252fd
Move i18n.h.in from src/app-utils to src/bin, where it is used.
Remove unneeded gettext init code in src/app-utils
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12337 57a11ea4-9604-0410-9ed3-97b8803252fd
Avoid testing for match of deprecated tags.
Warn about deprecated tags not being preserved.
Plug another leak in test case.
Make successful test-xml-account less verbose.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12330 57a11ea4-9604-0410-9ed3-97b8803252fd
Conditionally add symlink from ./gsf to ./lib/libgsf-1.12.3/gsf.
Also, silence warning:
/usr/share/automake-1.9/am/tags.am: ctags was already defined in condition !GNC_CTAGS_FILE, which is included in condition TRUE ...
Makefile.am:138: ... `ctags' previously defined here
and avoid possible `make dist' failure by added po/POTFILES.in to dist-hook.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12273 57a11ea4-9604-0410-9ed3-97b8803252fd
Remove po/POTFILES.in (again) from svn. Since po/POTFILES.in is added
to BUILT_SOURCES, it's auto-generated now whenever the `make all',
`make check', or `make install' targets are processed, (but not
recreated every time). And `make pot' forces the recreation of
po/POTFILES.in. Hopefully, this will works even on OSX.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12271 57a11ea4-9604-0410-9ed3-97b8803252fd
'gnucash' is now a shell script that calls the executable
'gnucash-bin' which uses libguile to load guile modules.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12252 57a11ea4-9604-0410-9ed3-97b8803252fd
* Regularization of 'trans' as variable name.
* Whitespace and linewraps
* lots of control-flow simplification
* factor one chunk out into get_any_account()
* Comment some things that are bogus or need improvement
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12231 57a11ea4-9604-0410-9ed3-97b8803252fd
Doesn't seem to work quite yet. It does save the settings in the user's
gconf directory, but the tree view doesn't remember things like sort order,
which the account-tree page's account treeview does remember. There must be
something else needed...
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12224 57a11ea4-9604-0410-9ed3-97b8803252fd
Most of the work is delegated to GncTreeViewAccount, just as for
GncPluginPageAccountTree. One difference is that the Budget page has to
also remember which Budget it was showing. For that, we encode the GUID to
a string in the keyfile.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12221 57a11ea4-9604-0410-9ed3-97b8803252fd
The reason GncPluginPageBudget keeps wanting to use functions in
GncPluginPageAccountTree is that they both use GncTreeViewAccount.
So, we're moving those functions (the account view filter functions
and the account view save/restore functions) into
gnc-tree-view-account. Along the way, we're also narrowing the
argument types from GtkTreeView to GncTreeViewAccount to avoid
unnecessary down-casting.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12219 57a11ea4-9604-0410-9ed3-97b8803252fd
export the account-tree's account filter function
populate the account-tree's account filter struct with the right tree-view.
And finally... reuse all this generalized functionality in
the budget plugin page. Nice!
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12214 57a11ea4-9604-0410-9ed3-97b8803252fd
Fixup comments forgotten in step 3.
Factor out and export most of the account filter dialog creation.
Eventually this function should live somewhere else.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12213 57a11ea4-9604-0410-9ed3-97b8803252fd
Narrow all the account filter dialog callbacks to use only the
AccountFilterDialog struct. Now they're multi-purpose.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12212 57a11ea4-9604-0410-9ed3-97b8803252fd
Narrow the account filter function to use only the AccountFilterDialog.
Now it's multi-purpose.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12211 57a11ea4-9604-0410-9ed3-97b8803252fd
* add some arrays of realistic string values for various
Account and Transaction fields
* use the arrays to generate slightly more human-readable
random books
* pull some hardcoded constants out into static knobs
* wrap Transaction creation in begin/commit
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12202 57a11ea4-9604-0410-9ed3-97b8803252fd
Including necessary related changes to functions passed accounts
from the account functions.
Interestingly, the only g-wrap function that complained about the
new const function arguments was xaccAccountOrder(), the only one
using const Account ** types. It seems very uncommon to express
const-ness in g-wrap for any types other than gw:mchar. Actually
I couldn't find any other examples, anywhere, so I had to guess
at the syntax, but it works.
Oh, and one or two minor tweaks like my last commit snuck in, too.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12201 57a11ea4-9604-0410-9ed3-97b8803252fd
* standardize on 'acc' as variable name for Account.
* removed 'acc->inst.dirty = TRUE' when preceeded by mark_account.
* slightly more consistent whitespace.
* short-circuit no-op in many cases where we thought we were changing state but we really weren't. Don't dirty Accounts in these cases.
* fix a couple cases where we dirtied the account without dirtying the parent
* fix one BUG where we just blew away the account's Lots for no reason.
* comment possible bug where we don't dirty a split.
* comment two possible buglets where we generate double CM events.
* comment on possible bugs related to conditional sorting of the Split list.
* heavy conversion from lower-level to higher-level KVP api.
* plug mem leak of entire GList of splits.
* document minor change to corner-case behavior of xaccAccountHasAncestor().
* several control flow simplifications.
* fixed one case where we were changing the Account without dirtying it. (Can't find this one now. Maybe I imagined it.)
Please note where I've marked 'BUG'. I think there are still (at
least) 2 medium and 2 minor bugs remaining in this file. I'll have
another look some other day.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12199 57a11ea4-9604-0410-9ed3-97b8803252fd
which will contain all the commit messages and affected file paths
since Nov. 2, 2005.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12077 57a11ea4-9604-0410-9ed3-97b8803252fd