mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
*** empty log message ***
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@2142 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
parent
75e96e2ee8
commit
47abc657dd
@ -15,6 +15,11 @@
|
||||
# OBJS is for flavor independent files
|
||||
# GNOME/MOTIF_OBJS is for flavor dependent files
|
||||
|
||||
# Clear all of the default suffix rules. They were causing a great
|
||||
# deal of agony when trying to get the .tmpl rules to work. In
|
||||
# general, we want to take charge of these for now.
|
||||
.SUFFIXES:
|
||||
|
||||
OBJS := $(addprefix obj/,${INDEP_SRCS:.c=.o})
|
||||
GNOME_OBJS := $(addprefix obj/gnome/,${COMMON_SRCS:.c=.o})
|
||||
GNOME_OBJS += $(addprefix obj/gnome/,${GNOME_SRCS:.c=.o})
|
||||
@ -32,6 +37,7 @@ endif
|
||||
QT_FLAGS :=
|
||||
|
||||
|
||||
# All c files depend on headers with the same names.
|
||||
%.c : %.h
|
||||
|
||||
# Basically take the output foo.d file and put it in the right
|
||||
|
11
Makefile.in
11
Makefile.in
@ -54,8 +54,8 @@ gnome-static: gnome.static
|
||||
qt-static: qt.static
|
||||
|
||||
build-flavor: config.status
|
||||
@cd lib; $(MAKE) ${FLAVOR}
|
||||
@cd src; $(MAKE) ${FLAVOR}
|
||||
@cd lib && ${MAKE} ${FLAVOR}
|
||||
@cd src && ${MAKE} ${FLAVOR}
|
||||
ln -sf gnucash.${FLAVOR} gnucash.bin
|
||||
(cd share && rm -f scm && ln -sf ../src/scm scm)
|
||||
|
||||
@ -101,6 +101,8 @@ qt.disable:
|
||||
echo "Qt build disabled by configure. Try configure --enable-qt"
|
||||
false
|
||||
|
||||
.PHONY: all
|
||||
|
||||
depend:
|
||||
@echo make depend is now superfluous.
|
||||
|
||||
@ -134,7 +136,8 @@ install-bin: gnucash.${FLAVOR}
|
||||
(cd ${GNC_BINDIR} && ln -sf gnucash.${FLAVOR} gnucash)
|
||||
|
||||
install:
|
||||
$(INSTALL) -d ${GNC_BINDIR} ${GNC_LIBDIR} ${GNC_DOCDIR}
|
||||
$(INSTALL) -d ${GNC_BINDIR} ${GNC_LIBDIR}
|
||||
$(INSTALL) -d ${GNC_DOCDIR} ${GNC_CONFIGDIR}
|
||||
$(INSTALL) -d ${GNC_DOCDIR}/examples ${GNC_MANDIR}/man1
|
||||
$(INSTALL) -d ${GNC_SHAREDIR} ${GNC_SHAREDIR}/html
|
||||
$(INSTALL) -d ${GNC_SHAREDIR}/html/C ${GNC_SHAREDIR}/html/C/pix
|
||||
@ -209,7 +212,7 @@ install:
|
||||
# place for this stuff ... For now, we will simply touch the one file that
|
||||
# the scheme initialization is looking for, and punt on the rest ...
|
||||
|
||||
$(INSTALL_DATA) etc/conf* ${GNC_SHAREDIR}
|
||||
$(INSTALL_DATA) etc/conf* ${GNC_CONFIGDIR}
|
||||
|
||||
$(MAKE) -C po install
|
||||
|
||||
|
@ -1,11 +1,8 @@
|
||||
# -*-makefile-*-
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
export PATH := @GUILE_BIN@:@ABSOLUTE_TOP_SRCDIR@/lib/g-wrap-install/bin/:${PATH}
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
prefix=@prefix@
|
||||
@ -23,6 +20,8 @@ sysconfdir=@sysconfdir@
|
||||
|
||||
includedir=@includedir@
|
||||
|
||||
ABSOLUTE_TOP_SRCDIR=@ABSOLUTE_TOP_SRCDIR@
|
||||
|
||||
CC = @CC@
|
||||
CXX = @CXX@
|
||||
CFLAGS = @CFLAGS@
|
||||
@ -33,7 +32,6 @@ RANLIB = @RANLIB@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
SWIG = @SWIG@
|
||||
GWRAP = @top_srcdir@/lib/g-wrap-install/bin
|
||||
PERL = @PERL@
|
||||
|
||||
CPU = @target_cpu@
|
||||
@ -51,3 +49,7 @@ GNC_MANDIR=@GNC_MANDIR@
|
||||
HAVE_PLOTUTILS=@HAVE_PLOTUTILS@
|
||||
GLIB_CONFIG_BIN=@GLIB_CONFIG_BIN@
|
||||
GNOME_CONFIG_BIN=@GNOME_CONFIG_BIN@
|
||||
|
||||
# Local Variables:
|
||||
# mode: makefile
|
||||
# End:
|
||||
|
79
configure.in
79
configure.in
@ -16,6 +16,7 @@
|
||||
# Footer - Autoconf footer stuff
|
||||
|
||||
|
||||
|
||||
### --------------------------------------------------------------------------
|
||||
### Headers
|
||||
### check for various programs, and stuff (do this first because later
|
||||
@ -40,6 +41,28 @@ AC_PROG_MAKE_SET
|
||||
|
||||
AC_CHECK_FUNCS(stpcpy)
|
||||
|
||||
### --------------------------------------------------------------------------
|
||||
### Useful POSIX shell functions
|
||||
###
|
||||
|
||||
# This has to be a variable because we need to be able to export it,
|
||||
# and POSIX shells AFAIK don't have "export -f"
|
||||
|
||||
gnc_recursively_expand_var () {
|
||||
|
||||
# Note that this function will only work for cases where any sign of
|
||||
# a $ means that there is a variable reference that can be expanded.
|
||||
# I.e. it would fail miserably for something like pattern='^bar.*$'.
|
||||
|
||||
local expanded_var=${1}
|
||||
while echo $expanded_var | grep '\$' > /dev/null
|
||||
do
|
||||
expanded_var=$(eval echo ${expanded_var})
|
||||
done
|
||||
echo $expanded_var
|
||||
}
|
||||
|
||||
|
||||
### --------------------------------------------------------------------------
|
||||
### Variables
|
||||
### Set up all the initial variable values...
|
||||
@ -81,7 +104,11 @@ AC_ARG_WITH( locale-dir,
|
||||
[ --with-locale-dir=PATH specify where to look for locale-specific information],
|
||||
LOCALE_DIR="$with_locale_dir",
|
||||
LOCALE_DIR="$prefix/share/locale")
|
||||
|
||||
GNC_EXPANDED_LOCALE_DIR=$(gnc_recursively_expand_var "${GNC_LOCALE_DIR}")
|
||||
|
||||
AC_SUBST(LOCALE_DIR)
|
||||
AC_SUBST(GNC_EXPANDED_LOCALE_DIR)
|
||||
|
||||
AC_CHECK_HEADER(locale.h, ac_cv_header_locale_h=yes, ac_cv_header_locale_h=no)
|
||||
AC_CAN_USE_GNU_GETTEXT
|
||||
@ -164,9 +191,10 @@ fi
|
||||
# for some reason the code needs both the full path and the basename.
|
||||
# these get dumped into src/guile/pathconfig.h
|
||||
|
||||
EPERL_PATH="$EPERL"
|
||||
EPERL_NAME=`basename $EPERL`
|
||||
AC_SUBST(EPERL_PATH)
|
||||
GNC_EXPANDED_EPERL_PATH=$(gnc_recursively_expand_var "${EPERL}")
|
||||
EPERL_NAME=$(basename $EPERL)
|
||||
|
||||
AC_SUBST(GNC_EXPANDED_EPERL_PATH)
|
||||
AC_SUBST(EPERL_NAME)
|
||||
|
||||
### -------------------------------------------------------------------
|
||||
@ -510,6 +538,10 @@ else
|
||||
GNC_SHAREDIR=${datadir}/gnucash
|
||||
fi
|
||||
|
||||
GNC_EXPANDED_LIBDIR=$(gnc_recursively_expand_var "${GNC_LIBDIR}")
|
||||
GNC_EXPANDED_CONFIGDIR=$(gnc_recursively_expand_var "${GNC_CONFIGDIR}")
|
||||
GNC_EXPANDED_SHAREDIR=$(gnc_recursively_expand_var "${GNC_SHAREDIR}")
|
||||
|
||||
GNC_MANDIR=${mandir}
|
||||
|
||||
AC_SUBST(GNC_DOCDIR)
|
||||
@ -518,29 +550,24 @@ AC_SUBST(GNC_LIBDIR)
|
||||
AC_SUBST(GNC_CONFIGDIR)
|
||||
AC_SUBST(GNC_SHAREDIR)
|
||||
AC_SUBST(GNC_MANDIR)
|
||||
|
||||
AC_SUBST(GNC_EXPANDED_LIBDIR)
|
||||
AC_SUBST(GNC_EXPANDED_CONFIGDIR)
|
||||
AC_SUBST(GNC_EXPANDED_SHAREDIR)
|
||||
|
||||
# HACK : inserts the path to gnucash.pm, which is used in the
|
||||
# reporting code and is defined in gnucash.h
|
||||
|
||||
GNC_RUNTIME_PERLLIBPATH=`eval echo ${GNC_LIBDIR}`
|
||||
GNC_EXPANDED_PERLLIBPATH=$(gnc_recursively_expand_var "${GNC_LIBDIR}")
|
||||
|
||||
AC_SUBST(GNC_RUNTIME_PERLLIBPATH)
|
||||
|
||||
|
||||
# The variables GNC_RUNTIME_SHAREDIR and GNC_RUNTIME_CONFIGDIR are used
|
||||
# to configure bootstrap.scm and gnucash.h. This configuration is performed
|
||||
# by Makefile.config.finish, invoked at the end of AC_OUTPUT. We have to
|
||||
# handle these separately, because they are the *runtime* (not install
|
||||
# time) defaults, and thus
|
||||
# 1) We don't want them to change if you do
|
||||
# make prefix=foo install
|
||||
# This allows you to build distributions in a separate directory.
|
||||
# 2) They are normally defined in terms of $prefix, and AC_OUPUT does
|
||||
# not do recursive substitution, i.e., if we USED AC_OUTPUT to
|
||||
# generate them, we would get ${prefix}/share/gnucash instead
|
||||
# of the fully expanded directory name.
|
||||
AC_SUBST(GNC_EXPANDED_PERLLIBPATH)
|
||||
|
||||
# Get the absolute top level directory. This is only used to add some
|
||||
# ./lib/* paths to PATH for local build binaries like gwrap. For all
|
||||
# other purposes, you should probably be using top_srcdir. configure
|
||||
# automagically provides it, but you have to be careful to set it
|
||||
# directly within each Makefile.in since it's the *relative* path to
|
||||
# the top of the source tree rather than an absolute path. You can't
|
||||
# just put it in Makefile.init.in or Makefile.common.
|
||||
|
||||
ABSOLUTE_TOP_SRCDIR=`pwd`
|
||||
AC_SUBST(ABSOLUTE_TOP_SRCDIR)
|
||||
@ -549,27 +576,31 @@ AC_CONFIG_HEADER(config.h)
|
||||
|
||||
AC_OUTPUT(Makefile
|
||||
Makefile.init
|
||||
make-gnucash-patch
|
||||
src/Makefile
|
||||
src/engine/Makefile
|
||||
src/guile/Makefile
|
||||
src/guile/gnucash.h
|
||||
src/guile/i18n.h
|
||||
src/scm/Makefile
|
||||
src/scm/bootstrap.scm
|
||||
src/g-wrap/Makefile
|
||||
src/gnome/Makefile
|
||||
src/motif/Makefile
|
||||
src/qt/Makefile
|
||||
src/quotes/gnc-prices
|
||||
src/register/Makefile
|
||||
src/register/gnome/Makefile
|
||||
src/reports/Makefile
|
||||
src/reports/pathconfig.h
|
||||
src/reports/pathconfig.h
|
||||
src/swig/Makefile
|
||||
src/swig/perl5/Makefile
|
||||
po/Makefile.in
|
||||
po/extract-macros.perl
|
||||
include/messages_i18n.h
|
||||
include/messages_i18n.h
|
||||
lib/Makefile
|
||||
lib/Xbae-4.6.2-linas/Makefile
|
||||
lib/Xbae-4.6.2-linas/src/Makefile
|
||||
lib/ComboBox-1.33/Makefile,
|
||||
chmod +x gnucash
|
||||
${MAKE-make} -f Makefile.config.finish)
|
||||
chmod a+x ./gnucash
|
||||
chmod a+x ./make-gnucash-patch)
|
||||
|
38
doc/build-system
Normal file
38
doc/build-system
Normal file
@ -0,0 +1,38 @@
|
||||
-*-text-*-
|
||||
|
||||
===========================================================================
|
||||
|
||||
Deleting .SUFFIX rules
|
||||
|
||||
While working on some other problems, I discovered that this implicit
|
||||
rule
|
||||
|
||||
% : %.tmpl
|
||||
...
|
||||
|
||||
fails for files like message_i18n.h.tmpl because some other .h
|
||||
implicit rule that's been defined is keeping this one from working. I
|
||||
could have worked around it by defining a "terminal rule" using "::"
|
||||
instead (See "Match-Anything Pattern Rules" in the make info pages),
|
||||
and in truth, :: might be more appropriate here anyway, but instead I
|
||||
used .SUFFIX: to delete all the default suffix rules. I think that we
|
||||
probably want control of this anyhow...
|
||||
|
||||
===========================================================================
|
||||
|
||||
*EXPANDED* .in file variables:
|
||||
|
||||
I've added some rules to configure.in that look like GNC_EXPANDED_*.
|
||||
These are intended for use in any non-makefile .in files. The
|
||||
difference between them and another variable of the same name
|
||||
(i.e. the difference between GNC_LIBDIR and GNC_EXPANDED_LIBDIR is
|
||||
that the latter has been expended in configure.in via
|
||||
recursively_expand(). This is critical for variables that are going
|
||||
in to non-makefiles because there's no other way for any variable
|
||||
references to get expanded. For example, what if configure were to
|
||||
assign GNC_CONFIGDIR to be "${prefix}/etc/gnucash" and then this exact
|
||||
string were substituted into gnucash.h.in or bootstrap.scm? The C
|
||||
compiler and Scheme interpreter would have no idea what to do with
|
||||
$prefix, so you'd be stuck. recursively_expand fixes this.
|
||||
|
||||
===========================================================================
|
2
gnucash
2
gnucash
@ -9,5 +9,5 @@ exec ./gnucash.bin \
|
||||
--debug \
|
||||
--share-dir ./share \
|
||||
--config-dir ./etc \
|
||||
--doc-path '("./Docs/En" "./Docs" "./Reports")' \
|
||||
--doc-path '("./doc/html/C")' \
|
||||
"$@"
|
||||
|
6
make-gnucash-patch → make-gnucash-patch.in
Executable file → Normal file
6
make-gnucash-patch → make-gnucash-patch.in
Executable file → Normal file
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/perl
|
||||
#!@PERL@
|
||||
#
|
||||
# This perl script is used to make a patch for your GnuCash
|
||||
# development work. All patches should be submitted to the
|
||||
@ -79,6 +79,10 @@ system('uuencode gnucash.diff.gz gnucash.diff.gz > gnucash.diff.gz.uue');
|
||||
|
||||
exit(0);
|
||||
|
||||
# Local Variables:
|
||||
# mode: perl
|
||||
# End:
|
||||
|
||||
__DATA__
|
||||
|
||||
obj
|
@ -147,7 +147,7 @@ ledgerIsMember (xaccLedgerDisplay *reg, Account * acc)
|
||||
|
||||
xaccLedgerDisplay *
|
||||
xaccLedgerDisplaySimple (Account *acc)
|
||||
{
|
||||
{
|
||||
xaccLedgerDisplay *retval;
|
||||
int acc_type;
|
||||
int reg_type = -1;
|
||||
@ -197,7 +197,7 @@ xaccLedgerDisplaySimple (Account *acc)
|
||||
|
||||
retval = xaccLedgerDisplayGeneral (acc, NULL, reg_type);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
|
||||
/********************************************************************\
|
||||
* xaccLedgerDisplayAccGroup *
|
||||
@ -229,8 +229,8 @@ xaccLedgerDisplayAccGroup (Account *acc)
|
||||
case CREDIT:
|
||||
case LIABILITY:
|
||||
/* if any of the sub-accounts have STOCK or MUTUAL types,
|
||||
* then we must use the PORTFOLIO type ledger. Otherise,
|
||||
* a plain old GEN_LEDGER will do. */
|
||||
* then we must use the PORTFOLIO_LEDGER ledger. Otherwise,
|
||||
* a plain old GENERAL_LEDGER will do. */
|
||||
ledger_type = GENERAL_LEDGER;
|
||||
|
||||
le = list[0];
|
||||
@ -238,7 +238,7 @@ xaccLedgerDisplayAccGroup (Account *acc)
|
||||
while (le) {
|
||||
le_type = xaccAccountGetType (le);
|
||||
if ((STOCK == le_type) || (MUTUAL == le_type)) {
|
||||
ledger_type = PORTFOLIO;
|
||||
ledger_type = PORTFOLIO_LEDGER;
|
||||
}
|
||||
n++;
|
||||
le = list[n];
|
||||
@ -247,9 +247,9 @@ xaccLedgerDisplayAccGroup (Account *acc)
|
||||
|
||||
case STOCK:
|
||||
case MUTUAL:
|
||||
ledger_type = PORTFOLIO;
|
||||
ledger_type = PORTFOLIO_LEDGER;
|
||||
break;
|
||||
|
||||
|
||||
case INCOME:
|
||||
case EXPENSE:
|
||||
ledger_type = INCOME_LEDGER;
|
||||
@ -314,7 +314,8 @@ xaccLedgerDisplaySetHelp(void *user_data, const char *help_str)
|
||||
\********************************************************************/
|
||||
|
||||
xaccLedgerDisplay *
|
||||
xaccLedgerDisplayGeneral (Account *lead_acc, Account **acclist, int ledger_type)
|
||||
xaccLedgerDisplayGeneral (Account *lead_acc, Account **acclist,
|
||||
int ledger_type)
|
||||
{
|
||||
xaccLedgerDisplay *regData = NULL;
|
||||
|
||||
@ -333,7 +334,7 @@ xaccLedgerDisplayGeneral (Account *lead_acc, Account **acclist, int ledger_type)
|
||||
*
|
||||
* A third possibility exists: a multiple-account register, with
|
||||
* no leader account. In such a case, the list of accounts being
|
||||
* displayed have no particular relationshp to each other. There
|
||||
* displayed have no particular relationship to each other. There
|
||||
* can be an arbitrary number of multiple-account leader-less
|
||||
* registers.
|
||||
*/
|
||||
@ -345,7 +346,7 @@ xaccLedgerDisplayGeneral (Account *lead_acc, Account **acclist, int ledger_type)
|
||||
FETCH_FROM_LIST (xaccLedgerDisplay, ledgerList, lead_acc, leader, regData);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* if regData is null, then no leader account was specified */
|
||||
if (!regData) {
|
||||
regData = (xaccLedgerDisplay *) malloc (sizeof (xaccLedgerDisplay));
|
||||
@ -395,7 +396,7 @@ xaccLedgerDisplayGeneral (Account *lead_acc, Account **acclist, int ledger_type)
|
||||
|
||||
regData->dirty = 1;
|
||||
xaccLedgerDisplayRefresh (regData);
|
||||
|
||||
|
||||
return regData;
|
||||
}
|
||||
|
||||
|
@ -1341,7 +1341,7 @@ xaccSRSaveRegEntry (SplitRegister *reg, Transaction *newtrans)
|
||||
if (((MOD_AMNT | MOD_PRIC | MOD_VALU) & changed) &&
|
||||
((STOCK_REGISTER == (reg->type & REG_TYPE_MASK)) ||
|
||||
(CURRENCY_REGISTER == (reg->type & REG_TYPE_MASK)) ||
|
||||
(PORTFOLIO == (reg->type & REG_TYPE_MASK)))) {
|
||||
(PORTFOLIO_LEDGER == (reg->type & REG_TYPE_MASK)))) {
|
||||
|
||||
double value;
|
||||
double price;
|
||||
@ -1469,62 +1469,32 @@ xaccSRSaveRegEntry (SplitRegister *reg, Transaction *newtrans)
|
||||
if ((EQUITY_REGISTER == (reg->type & REG_TYPE_MASK)) ||
|
||||
(STOCK_REGISTER == (reg->type & REG_TYPE_MASK)) ||
|
||||
(CURRENCY_REGISTER == (reg->type & REG_TYPE_MASK)) ||
|
||||
(PORTFOLIO == (reg->type & REG_TYPE_MASK)))
|
||||
(PORTFOLIO_LEDGER == (reg->type & REG_TYPE_MASK)))
|
||||
xaccSplitSetShareAmount (split, new_amount);
|
||||
else
|
||||
xaccSplitSetValue (split, new_amount);
|
||||
}
|
||||
|
||||
if (MOD_PRIC & changed) {
|
||||
Account *acc;
|
||||
double price;
|
||||
int n;
|
||||
|
||||
price = xaccGetPriceCellValue(reg->priceCell);
|
||||
|
||||
DEBUG ("xaccSRSaveRegEntry(): MOD_PRIC: %f\n", price);
|
||||
|
||||
xaccSplitSetSharePrice (split, price);
|
||||
|
||||
/* Here we handle a very special case: the user just created
|
||||
* an account, which now has two splits in it, and the user
|
||||
* is editing the opening balance split. Then copy the price
|
||||
* over to the last split, so that the account balance, when
|
||||
* computed, won't be obviously bad. Strictly speaking, everything
|
||||
* will automatically fix itself once the user closes the window,
|
||||
* or if they start editing the second split, and so we don't
|
||||
* really have to do this. This is more of a feel-good thing,
|
||||
* so that they won't see even briefly what looks like bad values,
|
||||
* and that might give them the willies. We want them to feel good.
|
||||
*/
|
||||
acc = xaccSplitGetAccount (split);
|
||||
n = xaccAccountGetNumSplits (acc);
|
||||
if (2 == n) {
|
||||
Split *s = xaccAccountGetSplit (acc, 0);
|
||||
if (s == split) {
|
||||
Transaction *t;
|
||||
double currprice;
|
||||
s = xaccAccountGetSplit (acc, 1);
|
||||
currprice = xaccSplitGetSharePrice (s);
|
||||
if (DEQ (currprice, 1.0)) {
|
||||
t = xaccSplitGetParent (s);
|
||||
xaccTransBeginEdit (t, 0);
|
||||
xaccSplitSetSharePrice (s, price);
|
||||
xaccTransCommitEdit (t);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (MOD_VALU & changed) {
|
||||
double value = xaccGetPriceCellValue(reg->valueCell);
|
||||
|
||||
DEBUG ("xaccSRSaveRegEntry(): MOD_VALU: %f\n", value);
|
||||
|
||||
xaccSplitSetValue (split, value);
|
||||
}
|
||||
|
||||
PINFO ("xaccSRSaveRegEntry(): finished saving split %s of trans %s \n",
|
||||
xaccSplitGetMemo(split), xaccTransGetDescription(trans));
|
||||
xaccSplitGetMemo(split), xaccTransGetDescription(trans));
|
||||
|
||||
/* If the modified split is the "blank split", then it is now an
|
||||
* official part of the account. Set the blank split to NULL, so
|
||||
@ -1668,7 +1638,7 @@ xaccSRLoadTransEntry (SplitRegister *reg, Split *split, int do_commit)
|
||||
if ((EQUITY_REGISTER == typo) ||
|
||||
(STOCK_REGISTER == typo) ||
|
||||
(CURRENCY_REGISTER == typo) ||
|
||||
(PORTFOLIO == typo))
|
||||
(PORTFOLIO_LEDGER == typo))
|
||||
{
|
||||
amt = xaccSplitGetShareAmount (split);
|
||||
} else {
|
||||
@ -2071,8 +2041,8 @@ xaccSRLoadRegister (SplitRegister *reg, Split **slist,
|
||||
* when doing stock accounts. This will guess incorrectly for a
|
||||
* ledger showing multiple stocks, but seems cool for a single stock.
|
||||
*/
|
||||
if ((STOCK_REGISTER == type) ||
|
||||
(PORTFOLIO == type))
|
||||
if ((STOCK_REGISTER == type) ||
|
||||
(PORTFOLIO_LEDGER == type))
|
||||
{
|
||||
last_price = xaccSplitGetSharePrice (last_split);
|
||||
xaccSplitSetSharePrice (split, last_price);
|
||||
@ -2120,10 +2090,14 @@ xaccSRLoadRegister (SplitRegister *reg, Split **slist,
|
||||
{
|
||||
xaccSplitRegisterRestoreCursorChanged(reg, reg_buffer);
|
||||
xaccCommitCursor (reg->table);
|
||||
xaccDestroySplitRegisterBuffer(reg_buffer);
|
||||
reg_buffer = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (reg_buffer != NULL)
|
||||
{
|
||||
xaccDestroySplitRegisterBuffer(reg_buffer);
|
||||
reg_buffer = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/* If we didn't find the pending transaction, it was removed
|
||||
|
@ -838,6 +838,21 @@ gnc_register_create_status_bar(RegWindow *regData)
|
||||
GNC_T, /* has status area */
|
||||
GNOME_PREFERENCES_USER);
|
||||
|
||||
regData->statusbar = statusbar;
|
||||
|
||||
switch (regData->ledger->ledger->type & REG_TYPE_MASK)
|
||||
{
|
||||
case GENERAL_LEDGER:
|
||||
case INCOME_LEDGER:
|
||||
case PORTFOLIO_LEDGER:
|
||||
case SEARCH_LEDGER:
|
||||
regData->cleared_label = NULL;
|
||||
regData->balance_label = NULL;
|
||||
return statusbar;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
hbox = gtk_hbox_new(FALSE, 2);
|
||||
gtk_box_pack_end(GTK_BOX(statusbar), hbox, FALSE, FALSE, 5);
|
||||
|
||||
@ -862,8 +877,6 @@ gnc_register_create_status_bar(RegWindow *regData)
|
||||
regData->balance_label = label;
|
||||
gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
|
||||
|
||||
regData->statusbar = statusbar;
|
||||
|
||||
return statusbar;
|
||||
}
|
||||
|
||||
@ -1382,36 +1395,44 @@ gnc_reg_set_window_name(RegWindow *regData)
|
||||
gchar *windowname;
|
||||
gchar *account_name;
|
||||
gchar *reg_name;
|
||||
gboolean single_account;
|
||||
|
||||
if (regData == NULL)
|
||||
return;
|
||||
|
||||
switch (regData->ledger->type & REG_TYPE_MASK)
|
||||
{
|
||||
case GENERAL_LEDGER:
|
||||
case INCOME_LEDGER:
|
||||
reg_name = GENERAL_LEDGER_STR;
|
||||
single_account = GNC_F;
|
||||
break;
|
||||
case PORTFOLIO_LEDGER:
|
||||
reg_name = PORTFOLIO_STR;
|
||||
single_account = GNC_F;
|
||||
break;
|
||||
case SEARCH_LEDGER:
|
||||
reg_name = SEARCH_RESULTS_STR;
|
||||
single_account = GNC_F;
|
||||
break;
|
||||
default:
|
||||
reg_name = REGISTER_STR;
|
||||
single_account = GNC_T;
|
||||
break;
|
||||
}
|
||||
|
||||
leader = regData->ledger->leader;
|
||||
|
||||
if (leader != NULL)
|
||||
if ((leader != NULL) && single_account)
|
||||
{
|
||||
account_name = xaccAccountGetFullName(leader, gnc_get_account_separator());
|
||||
|
||||
switch (regData->ledger->type)
|
||||
{
|
||||
case GENERAL_LEDGER:
|
||||
case INCOME_LEDGER:
|
||||
reg_name = GENERAL_LEDGER_STR;
|
||||
break;
|
||||
case PORTFOLIO:
|
||||
reg_name = PORTFOLIO_STR;
|
||||
break;
|
||||
default:
|
||||
reg_name = REGISTER_STR;
|
||||
break;
|
||||
}
|
||||
|
||||
windowname = g_strconcat(account_name, " - ", reg_name, NULL);
|
||||
|
||||
free(account_name);
|
||||
}
|
||||
else
|
||||
windowname = g_strdup(GENERAL_LEDGER_STR);
|
||||
windowname = g_strdup(reg_name);
|
||||
|
||||
gtk_window_set_title(GTK_WINDOW(regData->window), windowname);
|
||||
|
||||
@ -1431,7 +1452,7 @@ gnc_toolbar_change_cb(void *data)
|
||||
* opens up a ledger window for the account list *
|
||||
* *
|
||||
* Args: ledger - ledger data structure *
|
||||
* Return: regData - the register window instance *
|
||||
* Return: regData - the register window instance *
|
||||
\********************************************************************/
|
||||
RegWindow *
|
||||
regWindowLedger(xaccLedgerDisplay *ledger)
|
||||
@ -1474,8 +1495,7 @@ regWindowLedger(xaccLedgerDisplay *ledger)
|
||||
|
||||
/* Invoked when window is being destroyed. */
|
||||
gtk_signal_connect(GTK_OBJECT(regData->window), "destroy",
|
||||
GTK_SIGNAL_FUNC (gnc_register_destroy_cb),
|
||||
(gpointer) regData);
|
||||
GTK_SIGNAL_FUNC (gnc_register_destroy_cb), regData);
|
||||
|
||||
regData->date_window = gnc_register_date_window(regData);
|
||||
gnc_register_set_date_range(regData);
|
||||
@ -1563,7 +1583,7 @@ regWindowLedger(xaccLedgerDisplay *ledger)
|
||||
switch (type)
|
||||
{
|
||||
case STOCK_REGISTER:
|
||||
case PORTFOLIO:
|
||||
case PORTFOLIO_LEDGER:
|
||||
case CURRENCY_REGISTER:
|
||||
prefix = "reg_stock_win";
|
||||
width = &last_stock_width;
|
||||
@ -1619,21 +1639,27 @@ regRefresh(xaccLedgerDisplay *ledger)
|
||||
gboolean reverse = gnc_reverse_balance(ledger->leader);
|
||||
double amount;
|
||||
|
||||
amount = ledger->balance;
|
||||
if (reverse)
|
||||
amount = -amount;
|
||||
if (regData->balance_label != NULL)
|
||||
{
|
||||
amount = ledger->balance;
|
||||
if (reverse)
|
||||
amount = -amount;
|
||||
|
||||
gnc_set_label_color(regData->balance_label, amount);
|
||||
gtk_label_set_text(GTK_LABEL(regData->balance_label),
|
||||
xaccPrintAmount(amount, print_flags));
|
||||
gnc_set_label_color(regData->balance_label, amount);
|
||||
gtk_label_set_text(GTK_LABEL(regData->balance_label),
|
||||
xaccPrintAmount(amount, print_flags));
|
||||
}
|
||||
|
||||
amount = ledger->clearedBalance;
|
||||
if (reverse)
|
||||
amount = -amount;
|
||||
if (regData->cleared_label != NULL)
|
||||
{
|
||||
amount = ledger->clearedBalance;
|
||||
if (reverse)
|
||||
amount = -amount;
|
||||
|
||||
gnc_set_label_color(regData->cleared_label, amount);
|
||||
gtk_label_set_text(GTK_LABEL(regData->cleared_label),
|
||||
xaccPrintAmount(amount, print_flags));
|
||||
gnc_set_label_color(regData->cleared_label, amount);
|
||||
gtk_label_set_text(GTK_LABEL(regData->cleared_label),
|
||||
xaccPrintAmount(amount, print_flags));
|
||||
}
|
||||
|
||||
gnc_reg_set_window_name(regData);
|
||||
}
|
||||
@ -1643,15 +1669,13 @@ regRefresh(xaccLedgerDisplay *ledger)
|
||||
static void
|
||||
gnc_reg_save_size(RegWindow *regData)
|
||||
{
|
||||
int type;
|
||||
int *width;
|
||||
char *prefix;
|
||||
|
||||
type = regData->ledger->ledger->type & REG_TYPE_MASK;
|
||||
switch (type)
|
||||
switch (regData->ledger->ledger->type & REG_TYPE_MASK)
|
||||
{
|
||||
case STOCK_REGISTER:
|
||||
case PORTFOLIO:
|
||||
case PORTFOLIO_LEDGER:
|
||||
case CURRENCY_REGISTER:
|
||||
prefix = "reg_stock_win";
|
||||
width = &last_stock_width;
|
||||
@ -1989,13 +2013,15 @@ gnc_transaction_delete_query(GtkWindow *parent)
|
||||
gchar *usual = DEL_USUAL_MSG;
|
||||
gchar *warn = DEL_WARN_MSG;
|
||||
|
||||
DeleteType return_value;
|
||||
|
||||
dialog = gnome_dialog_new(DEL_TRANS_STR,
|
||||
GNOME_STOCK_BUTTON_OK,
|
||||
GNOME_STOCK_BUTTON_CANCEL,
|
||||
NULL);
|
||||
|
||||
gnome_dialog_set_default(GNOME_DIALOG(dialog), 0);
|
||||
gnome_dialog_close_hides(GNOME_DIALOG(dialog), FALSE);
|
||||
gnome_dialog_close_hides(GNOME_DIALOG(dialog), TRUE);
|
||||
gnome_dialog_set_parent(GNOME_DIALOG(dialog), parent);
|
||||
|
||||
dvbox = GNOME_DIALOG(dialog)->vbox;
|
||||
@ -2037,15 +2063,17 @@ gnc_transaction_delete_query(GtkWindow *parent)
|
||||
result = gnome_dialog_run_and_close(GNOME_DIALOG(dialog));
|
||||
|
||||
if (result != 0)
|
||||
return DELETE_CANCEL;
|
||||
return_value = DELETE_CANCEL;
|
||||
else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(trans_button)))
|
||||
return_value = DELETE_TRANS;
|
||||
else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(splits_button)))
|
||||
return_value = DELETE_SPLITS;
|
||||
else
|
||||
return_value = DELETE_CANCEL;
|
||||
|
||||
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(trans_button)))
|
||||
return DELETE_TRANS;
|
||||
gtk_widget_destroy(dialog);
|
||||
|
||||
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(splits_button)))
|
||||
return DELETE_SPLITS;
|
||||
|
||||
return DELETE_CANCEL;
|
||||
return return_value;
|
||||
}
|
||||
|
||||
|
||||
@ -2132,7 +2160,8 @@ deleteCB(GtkWidget *widget, gpointer data)
|
||||
return;
|
||||
}
|
||||
|
||||
/* At this point we are on a transaction cursor with more than 2 splits.
|
||||
/* At this point we are on a transaction cursor with more than 2 splits
|
||||
* or we are on a transaction cursor in multi-line mode or an auto mode.
|
||||
* We give the user two choices: delete the whole transaction or delete
|
||||
* all the splits except the transaction split. */
|
||||
{
|
||||
|
@ -15,7 +15,9 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
include @top_srcdir@/Makefile.init
|
||||
top_srcdir = @top_srcdir@
|
||||
|
||||
include ${top_srcdir}/Makefile.init
|
||||
|
||||
######################################################################
|
||||
# See Makefile.common for information about these variables.
|
||||
|
@ -74,8 +74,8 @@
|
||||
(primitive-load boot-file)))
|
||||
|
||||
;; Automatically generated defaults...
|
||||
(define gnc:_config-dir-default_ "@GNC_RUNTIME_CONFIGDIR@")
|
||||
(define gnc:_share-dir-default_ "@GNC_RUNTIME_SHAREDIR@")
|
||||
(define gnc:_config-dir-default_ "@GNC_EXPANDED_CONFIGDIR@")
|
||||
(define gnc:_share-dir-default_ "@GNC_EXPANDED_SHAREDIR@")
|
||||
|
||||
;; These will be converted to config vars later (see prefs.scm)
|
||||
(define gnc:*load-path* #f)
|
||||
|
@ -19,21 +19,8 @@
|
||||
(gnc:depend "text-export.scm")
|
||||
(gnc:depend "report.scm")
|
||||
(gnc:depend "report/report-list.scm")
|
||||
|
||||
(gnc:config-var-value-set!
|
||||
gnc:*load-path* #f
|
||||
(let loop ((load-path (gnc:config-var-value-get gnc:*load-path*)))
|
||||
(if (null? load-path) '()
|
||||
(cons
|
||||
(string-append (car load-path) "/printing")
|
||||
(cons
|
||||
(string-append (car load-path) "/qif-import")
|
||||
(cons
|
||||
(car load-path)
|
||||
(loop (cdr load-path))))))))
|
||||
|
||||
(gnc:depend "qif-import.scm")
|
||||
(gnc:depend "print-check.scm")
|
||||
(gnc:depend "qif-import/qif-import.scm")
|
||||
(gnc:depend "printing/print-check.scm")
|
||||
|
||||
;; Load the system configs
|
||||
(if (not (gnc:load-system-config-if-needed))
|
||||
|
@ -6,7 +6,7 @@
|
||||
;;; $Id$
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(gnc:support "number-to-words.scm")
|
||||
(gnc:support "printing/number-to-words.scm")
|
||||
|
||||
(define (integer-to-words val)
|
||||
(let ((current-string "")
|
||||
|
@ -6,9 +6,9 @@
|
||||
;;; $Id$
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(gnc:support "print-check.scm")
|
||||
(gnc:depend "number-to-words.scm")
|
||||
(gnc:depend "simple-obj.scm")
|
||||
(gnc:support "printing/print-check.scm")
|
||||
(gnc:depend "printing/number-to-words.scm")
|
||||
(gnc:depend "qif-import/simple-obj.scm")
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
@ -7,7 +7,7 @@
|
||||
;;; $Id$
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(gnc:support "qif-dialog-utils.scm")
|
||||
(gnc:support "qif-import/qif-dialog-utils.scm")
|
||||
|
||||
(define (qif-dialog:munge-account-mapping old-map new-info)
|
||||
(let ((new-name (car new-info))
|
||||
|
@ -6,10 +6,10 @@
|
||||
;;; $Id$
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(gnc:support "qif-file.scm")
|
||||
(gnc:depend "qif-objects.scm")
|
||||
(gnc:depend "qif-parse.scm")
|
||||
(gnc:depend "qif-utils.scm")
|
||||
(gnc:support "qif-import/qif-file.scm")
|
||||
(gnc:depend "qif-import/qif-objects.scm")
|
||||
(gnc:depend "qif-import/qif-parse.scm")
|
||||
(gnc:depend "qif-import/qif-utils.scm")
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; qif-file:read-file self path
|
||||
|
@ -6,7 +6,7 @@
|
||||
;;; $Id$
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(gnc:support "qif-guess-map.scm")
|
||||
(gnc:support "qif-import/qif-guess-map.scm")
|
||||
|
||||
(define GNC-BANK-TYPE 0)
|
||||
(define GNC-CASH-TYPE 1)
|
||||
|
@ -6,15 +6,15 @@
|
||||
;;; $Id$
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(gnc:support "qif-import.scm")
|
||||
(gnc:support "qif-import/qif-import.scm")
|
||||
|
||||
(gnc:depend "simple-obj.scm")
|
||||
(gnc:depend "qif-objects.scm") ;; class definitions
|
||||
(gnc:depend "qif-parse.scm") ;; string-to-value, date parsing
|
||||
(gnc:depend "qif-utils.scm")
|
||||
(gnc:depend "qif-file.scm") ;; actual file reading
|
||||
(gnc:depend "qif-dialog-utils.scm") ;; build displays for dialog
|
||||
(gnc:depend "qif-guess-map.scm") ;; build QIF->gnc acct mappings
|
||||
(gnc:depend "qif-to-gnc.scm") ;; conv QIF xtns/acct to GNC xtns/acct
|
||||
(gnc:depend "qif-import/simple-obj.scm")
|
||||
(gnc:depend "qif-import/qif-objects.scm") ;; class definitions
|
||||
(gnc:depend "qif-import/qif-parse.scm") ;; string-to-value, date parsing
|
||||
(gnc:depend "qif-import/qif-utils.scm")
|
||||
(gnc:depend "qif-import/qif-file.scm") ;; actual file reading
|
||||
(gnc:depend "qif-import/qif-dialog-utils.scm") ;; build displays for dialog
|
||||
(gnc:depend "qif-import/qif-guess-map.scm") ;; build QIF->gnc acct mappings
|
||||
(gnc:depend "qif-import/qif-to-gnc.scm") ;; conv QIF xtns/acct to GNC xtns/acct
|
||||
|
||||
|
||||
|
@ -6,8 +6,8 @@
|
||||
;;; $Id$
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(gnc:support "qif-objects.scm")
|
||||
(gnc:depend "simple-obj.scm")
|
||||
(gnc:support "qif-import/qif-objects.scm")
|
||||
(gnc:depend "qif-import/simple-obj.scm")
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
@ -6,7 +6,7 @@
|
||||
;;; $Id$
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(gnc:support "qif-parse.scm")
|
||||
(gnc:support "qif-import/qif-parse.scm")
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; qif-split:parse-category
|
||||
|
@ -7,7 +7,7 @@
|
||||
;;; $Id$
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(gnc:support "qif-to-gnc.scm")
|
||||
(gnc:support "qif-import/qif-to-gnc.scm")
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; find-or-make-acct:
|
||||
|
@ -6,7 +6,7 @@
|
||||
;;; $Id$
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(gnc:support "qif-utils.scm")
|
||||
(gnc:support "qif-import/qif-utils.scm")
|
||||
|
||||
(define (simple-filter pred list)
|
||||
(let ((retval '()))
|
||||
|
@ -6,7 +6,7 @@
|
||||
;;; $Id$
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(gnc:support "simple-obj.scm")
|
||||
(gnc:support "qif-import/simple-obj.scm")
|
||||
|
||||
;; this is an extremely rudimentary object system. Each object is a
|
||||
;; cons cell, where the car is a symbol with the class name and the
|
||||
|
Loading…
Reference in New Issue
Block a user