*** empty log message ***

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@2063 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Dave Peticolas 2000-03-07 09:51:35 +00:00
parent 92f50014ea
commit 1912f86f5a
14 changed files with 447 additions and 102 deletions

View File

@ -1,5 +1,9 @@
Version history:
------- -------
1.3.1 - 05 March 2000
o qif fixes
o French documentation
1.3.0 - 28 February 2000
o many, many, many changes

View File

@ -1,5 +1,21 @@
2000-03-07 Dave Peticolas <peticola@cs.ucdavis.edu>
* src/scm/report/transaction-report.scm: a few bug fixes.
* src/gnome/window-main.c (gnc_ui_delete_account): destroy the
windows *then* remove the account from the tree. Sometimes,
destroying the window can result in a refresh, which will do
strange things if we have already removed the account from the
tree.
2000-03-06 Dave Peticolas <peticola@cs.ucdavis.edu>
* src/gnome/window-reconcile.c (recnRefresh): resize the window
* src/FileDialog.c (gncPostFileOpen): set the busy cursor while
reading the file.
(gncFileSave): ditto.
* src/register/gnome/gnucash-sheet.c
(gnucash_sheet_update_adjustments): set the step increment.

View File

@ -1,3 +1,12 @@
************ Unstabile Version ******************
Alle Versionen der 1.3.x Serie von GnuCash sind experimentelle
Entwicklungsversionen. Sie koennen normal funktionieren, muessen aber
nicht. Benutzung auf eigene Gefahr !
Die letzte stabile Version war gnucash-1.2.5.
Die naechste stabile Version wird gnucash-1.4.x sein.
##############################################
GnuCash
-------
@ -23,11 +32,11 @@ Funktionen von GnuCash sind :
aktuelle Stand kann einzeln (eine Aktie = ein Konto)
oder als Portfolio (alle Aktien = ein Konto)
verwaltet werden.
- Verschiedene Waehrungen und Waehrungshandel :
- Verschiedene Waehrungen und Devisenhandel :
Mehrere Waehrungen werden unterstuetzt und koennen
ge- und verkauft werden. Waehrungsbewegungen auf
den Konten werden ausgeglichen.(Einige Teile von
Waehrungshandel sind aber noch nicht vollstaendig
Devisenhandel sind aber noch nicht vollstaendig
implementiert)
- Import von Dateien im Quicken Interchange Format
(QIF).
@ -66,16 +75,78 @@ Home Page:
----------
http://gnucash.org
Original X-Accountant Homepage:
http://www.cs.hmc.edu/~rclark/xacc
Fertig ausfuehrbare Dateien:
http://www.gnucash.org/pub/gnucash/redhat-6.x/1.2.5/
Entwicklungs Versionen:
http://www.gnucash.org/source_code.php3
Ausführen von GnuCash:
----------------------
Nur die Motif-Version von GnuCash funktioniert zur Zeit. Die Gnome Version
gibt einen Ueberblick ueber die Funktionen, aber die meisten funktionieren
nicht. Die qt-Version kann zur Zeit nicht uebersetzt werden, die meisten
Die Motif-Version von GnuCash ist die letzte stabile Version, wird zur Zeit
aber nicht mehr aktiv weitentwickelt.
Die Gnome Version dagegen schon ;-) Allerdings ist sie noch nicht so stabil, wie es
wuenschenswert waere.
Die qt-Version kann zur Zeit nicht uebersetzt werden, die meisten
Funktionen fehlen. Weiter unten sind Hinweise fuer andere Betriebssysteme
als Linux/*BSD .
Die folgenden Pakete muessen installiert sein, um die Motif-Version starten
zu koennen :
guile -- Ist die Haupterweiterungs- und Skriptsprache.
Wird extensiv bei Initialisierung und Start benutzt.
Version 1.3 oder hoeher wird benoetigt. Guile-1.3-7.rpm
funktioniert.
Motif oder Lesstif --
Entweder ein kommerzielles Motif oder die freie Software-Variante
Lesstif. Bei Benutzung der kommerziellen Variante achten sie darauf,
eine Version zu bekommen, die mit ihrer glibc und libXt-Version
kompatibel ist.
Lesstif arbeitet meist, aber eben nicht immer. Hier unsere Erfahrungen :
Lesstif 0.81 funktioniert
Lesstif 0.82 funktioniert nicht
Lesstif 0.83 funktioniert ... aber produziert einen schnell blinkenden
Cursor ...
Lesstif 0.86.0 soll angeblich funktionieren..
Lesstif 0.86.5 funktioniert nicht -> Crash.
Lesstif 0.86.9 funktioniert... aber einige Menues werden nur 2 Pixel hoch.
Lesstif 0.87.0: f. nicht. (missing symbols for XmeDrawShadows, etc.)
Lesstif 0.88.1 funktioniert
Lesstif 0.89.0 funktioniert
XmHTML -- Stellt HTML-Anzeigefaehigkeit bereit.
Wird fuer Hilfe-Funktionen und Berihte gebraucht.
Version 1.1.4 oder hoeher.
http://www.llp.fu-berlin.de/lsoft/F/5/XMHTML.html
http://www.xs4all.nl/~ripley/XmHTML/XmHTML.html
ftp://ftp.ultra.net/pub/eugene/RPMS/i386/XmHTML-1.1.5-1.i386.rpm
ftp://ftp.ultra.net/pub/eugene/SRPMS/XmHTML-1.1.5-1.src.rpm
Hinweis: Einige Versionen wurden mit Motif kompiliert. Wenn sie
mit Lesstif benutzt werden, kann es zu einem
"undefined symbol XmeDrawShadows" Fehler kommen. Es gibt mehrere
Loesungen, die einfachste ist, den XmHTML-Quellcode selber zu
kompilieren.
slib -- scheme Bibliotheken fuer guile. Version slib2c4 oder hoeher.
libpng -- portable network graphics Bibliothek. Alle Versionen.
libjpeg -- JPEG image handling Bibliothek. Alle Versionen.
libz -- Pack-Bibliothek. Alle Versionen.
xpm -- X Pixmap Erweiterung. Alle Versionen.
Um einige der Funktionen wie Berichte und Herunterladen von Aktienkursen
nutzen zu koennen, muessen die folgenden Pakete installiert sein :
(Natuerlich zusaetzlich zu den Paketen, die benoetigt werden ,um GnuCash
@ -84,7 +155,7 @@ Hinweise zu "Uebersetzen und Installieren" weiter unten !
RPM's sind teilweise hier erhaeltlich :
http://rufus.w3.org/linux/
slib -- scheme libraries fuerr guile. Version slib2c0 oder hoeher .
slib -- scheme Bibliotheken fuer guile. Version slib2c4 oder hoeher .
perl -- Fast jede Version von perl5 sollte funktionieren. Ich habe perl-5.004
eperl -- Fast jede Version von eperl sollte funktionieren. Ich habe eperl-2.2.14
@ -103,19 +174,95 @@ perl-HTML/HTML-Parser-2.20
http://www.cpan.org/CPAN.html
Die Binärdistribution beinhaltet zwei Dateien: 'gnucash.bin' und
'gnucash-static.bin'. Erstere benötigt eine (kommerziell erhältliche)
Laufzeitbibliothek für Motif; die zweite ist statisch mit Motif
gelinkt. Wenn Sie Motif installiert haben, starten sie einfach xacc;
wenn nicht müssen sie erst 'gnucash-static.bin' auf 'gnucash.bin' kopieren.
Folgende Pakete muessen installiert sein, um GnuCash Gnome Version
zu starten:
gnome-libs -- Version 1.0.40 oder hoeher. Diese Bibliotheken brauchen
viele andere Bibliotheken zur Unterstuetzung, z.B.:
gtk und glib.
guile -- wie bei Motif
slib -- wie bei Motif
Starten von GnuCash:
--------------------
GnuCash kann von der Kommandozeile aus gestartet werden, und zwar einfach
mit "gnucash" oder mit "gnucash <filename>", wobei filename der Name eines
gespeicherten Gnucash-Daten-Files sein muss.
*.dat-Dateien koennen mit "Datei oeffnen" eingelesen werden.
*.qif-Dateien muessen mit "QIF-Datei importieren" eingelesen werden.
Von der Kommandozeile wird das Programm mit 'gnucash' oder 'gnucash
<dateiname>' gestartet, wobei '<dateiname>' eine gnucash-Kontodatei
ist. Beispieldateien befinden sich im Unterverzeichnis 'data'. Dateien
mit der Endung '.dat' können mit dem Menüeintrag 'Datei Öffnen'
geladen werden, Dateien mit der Endug '.qif' sind im Quicken Import
Format und werden mit dem Menüeintrag 'QIF Importieren' geladen.
GnuCash reagiert auf folgende Umgebungs-Variablen :
GNC_RUN_AS_SHELL - GnuCash startet in eine guile-shell, alle
gnuCash-Funktionen sind geladen. Von hier koennen sie normal
starten :
GNC_RUN_AS_SHELL=t ./gnucash
guile> (primitive-load (getenv "GNC_BOOTSTRAP_SCM"))
guile> (gnc:load "startup.scm")
guile> (gnc:main)
Das ist das selbe, als ob man keine Umgebungs-Variablen benutzt.
Nuetzlich, wenn man neue .scm-Dateien schreibt und testet.
GNC_BOOTSTRAP_SCM - Der Ort der beim Start benutzten Scheme Algorithmen.
GNC_SCM_LOAD_PATH - Enthaelt den Pfad zu Scheme und ueberstimmt den
Standard-Pfad. Sollte eine saubere Scheme Zeichenkette sein. Jedes Element
kann eine Zeichenkette sein, die ein Verzeichnis repraesentiert,
das Symbol 'standard , das zum vollen Pfad wird, oder 'current.
GNC_DEBUG - Debugging einschalten. Dadurch wird das Debugging eher gestartet,
als beim normalen Start-Prozess
Internationalization:
---------------------
Es gibt Ausgabe-Files fuer Franzoesisch und Deutsch.
Diese werden ueber Umgebungsvariablen aktiviert.
Z.B.:
Francais, en bash:
export LANG=fr_FR
export LC_ALL=fr_FR
export LINGUAS=fr_FR
Francais, en tcsh:
setenv LANG fr_FR
setenv LC_ALL fr_FR
setenv LINGUAS fr_FR
Deutsche Version:
export LANG=de_DE
export LC_ALL=de_DE
export LINGUAS=de_DE
Weitere Moeglichekiten, die eigentlich funktionieren,
obwohl noch dran gearbeitet wird :
en_US
en_GB
fr_CH
de_CH
Weitere Werkzeuge :
-------------------
Ein Tool, um Ascii-Berichte aus gnucash/xacc Dateien zu extrahieren
kann man hier herunterladen :
http://www.zeta.org.au/~grahamc/xacc_rpts.html.
Ein Tool um Quicken Dateien aufzuraeumen und zu importieren :
(noch nicht da..).
Übersetzung und Installation
@ -124,15 +271,59 @@ Format und werden mit dem Men
Diese Schritte sind nur für die Sourcedistribution erforderlich, nicht
für die Binärdistribution.
Nur beim Uebersetzen von GnuCash braucht man zusaetzlich die folgenden
Pakete:
libtool -- Um unsere interne Version von g-wrap zu uebersetzen, die
unsere guile-C 'wrappers' enthaelt.
Erhaeltlich bei ftp://ftp.gnu.org/gnu.
RPM's und deb's sind in ihrer Betriebssystem-Distribution.
SWIG -- Um perl 'wrapper' automatisch zu generieren.
Erhaeltlich bei : www.swig.org. Version 1.1p5 oder hoeher
Normalerweise wird GnuCash wie folgt übersetzt und installiert:
# ./configure
# make
# make install
Um deutsche oder franzoesische Versionen zu uebersetzen, oder das
europaeische Datumsformat zu aktivieren, muessen sie den Inhalt des
/include -Verzeichnis untersuchen und modifizieren.
Um deutsche oder franzoesische Versionen zu uebersetzen, muss die
Umgebungsvariable entsprechend gesetzt sein.
Es koennen Motif, Gnome, oder Qt Versionen erzeugt werden. Zur Zeit ist die
Motif Version die stabilste, fehleraermste, korrekteste.
Die gtk/gnome-Version kann uebersetzt werden, und wird aktiv weiterentwickelt, sie
reicht aber noch nicht an die Stabilitaet der Motif-Version heran. Sie hat
aber bedeutend mehr Features.
Die Qt Version ist vermutlich nicht uebersetzbar.
Je nach make target, kommt danach folgendes heraus :
gnucash.motif
gnucash.motif.static
gnucash.gnome
gnucash.gnome.static
gnucash.qt
Die 'static' Version linkt die benoetigten Bibliotheken statisch.
gnucash.motif.static ist zum Beispiel praktisch, wenn man gegen
eine kommerzielle Version von Motif uebersetzt und diese Version
der Allgemeinheit zur Verfuegung stellt.
Welche Version erzeugt wird, haengt letzlich vom lokalen
gnucash.bin-Link ab, so dass man mit Hilfe des lokalen .gnucash -Skripts
immer pruefen kann, welche Version zuletzt erzeugt wurde.
Dieser Link stellt auch sicher, dass die Files aus dem Source-Verzeichnis
genutzt werdden.
The ./gnucash script
also handles making sure that you're using files from the source dir
rather than an install tree just like the old ./xacc script did.
"make install" fuehrt zu einer normalen FSSTND /usr/ oder /usr/local/
Installation bei der alles andere sich in /foo/gnucash/*-Verzeichnissen
@ -159,6 +350,9 @@ Beispiele einiger weiterer Konfigurations-Optionen:
--with-xmhtml-includes=/home/rlb/XmHTML-1.1.5/include\
--with-xmhtml-libraries=/home/rlb/XmHTML-1.1.5/src
Flag --with-gtk-config : Wegen der GTK-Philosophie am besten *nur*
den Ort des Config-Programms angeben, und es dem Programm ueberlassen,
die richtigen CFLAG und XLIBS-Werte auszugeben.
Runtime und Installations-Orte sind verschieden . Der --prefix
, den sie angeben legt fest, wo das lauffaehige Programm waehrend
@ -192,22 +386,34 @@ general ledger Hauptbuch
Unterstuetzte Betriebssysteme :
-------------------------------
GnuCash Version 1.2.x arbeitet unter folgenden Systemen :
GnuCash Version 1.3.x arbeitet unter folgenden Systemen :
Linux 2.x.x -- Intel
GNU/Linux -- Intel
FreeBSD -- Intel
OpenBSD -- Intel
Download Sites:
---------------
Xacc-1.0.18, der Vorgaenger arbeitet mit diesen Systemen :
Slackware 3.4 -- Intel w/ Mootif (OSF Motif 2.0.1)
SGI IRIX -- MIPS
IBM AIX 4.1.5 -- RS/6000 http://www-frec.bull.com/
Unixware 7 -- Intel
SCO OpenServer 5.0.4 -- Intel
Solaris -- Sparc
Siehe ftp://ftp.gnucash.org/pub/xacc (high-bandwidth)
oder http://linas.org/linux/gnucash (slow-www )
fuer fertig kompilierte Versionen.
ftp://ftp.gnucash.org/pub/
Weitere Download Sites:
-----------------------
Fertige Versionen und Packete unter :
IBM AIX 4.1.5
-- SMIT-installable images
http://www.bull.de/pub/
@ -236,12 +442,94 @@ Das Passwort ist "guest"
Um eine Kopie des Quellcodes aus dem gnucash-1.2 stable production
Baum zu bekommen (stabile Version):
cvs -d :pserver:cvs@cvs.gnucash.org:/home/cvs/cvsroot checkout -P -rxacc-12-patch gnucash
cvs -z3 -Pd :pserver:cvs@cvs.gnucash.org:/home/cvs/cvsroot checkout -P -rxacc-12-patch gnucash
Um eine Kopie des Quellcodes aus dem experimentellen Entwickler-Baum
zu bekommen (unstabile Version):
cvs -d :pserver:cvs@cvs.gnucash.org:/home/cvs/cvsroot checkout -P -rHEAD gnucash
cvs -z3 -Pd :pserver:cvs@cvs.gnucash.org:/home/cvs/cvsroot checkout -P -rHEAD gnucash
An GnuCash mitentwickeln :
--------------------------
Bevor Sie an GnuCash mitentickeln , sollten sie folgendes tun:
1. Lesen von : src/coding-style.txt ,um die Richtlinien kennzulernen.
2. Viele der Verzeichnisse unter 'src' enthalten desing.txt-Dateien,
die viele Aspekte des GnuCash-Designs erklaeren. Auch lesen.
3. Die Gnucash development mailing Liste ueberfliegen, das Archiv ist
auf der GnuCash-Website.
4. Abonnieren der GnuCash development mailing Liste. Details dazu auf
der Website.
Einen Patch einsenden
---------------------
Wenn sie etwas Arebit geleistet haben, wollen sie ihr Ergebnis
anderen zur Verfuegung stellen. Dazu senden sie einen Patch ein.
Es gibt ein Perl-Skript in Gnucash, das diesen Patch fuer sie
erzeugen kann.
'make-gnucash-patch' wird so benutzt:
Als erstes die Entwicklungsverzeichnisse wie folgt aufsetzen :
< GnuCash home development directory >
|
|---- < directory containing original GnuCash sources >
|
|---- < directory containing your modified GnuCash sources >
Ein konkrete Beispiel koennte wie folgt aussehen :
/home/me/gnucash
|
|---- /home/me/gnucash/gnucash.pristine (original sources)
|
|---- /home/me/gnucash/gnucash.mywork (original sources + my edits)
Kopieren des 'make-gnucash-patch'-Skripts in das Haupt-Entwicklungsverzeichnis.
Danach die folgenden Variablen veraendern, damit diese die Namen ihrer
Verzeichnisse enthalten :(am obigen Beispiel orientiert)
my $old = 'gnucash.pristine';
my $new = 'gnucash.mywork';
my $gnc_home = '/home/me/gnucash';
Jetzt das Skript in Gang setzen. Hinweis: Das Skript benoetigt die
Programme 'makepatch', 'gzip', 'diff', und 'uuencode'
(und natuerlich 'perl') um zu funktionieren.
Drei Dateien werden erzeugt, wenn man das Skript laufen laesst :
gnc.diff - Eine Ascii Text-DAtei, die die Unterschiede zwischen
den Original Sourcen und den von ihnen bearbeiteten enthaelt.
Am Schluss ist eine Liste, die die Files enthaelt, die
hinzugefuegt, veraendert oder geloescht wurden.
Bitte untersuchen sie dieses File !(insbesondere die Liste
am Schluss) um sicherzustellen, dass alle Aenderungen in der
Datei vorhanden sind.
Diese Datei nicht einschicken !
gnucash.diff.gz - Die gzipp'te Version der obigen Datei.
Nicht einschicken!
gnucash.diff.gz.uue - Die uuencoded (ascii-encoded) Version
der obigen Datei.
Dies ist die Datei, die eingeschickt werden muss.
gnucash.diff.gz.uue an gnucash-patches@gnucash.org per E-Mail schicken.
Wie sonst.. :-)
Vielen Dank schon mal im Vorraus !
Haupt-Entwickler:
@ -277,47 +565,74 @@ und Konfigurierbarkeit auch seine Sache.
Dirk Schoenberger <schoenberger@signsoft.com> arbeitet an der Qt/KDE Version
Fixes & Patches:
----------------
Andrew Arensburger <arensb@cfar.umd.edu> for FreeBSD & other patches
Matt Armstrong <matt_armstrong@bigfoot.com> for misc fixes
Fred Baube <fred@moremagic.com> for attempted Java port/MoneyDance
Christopher B. Browne <cbbrowne@hex.net> for perl stock scripts
Per Bojsen <bojsen@worldnet.att.net> several core dump fixes
Christopher B. Browne <cbbrowne@hex.net> for perl, scheme scripts
Graham Chapman <grahamc@zeta.org.au> for the xacc-rpts addon package
George Chen <georgec@sco.com> for MS-Money QIF's & fixes
Albert Chin-A-Young <china@thewrittenword.com> configure.in patch
Jeremey Collins <jcollins@gnucash.org> for GnoMoney & GTK port
Patrick Condron <pcondon@rackspace.com> for webserver and T1 connection.
Ciaran Deignan <Ciaran.Deignan@bull.net> for AIX binary version
Tyson Dowd <tyson@tyse.net> for config/make patches & debian maint.
Koen D'Hondt <ripley@xs4all.nl> for Solaris patches to XmHTML
Bob Drzyzgula <bob@mostly.com> for budgeting design notes
Jan-Uwe Finck <ju_finck@mail.netwave.de> for German message translation
Jan-Uwe Finck <Jan-Uwe.Finck@bigfoot.de> for German message translation
Ron Forrester <rjf@aracnet.com> for gnome patches
Dave Freese <DFreese@osc.uscg.mil> for leap-year fix
Otto Hammersmith <otto@bug.redhat.com> for RedHat RPM version
Alexandru Harsanyi <haral@codec.ro> for misc core dumps & lockups.
Alexandru Harsanyi <haral@codec.ro> for core dumps, lockups, gtk work.
Jon K}re Hellan <jk@isdn-a33.itea.ntnu.no> misc core dump fixes
Prakash Kailasa <PrakashK@bigfoot.com> for gnome build fixes
Ben Kelly <ben.kelly@ieee.org> for motif menu bug fix, core dump fixes
Tom Kludy <tkludy@csd.sgi.com> for SGI Irix port
Sven Kuenzler <sk@xgm.de> for SuSE README file
Graham Leggett <minfrin@sharp.fm> for fixing a hang
Ted Lemon <mellon@andare.fugue.com> for NetBSD port
Yannick Le Ny <y-le-ny@ifrance.com> pour la traduction en francais
Grant Likely <glikely@nortelnetworks.com> gnome and engine patches
Heath Martin <martinh@pegasus.cc.ucf.edu> gnome and register patches
Matt Martin <mgmartin@abacusnet.net> guile error handling code
Robert Graham Merkel <rgmerk@mira.net> reporting, gnome, and config patches.
Tim Mooney <mooney@dogbert.cc.ndsu.NoDak.edu> port to alpha-dec-osf4.0f
G. Allen Morris III <gam3@ann.softgams.com> for QIF core dump
Peter Norton <spacey@inch.com> for a valiant attempt at a GTK port
OmNiBuS <webmaster@obsidian.uia.net> web site graphics & content
Myroslav Opyr <mopyr@IPM.Lviv.UA> for misc patches
Dave Peticolas <peticola@morpheus.cs.ucdavis.edu> extensive intelligent patches
Laurent P{'e}lecq <laurent.pelecq@wanadoo.fr> i18n patches with gettext
Alain Peyrat <Alain.Peyrat@nmu.alcatel.fr> for configure.in patches
Peter Pointner <peter@wuzel.m.isar.de> QIF import fixes, Qt patches
Gavin Porter <maufk@csv.warwick.ac.uk> for euro style dates
Ron Record <rr@sco.com> for SCO Unixware & OpenServer binaries
Jan Schrage <jan.schrage@urz.uni-heidelberg.de> documentation patches
Christopher Seawood <cls@seawood.org> for XbaeMatrix core dump
Mike Simons <msimons@fsimons01.erols.com> misc configure.in patches
Richard Skelton <rich@brake.demon.co.uk> for Solaris cleanup
Henning Spruth <spruth@bigfoot.com> for German text & euro date rework
Diane Trout <detrout@earthlink.net> scheme qif import patch
Rob Walker <rob@valinux.com> guile and register patches
Ken Yamaguchi <gooch@ic.EECS.Berkeley.EDU> QIF import fixes; MYM import
... and I am sure that I have missed many others ...
Stand : 29.07.99
Stand : 05.03.2000
P.S.: Dieses README ist eine Uebersetzung der englischen Version, und ist
damit eher selten auf aktuellem Stand, da diese den aktuellen Entwicklungen
angepasst wird.
Im Zweifel also bitte die englische Original-Version zu Rate ziehen.
Was Richtigkeit, Eleganz und Anwendbarkeit angeht, uebernehme ich keine Gewaehr.
Flames an /dev/null, 'Bug'-Reports, Vorschlaege und 'Patches' fuer dieses
README an Jan-Uwe.Finck@bigfoot.de und/oder an patch@gnucash.org.
Viel Spass !

View File

@ -4,3 +4,4 @@ Comment=GnuCash Personal Finance
Exec=gnucash
Terminal=0
Type=Application
Icon=gnome-money.png

View File

@ -2,7 +2,7 @@
* FileDialog.c -- file-handling utility dialogs for gnucash. *
* *
* Copyright (C) 1997 Robin D. Clark *
* Copyright (C) 1998, 1999 Linas Vepstas *
* Copyright (C) 1998, 1999,2000 Linas Vepstas *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as *
@ -180,6 +180,7 @@ gncPostFileOpen (const char * filename)
int io_error, uh_oh=0;
char buf[BUFSIZE];
AccountGroup *newgrp;
gncUIWidget app;
char * newfile;
if (!filename) return;
@ -199,9 +200,12 @@ gncPostFileOpen (const char * filename)
/* disable logging while we move over to the new set of accounts to
* edit; the mass deletetion of accounts and transactions during
* switchover is not something we want to keep in a journal. */
app = gnc_get_ui_data();
gnc_set_busy_cursor(app);
xaccLogDisable();
newgrp = xaccSessionBeginFile (newsess, newfile);
xaccLogEnable();
gnc_unset_busy_cursor(app);
/* check for session errors, put up appropriate dialog */
SHOW_LOCK_ERR_MSG (newsess);
@ -347,6 +351,7 @@ gncFileSave (void)
char * newfile;
char buf[BUFSIZE];
int io_error, norr, uh_oh = 0;
gncUIWidget app;
/* hack alert -- Somehow make sure all in-progress edits get committed! */
/* if no session exists, then we don't have a filename/path
@ -359,7 +364,10 @@ gncFileSave (void)
}
/* use the current session to save to file */
app = gnc_get_ui_data();
gnc_set_busy_cursor(app);
xaccSessionSave (current_session);
gnc_unset_busy_cursor(app);
/* in theory, no error should have occured, but just in case,
* we're gonna check and handle ... */

View File

@ -2,7 +2,7 @@
* FileIO.c -- read from and writing to a datafile for gnucash *
* (GnuCash/X-Accountant) *
* Copyright (C) 1997 Robin D. Clark *
* Copyright (C) 1997, 1998, 1999 Linas Vepstas *
* Copyright (C) 1997, 1998, 1999,2000 Linas Vepstas *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as *
@ -380,7 +380,7 @@ xaccReadAccountGroup( int fd )
}
/********************************************************************\
* readGroup *
* readGroup *
* reads in a group of accounts *
* *
* Args: *

View File

@ -7,7 +7,7 @@
*
* HISTORY:
* Created by Linas Vepstas December 1998
* Copyright (c) 1998 Linas Vepstas
* Copyright (c) 1998-2000 Linas Vepstas
*/
/********************************************************************\

View File

@ -71,7 +71,7 @@ gnc_ui_set_cursor (GdkWindow *win, int type)
void
gnc_set_busy_cursor(GtkWidget *w)
{
if (w)
if (w != NULL)
gnc_ui_set_cursor(w->window, GNC_CURSOR_BUSY);
}
@ -86,7 +86,7 @@ gnc_set_busy_cursor(GtkWidget *w)
void
gnc_unset_busy_cursor(GtkWidget *w)
{
if (w)
if (w != NULL)
gnc_ui_set_cursor(w->window, GNC_CURSOR_NORMAL);
}

View File

@ -2,7 +2,7 @@
* window-main.c -- the main window, and associated helper functions*
* and callback functions for GnuCash *
* Copyright (C) 1998,1999 Jeremy Collins *
* Copyright (C) 1998,1999 Linas Vepstas *
* Copyright (C) 1998,1999,2000 Linas Vepstas *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as *
@ -184,12 +184,12 @@ gnc_ui_add_account ( GtkWidget *widget, gpointer data )
static void
gnc_ui_delete_account ( Account *account )
{
/* Step 1: Remove the account from all trees */
gnc_account_tree_remove_account_all(account);
/* Step 2: Delete associated windows */
/* Step 1: Delete associated windows */
xaccAccountWindowDestroy(account);
/* Step 2: Remove the account from all trees */
gnc_account_tree_remove_account_all(account);
/* Step 3: Delete the actual account */
xaccRemoveAccount(account);
xaccFreeAccount(account);

View File

@ -131,6 +131,8 @@ recnRefresh(Account *account)
gnc_recn_set_window_name(recnData);
recnRecalculateBalance(recnData);
gtk_widget_queue_resize(recnData->window);
}

View File

@ -2202,7 +2202,6 @@ gnucash_sheet_resize (GnucashSheet *sheet)
diff_rows = sheet->table->num_virt_rows - num_virt_rows;
sheet->num_virt_cols = 1;
if (diff_rows < 0) {
/* we need to shrink the number of rows */

View File

@ -1,8 +1,37 @@
;;; $ID$
;;; $Id$
;;; Reporting utilities
(gnc:support "report-utilities.scm")
(define (gnc:account-separator-char)
(let ((option (gnc:lookup-option gnc:*options-entries*
"General" "Account Separator")))
(if option
(case (gnc:option-value option)
((colon) ":")
((slash) "/")
((backslash) "\\")
((dash) "-")
((period) ".")
(else ":"))
":")))
;; get a full account name
(define (gnc:account-get-full-name account)
(let ((separator (gnc:account-separator-char)))
(cond ((pointer-token-null? account) "")
(else
(let ((parent-name
(gnc:account-get-full-name
(gnc:group-get-parent
(gnc:account-get-parent account)))))
(if (string=? parent-name "")
(gnc:account-get-name account)
(string-append
parent-name
separator
(gnc:account-get-name account))))))))
(define (gnc:filter-list the-list predicate)
(cond ((not (list? the-list))
(gnc:error("Attempted to filter a non-list object")))

View File

@ -79,7 +79,8 @@
(if (string-ci=? name budget-account-name)
(begin
(vector-set! budget-report-line 0
(+ (gnc:budget-report-get-actual budget-report-line)
(+ (gnc:budget-report-get-actual
budget-report-line)
value)))))
(gnc:budget-get-accounts budget-line)))))
@ -91,7 +92,6 @@
budget-report-line)
;; convert budget-report to an html table
(define (gnc:budget-report-to-html budget budget-report)
(let ((budget-html ()))

View File

@ -9,6 +9,7 @@
;hack alert - is this line necessary?
(gnc:depend "text-export.scm")
(gnc:depend "report-utilities.scm")
;; hack alert - possibly unecessary globals
@ -25,17 +26,15 @@
(define (gnc:set-total-outflow! x)
(set! gnc:total-outflow x))
(define gnc:tr-report-initialize-inflow-and-outflow!
(begin
(set! gnc:total-inflow 0)
(set! gnc:total-outflow 0)
#f))
(define (gnc:tr-report-initialize-inflow-and-outflow!)
(set! gnc:total-inflow 0)
(set! gnc:total-outflow 0))
;;returns a list contains elements of the-list for which predictate is
;; true
(define (gnc:filter-list the-list predicate)
(cond ((not (list? the-list))
(gnc:error("Attempted to filter a non-list object")))
(gnc:error "Attempted to filter a non-list object"))
((null? the-list) '())
((predicate (car the-list))
(cons (car the-list)
@ -47,10 +46,10 @@
(define (gnc:inorder-map the-list fn)
(cond ((not (list? the-list))
(gnc:error("Attempted to map a non-list object")))
(gnc:error "Attempted to map a non-list object"))
((not (procedure? fn))
(gnc:error("Attempted to map a non-function object to a list")))
((eq? the-list '()) '())
(gnc:error "Attempted to map a non-function object to a list"))
((null? the-list) '())
(else (cons (fn (car the-list))
(gnc:inorder-map (cdr the-list) fn)))))
@ -241,22 +240,6 @@
(define (gnc:split-get-description-from-parent split)
(gnc:transaction-get-description (gnc:split-get-parent split)))
;; get a full account name
(define (gnc:account-get-full-name account)
(cond ((pointer-token-null? account) "")
(else
(let ((parent-name
(gnc:account-get-full-name
(gnc:group-get-parent
(gnc:account-get-parent account)))))
(if (string=? parent-name "")
(gnc:account-get-name account)
(string-append
parent-name
":"
(gnc:account-get-name account)))))))
;; get the account name of a split
(define (gnc:split-get-account-name split)
(gnc:account-get-full-name (gnc:split-get-account split)))
@ -435,17 +418,12 @@
;; does not match one of the accounts
(define (gnc:tr-report-make-sub-split-filter-predicate accounts)
(lambda (sub-split)
(let ((result #t))
(for-each
(lambda (account)
(set!
result
(not
(string=?
(gnc:account-get-full-name account)
(car sub-split)))))
accounts)
result)))
(let loop
((list accounts))
(if (null? list)
#f
(or (not (equal? (gnc:account-get-name (car list)) (car sub-split)))
(loop (cdr list)))))))
;; converts a scheme split representation to a line of HTML,
;; updates the values of total-inflow and total-outflow based
@ -481,7 +459,7 @@
(cond (first (gnc:tr-report-get-memo split-scm))
(else ""))
"</TD><TD>"
(car split-sub)
(if (string? (car split-sub)) (car split-sub) "")
"</TD><TD>"
(cond ((< (cadr split-sub) 0)
(string-append
@ -495,8 +473,12 @@
(cond ((not last) "</TR>")
(else "")))))
other-splits
(append (list #t) (make-list (- (length other-splits) 1) #f))
(append (make-list (- (length other-splits) 1) #f) (list #t)))
(if (null? other-splits)
()
(append (list #t) (make-list (- (length other-splits) 1) #f)))
(if (null? other-splits)
()
(append (make-list (- (length other-splits) 1) #f) (list #t))))
(string-append
report-string
"<TD>"
@ -532,8 +514,7 @@
trep-options-generator
;; renderer
(lambda (options)
(gnc:set-total-inflow! 0)
(gnc:set-total-outflow! 0)
(gnc:tr-report-initialize-inflow-and-outflow!)
(let* ((begindate (gnc:lookup-option options "Report Options" "From"))
(enddate (gnc:lookup-option options "Report Options" "To"))
(tr-report-account-op (gnc:lookup-option options
@ -569,9 +550,8 @@
(gnc:option-value begindate)
(gnc:option-value enddate)))
(sub-split-filter-pred (gnc:tr-report-make-sub-split-filter-predicate
accounts))
accounts))
(starting-balance 0))
gnc:tr-report-initialize-inflow-and-outflow!
(if (null? accounts)
(set! report-lines
(list "<TR><TD>There are no accounts to report on.</TD></TR>"))
@ -594,9 +574,11 @@
(gnc:tr-report-make-sort-predicate
tr-report-primary-key-op tr-report-primary-order-op
tr-report-secondary-key-op tr-report-secondary-order-op)))
(let ((html-mapper (lambda (split-scm) (gnc:tr-report-split-to-html
(let ((html-mapper (lambda (split-scm) (display "in!") (newline)
(gnc:tr-report-split-to-html
split-scm
starting-balance))))
starting-balance)
(display "out!") (newline))))
(set! report-lines (gnc:inorder-map report-lines html-mapper)))
(set!
balance-line
@ -640,14 +622,3 @@
"</TD></STRONG></TR>"))))
(append prefix balance-line report-lines
inflow-outflow-line net-inflow-line suffix))))