Factor out some gnucash stream handling to higher-level modules.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5366 57a11ea4-9604-0410-9ed3-97b8803252fd
used by GnuCash. Still some dependency-untangling left to do.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5347 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/app-utils/global-options.[ch]: cleanup
* src/app-utils/option-util.[ch]: cleanup
* src/gnome/top-level.c: take out reverse balance implementations
* src/app-utils/gnc-ui-util.c: take out deprecated api
implementations. implement reverse balance api calls.
* src/register/ledger-core/SplitLedger.[ch]: take out reverse
balance callback. just use app-utils version.
* src/app-utils/gnc-ui-util.h: remove deprecated api
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5203 57a11ea4-9604-0410-9ed3-97b8803252fd
* all others: update for api/reorganization
* src/register/register-core/table-control.[ch]: encapsulate
table control object.
* src/register/ledger-core/split-register-util.c: split out
general split register utilities
* src/register/ledger-core/split-register-control.[ch]: split
out split register control functionality
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5126 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/FileDialog.c (gncFileSave): save the window state on a save
(gncFileQuerySave): don't provide cancel option when the ui can't
* src/scm/main-window.scm (gnc:main-window-save-state): new func
don't save state when the ui can't
* src/gnome/window-main.c
(gnc_main_window_can_cancel_exit): new func
(gnc_main_window_can_save): new func
(gnc_main_window_has_apps): new func
* src/gnc-ui.h: add new api
* src/gnome/top-level.c (gnc_ui_can_cancel_exit): new func
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@4711 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/guile/gnc.gwp: update for api change
* src/scm/main.scm: update for api change
* src/gnome/glade/newuser.glade: new file for new user glade xml
* src/gnome/glade-support.[ch]: remove generated files
* src/gnome/new-user-*.[ch]: remove old files
* src/gnome/dialog-new-user.c: new file for new user dialog code.
* src/gnome/druid-hierarchy.c: new file for account hierarchy
creation druid code. Rename api calls to reflect the more
general use of the druid.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@4708 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/scm/main-window.scm ((gnc:main-window-book-open-handler
book-url)): restore the main window even if we can't get a
conf-file-name.
* src/scm/main.scm (gnc:load-account-file): if we have a file to
open, only run book-opened-hook if file open returns false.
* src/FileDialog.c (gncPostFileOpen): once book-closed-hook has
been run, run book-opened-hook if opening the file fails for some
reason.
* src/guile/gnc.gwp: update ui-open-file api.
* src/gnome/top-level.c (gnucash_ui_open_file): return TRUE/FALSE
for success/failure. use gboolean instead of int for boolean
returns.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@4161 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/FileDialog.c: call book-opened-hook and book-closed-hook
where appropriate
* src/gnome/dialog-column-view.c: change to single-parent model
* src/gnome/top-level.c: don't do MID state saving and restoring
here... do it in the book save/load hooks.
* src/gnome/window-main.c: the configstring stored in MDI is now a
Scheme form which restores the window state. save/restore it.
Also, change the MDI session name to encode the book URL
(have to encode it to escape some chars, notably /, which MDI
doesn't like in section names)
* src/scm/main-window.scm: new file. get the main-window
save/restore functions out of prefs.scm
* src/scm/report/scm: only one parent per report; write save
routines to save all parents and children.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@4039 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/top-level.c: add call to skeleton "welcome" report
if user has not run 1.5/1.6 before
* src/scm/html-document.scm: changes to make sure styles are
set for component reports in multicolumn view
* src/scm/report.scm: clean up rendering with/without headers
* src/scm/report/stylesheet-plain.scm: get rid of <center> tag
on <body>
* src/scm/report/welcome-to-gnucash.scm: new report and function
to set up welcome to gnucash report
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3997 57a11ea4-9604-0410-9ed3-97b8803252fd
* Lots and lots of changes to support Gnome MDI. And I thought it
would be an easy way to get that toolbar problem fixed. Short
story is lots of function prototypes changed to reflect the notion
that there is no longer a single top-level gnucash window or
account tree. 41 files changed, which is too many for me to
itemize :)
* src/gnome/window-acct-tree.{c,h}: new file; the "account tree
window" is the contents of the former main window. Now you can
have as many of them open as you want. account trees and reports
are the 2 kinds of "main window children" which MDI manages.
* src/gnome/window-main-summarybar.{c,h}: new file. I moved the
summary bar stuff out of the account tree because there's one
summary bar per top-level window but possible many account trees
per top-level window.
* src/gnome/window-main.c: this is not what it used to be at all.
the main gnucash ui element is now a 'GnomeMDI'. The only menus
and toolbar items here are ones that are always visible in any
top-level window.
* src/scm/prefs/scm: acct tree prefs are treated differently (one
options obj per acct tree) and are auto-saved and restored.
* src/scm/report.scm: report options are auto saved and restored.
* src/scm/html-style-sheet.scm: so are style sheets.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3953 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/scm/html-barchart.scm: add bar & legend urls to render
* src/gnome/top-level.c: Robert Stephenson's patch for
gtkhtml & gconf
* src/gnome/gnc-html-guppi.c: fix bugs
* src/scm/html-text.scm: fix bug
* src/scm/report/portfolio.scm: work on display
* src/scm/report/stylesheet-plain.scm: add styles for totals
* src/scm/html-document.scm: bug fix
* src/scm/report/taxtxf.scm: more work
* src/engine/gnc-commodity.c (count_coms): use
GNC_COMMODITY_NS_ISO instead of the string const.
* src/engine/rpc/Makefile.am: use GLIB_CFLAGS instead of
hard-coded include dir.
* src/engine/rpc/RpcUtils.c (rpcend_build_gnccommoditylist): use
GNC_COMMODITY_NS_ISO instead of the string const. Fix compiler
warning.
* src/SplitLedger.c: fix bug
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3857 57a11ea4-9604-0410-9ed3-97b8803252fd
* gnc-network.{c,h}: new files. Functions for user registration
and authentication.
* gnc-gpg.c: fix bugs. make gpg operations optionally
asynchronous via gdk_input_add().
* gnc-html.c: fix URL base name handling. Rework processing of
http requests.
* gnc-http.c: memory management in gnome_http. Still some
memory leaks in there, I think.
* gnc-html-actions.{c,h}: remove files. Content moved into
gnc-network.
* prefs.scm: Add hidden preference for GnuCash Network user ID.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3814 57a11ea4-9604-0410-9ed3-97b8803252fd
* doc/sgml/C/xacc-about.sgml: update author info
* src/gnome/top-level.c: add VERSION arg to gnome_init
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3797 57a11ea4-9604-0410-9ed3-97b8803252fd
* summary: separate the HTML and HTTP processing functions into
different files to facilitate reuse. Modularize much of the
gnucash-specific behavior of the HTML code (<object> and form
submission) to use run-time-expandable bahavior tables. Add the
gnc-action: mechanism for installing form submission handlers.
* src/gnome/gng-gpg.c: initialize gnc-html handler for crypted
HTML objects. Remove all mention of GPG from gnc-html.c
* src/gnome/gnc-html-actions.c: new file. Add a simple form
submission action (action=gnc-action:gnc-info/form?CGI_URL) to
test submit and action processing. This is useless ATM. Some of
the stuff in the privacy comments is unimplemented yet.
* src/gnome/gnc-html-guppi.c: move all Guppi references from
gnc-html.c into a separate file, with an initializer for
the Guppi <object> tags.
* src/gnome/gnc-html.c: get rid of SSL references; all that stuff
is now in gnc-http.c. Restructure to use gnc-http instead of
ghttp directly. Finish GET and POST default handlers, and add
handler lookup/install mechanism for gnc-action: actions. crib
urlencoding function from gtkhtml guts.
* src/gnome/gnc-http.c: new file. Move HTTP stuff here. Finish
POST handling.
* src/gnome/top-level.c: add calls to Guppi, GPG, and gnc-html
init functions. These calls will eventually go into loadable
module startup functions, when we get loadable modules.
* src/scm/html-text.scm: Add html-markup/format.
(html-markup/format "%a %a %a %a" 1 2 3 4) does what you'd expect,
even if the non-format args are html-markup objects.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3759 57a11ea4-9604-0410-9ed3-97b8803252fd
handler for checking backend events.
* src/engine/gnc-book.{ch}: add api calls to use backend
event hooks.
* src/engine/BackendP.h (struct _backend ): add events_pending
and process_events callbacks.
* src/scm/command-line.scm: extend usage command with argument
list
* src/pixmaps/Makefile.am: switch splash graphics
* src/gnome/gnc-splash.c (gnc_show_splash_screen): add a border.
use new graphic.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3758 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/top-level.c (gnucash_ui_init): show splash screen
* src/gnome/gnc-splash.{ch}: splash screen functionality
* src/gnome/dialog-utils.{ch} (gnc_get_pixmap): new function
* src/gnc-dir.h.in: add header file with directory info
* src/guile/Makefile.am: use BUILT_SOURCES for *.in sources
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3746 57a11ea4-9604-0410-9ed3-97b8803252fd
* first iteration of pricedb: we should preserve quotes from old
binfiles now (rather than throwing it away during the conversion),
and we can read/write the pricedb as XML.
* added configure --enable-error-on-warning -- developers, please
use this.
* add fancier TAGS handling -- we now track file additions/deletions
dynamically.
* add g_hash_table_key_value_pairs: returns a GSList of all the key
value pairs in a given hash table so you can manipulate them.
add g_hash_table_kv_pair_free_gfunc: g_slist_foreach helper for
deleting key value hash pairs when you're finished with the
results from g_hash_table_key_value_pairs. You'll still need to
call g_slist_free as well to delete the spine of the list.
* continue migration to using backend for all IO and switching from
top-level Group to top level GNCBook.
* switch from const gnc_commodity to gnc_commodity in many places,
after consultation with Bill.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3684 57a11ea4-9604-0410-9ed3-97b8803252fd
1) More meta data updates (.cvsignore updates, debian/* updates,
gnucash.lsm)
2) Changes to make-gnucash-patch.in. I like the changes, but I don't
know whether they would be universally liked, so pay attention to
this one. Changes include:
a) check out compared source from cvs
b) use .cvsignore files to get a large part of the --exclude list.
c) Keep track of past patches by not automatically overwriting old
patches and put the patches in a directory to keep things neat.
3) Refactoring in src/engine/Transaction.c to remove the redundant
code setting dates in transactions.
4) remove all the #if 0 blocks in src/engine/io-gnc{bin,xml}* (helped
my see things more clearly when looking at the code. Again ignore
it if this is inappropriate.)
5) append emacs local variable settings stuff to save file so it's
known as an xml file.
6) Patch to cleanup startup some more.
a) src/gnome/top-level.c: don't run load-account-file, split up
startup into a couple of functions.
b) src/gnome/window-main.h; src/gulie/gnc.gwp: add the new functions
c) src/scm/main.scm: do the new startup sequence.
d) All this so in a batch environment you can start up the gui
system without bringing up the default window.
7) src/scm/report/budget-report.scm: some refactoring/cleanup done
while looking at the code. Nothing functional different (at least
there shouldn't be.)
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3320 57a11ea4-9604-0410-9ed3-97b8803252fd