Commit 4733089b authored by Maxime Doyen's avatar Maxime Doyen

5.0.1-rc

parent 560f42d6
2015-03-28 Maxime Doyen
Made 5.0.1 rc release.
* change: xhb data file format (v1.1)
* wish : #1432204 inherit txn should set status to none
* wish : #1421326 "Fill from template" showed by default
* wish : #1419986 reconciled icons, text and translation
* wish : #1413874 keyboard shortcut to transaction none status
* wish : #1377640 txn same consecutive entry
* wish : #926782 for transfers, display target/source account as payee
* bugfix: #1429410 document the "Cleared" ("Pointée") operation status
* bugfix: #1429407 shortcut clashes with search or other text entry widgets
* bugfix: #1427798 -0,00€ for total of account
* bugfix: #1427112 status of template transactions is ignored
* bugfix: #1425986 QIF import sometimes fails in v5.0
* bugfix: #1424437 gtk warning from console
* bugfix: #1422617 trend time report shows dates from closed accounts
* bugfix: #1420495 typo problem in chart tooltip (apos)
* bugfix: #1420098 ctrl+w no longer closes account window
* bugfix: #1419992 visible column names are not localized in preferences dialog
* bugfix: #1419975 not all languages updates were imported for 5.0
* bugfix: #1419476 edit transaction dialog empty category
* bugfix: #1419304 crash if Balance report is open and transaction is deleted
* bugfix: #1415740 budget line with value of 0 not shown in Budget Report
2015-02-08 Maxime Doyen 2015-02-08 Maxime Doyen
Made 5.0 release. Made 5.0 release.
...@@ -276,7 +303,7 @@ ...@@ -276,7 +303,7 @@
* wish : #730137 portable app for ms-windows * wish : #730137 portable app for ms-windows
* wish : #730319 single click in calendar to choose date * wish : #730319 single click in calendar to choose date
* wish : #787131 Column titles in exported CSV * wish : #787131 Column titles in exported CSV
* wish : #787134 exporting to CSV should include all available columns * wish : #787134 csv add import/export for tags
* wish : #833614 sorting on category / subcategory in statistics report * wish : #833614 sorting on category / subcategory in statistics report
* wish : #856477 improve category dropdown with +/- * wish : #856477 improve category dropdown with +/-
* wish : #886372 poland in the European country list * wish : #886372 poland in the European country list
......
...@@ -590,31 +590,6 @@ fi ...@@ -590,31 +590,6 @@ fi
# Substitute ALL_LINGUAS so we can use it in po/Makefile # Substitute ALL_LINGUAS so we can use it in po/Makefile
AC_SUBST(ALL_LINGUAS) AC_SUBST(ALL_LINGUAS)
# Set DATADIRNAME correctly if it is not set yet
# (copied from glib-gettext.m4)
if test -z "$DATADIRNAME"; then
AC_LINK_IFELSE(
[AC_LANG_PROGRAM([[]],
[[extern int _nl_msg_cat_cntr;
return _nl_msg_cat_cntr]])],
[DATADIRNAME=share],
[case $host in
*-*-solaris*)
dnl On Solaris, if bind_textdomain_codeset is in libc,
dnl GNU format message catalog is always supported,
dnl since both are added to the libc all together.
dnl Hence, we'd like to go with DATADIRNAME=share
dnl in this case.
AC_CHECK_FUNC(bind_textdomain_codeset,
[DATADIRNAME=share], [DATADIRNAME=lib])
;;
*)
[DATADIRNAME=lib]
;;
esac])
fi
AC_SUBST(DATADIRNAME)
IT_PO_SUBDIR([po]) IT_PO_SUBDIR([po])
]) ])
......
...@@ -2,17 +2,24 @@ ...@@ -2,17 +2,24 @@
SUBDIRS = datas SUBDIRS = datas
@INTLTOOL_DESKTOP_RULE@
desktopdir = $(datadir)/applications desktopdir = $(datadir)/applications
desktop_in_files = homebank.desktop.in desktop_in_files = homebank.desktop.in
desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
@INTLTOOL_DESKTOP_RULE@
@INTLTOOL_XML_RULE@
appdatadir = $(datadir)/appdata
appdata_in_files = homebank.appdata.xml.in
appdata_DATA = $(appdata_in_files:.xml.in=.xml)
EXTRA_DIST = \ EXTRA_DIST = \
$(desktop_in_files) $(desktop_in_files) \
$(appdata_in_files)
CLEANFILES = \ CLEANFILES = \
$(desktop_DATA) $(desktop_DATA) \
$(appdata_DATA)
DISTCLEANFILES = \
$(desktop_DATA)
...@@ -141,8 +141,8 @@ am__uninstall_files_from_dir = { \ ...@@ -141,8 +141,8 @@ am__uninstall_files_from_dir = { \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \ $(am__cd) "$$dir" && rm -f $$files; }; \
} }
am__installdirs = "$(DESTDIR)$(desktopdir)" am__installdirs = "$(DESTDIR)$(appdatadir)" "$(DESTDIR)$(desktopdir)"
DATA = $(desktop_DATA) DATA = $(appdata_DATA) $(desktop_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive distclean-recursive maintainer-clean-recursive
am__recursive_targets = \ am__recursive_targets = \
...@@ -323,14 +323,16 @@ SUBDIRS = datas ...@@ -323,14 +323,16 @@ SUBDIRS = datas
desktopdir = $(datadir)/applications desktopdir = $(datadir)/applications
desktop_in_files = homebank.desktop.in desktop_in_files = homebank.desktop.in
desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
appdatadir = $(datadir)/appdata
appdata_in_files = homebank.appdata.xml.in
appdata_DATA = $(appdata_in_files:.xml.in=.xml)
EXTRA_DIST = \ EXTRA_DIST = \
$(desktop_in_files) $(desktop_in_files) \
$(appdata_in_files)
CLEANFILES = \ CLEANFILES = \
$(desktop_DATA) $(desktop_DATA) \
$(appdata_DATA)
DISTCLEANFILES = \
$(desktop_DATA)
all: all-recursive all: all-recursive
...@@ -367,6 +369,27 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) ...@@ -367,6 +369,27 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
$(am__aclocal_m4_deps): $(am__aclocal_m4_deps):
homebank.desktop.in: $(top_builddir)/config.status $(srcdir)/homebank.desktop.in.in homebank.desktop.in: $(top_builddir)/config.status $(srcdir)/homebank.desktop.in.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-appdataDATA: $(appdata_DATA)
@$(NORMAL_INSTALL)
@list='$(appdata_DATA)'; test -n "$(appdatadir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(appdatadir)'"; \
$(MKDIR_P) "$(DESTDIR)$(appdatadir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(appdatadir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(appdatadir)" || exit $$?; \
done
uninstall-appdataDATA:
@$(NORMAL_UNINSTALL)
@list='$(appdata_DATA)'; test -n "$(appdatadir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(appdatadir)'; $(am__uninstall_files_from_dir)
install-desktopDATA: $(desktop_DATA) install-desktopDATA: $(desktop_DATA)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
@list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
...@@ -548,7 +571,7 @@ check: check-recursive ...@@ -548,7 +571,7 @@ check: check-recursive
all-am: Makefile $(DATA) all-am: Makefile $(DATA)
installdirs: installdirs-recursive installdirs: installdirs-recursive
installdirs-am: installdirs-am:
for dir in "$(DESTDIR)$(desktopdir)"; do \ for dir in "$(DESTDIR)$(appdatadir)" "$(DESTDIR)$(desktopdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done done
install: install-recursive install: install-recursive
...@@ -578,7 +601,6 @@ clean-generic: ...@@ -578,7 +601,6 @@ clean-generic:
distclean-generic: distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic: maintainer-clean-generic:
@echo "This command is intended for maintainers to use" @echo "This command is intended for maintainers to use"
...@@ -603,7 +625,7 @@ info: info-recursive ...@@ -603,7 +625,7 @@ info: info-recursive
info-am: info-am:
install-data-am: install-desktopDATA install-data-am: install-appdataDATA install-desktopDATA
install-dvi: install-dvi-recursive install-dvi: install-dvi-recursive
...@@ -647,25 +669,29 @@ ps: ps-recursive ...@@ -647,25 +669,29 @@ ps: ps-recursive
ps-am: ps-am:
uninstall-am: uninstall-desktopDATA uninstall-am: uninstall-appdataDATA uninstall-desktopDATA
.MAKE: $(am__recursive_targets) install-am install-strip .MAKE: $(am__recursive_targets) install-am install-strip
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
check-am clean clean-generic cscopelist-am ctags ctags-am \ check-am clean clean-generic cscopelist-am ctags ctags-am \
distclean distclean-generic distclean-tags distdir dvi dvi-am \ distclean distclean-generic distclean-tags distdir dvi dvi-am \
html html-am info info-am install install-am install-data \ html html-am info info-am install install-am \
install-data-am install-desktopDATA install-dvi install-dvi-am \ install-appdataDATA install-data install-data-am \
install-exec install-exec-am install-html install-html-am \ install-desktopDATA install-dvi install-dvi-am install-exec \
install-info install-info-am install-man install-pdf \ install-exec-am install-html install-html-am install-info \
install-pdf-am install-ps install-ps-am install-strip \ install-info-am install-man install-pdf install-pdf-am \
installcheck installcheck-am installdirs installdirs-am \ install-ps install-ps-am install-strip installcheck \
maintainer-clean maintainer-clean-generic mostlyclean \ installcheck-am installdirs installdirs-am maintainer-clean \
mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
uninstall-am uninstall-desktopDATA pdf-am ps ps-am tags tags-am uninstall uninstall-am \
uninstall-appdataDATA uninstall-desktopDATA
@INTLTOOL_DESKTOP_RULE@ @INTLTOOL_DESKTOP_RULE@
@INTLTOOL_XML_RULE@
# Tell versions [3.59,3.63) of GNU make to not export all variables. # Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded. # Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: .NOEXPORT:
<?xml version="1.0" encoding="UTF-8"?>
<application>
<id type="desktop">homebank.desktop</id>
<licence>GPL-2.0+</licence>
<description>
<_p>
HomeBank is a free software (as in "free speech" and also as in "free beer")
that will assist you to manage your personal accounting.
</_p>
<_p>
It is designed to easy to use and be able to analyse your personal finance
in detail using powerful filtering tools and beautiful graphs.
</_p>
<_p>
If you are looking for a completely free and easy way to manage your personal
accounting then HomeBank should be the software of choice.
</_p>
</description>
<screenshots>
<screenshot type="default" width="624" height="351">http://homebank.free.fr/img/homebank-appdata.png</screenshot>
</screenshots>
<url type="homepage">http://homebank.free.fr</url>
<updatecontact>homebank_at_free.fr</updatecontact>
</application>
[Desktop Entry] [Desktop Entry]
_Name=HomeBank _Name=HomeBank
_GenericName=Personal finance
_Comment=Free, easy, personal accounting for everyone. _Comment=Free, easy, personal accounting for everyone.
Exec=homebank %F _Keywords=finance;accounting;budget;personal;money;
Exec=homebank %f
Terminal=false Terminal=false
StartupNotify=true StartupNotify=true
Type=Application Type=Application
Icon=homebank Icon=homebank
Categories=GTK;Office;Finance; Categories=GNOME;GTK;Office;Finance;
MimeType=application/x-homebank; MimeType=application/x-homebank;
This diff is collapsed.
...@@ -26,6 +26,7 @@ enum ...@@ -26,6 +26,7 @@ enum
ACTION_ACCOUNT_ADD, ACTION_ACCOUNT_ADD,
ACTION_ACCOUNT_INHERIT, ACTION_ACCOUNT_INHERIT,
ACTION_ACCOUNT_EDIT, ACTION_ACCOUNT_EDIT,
ACTION_ACCOUNT_NONE,
ACTION_ACCOUNT_CLEAR, ACTION_ACCOUNT_CLEAR,
ACTION_ACCOUNT_RECONCILE, ACTION_ACCOUNT_RECONCILE,
ACTION_ACCOUNT_DELETE, ACTION_ACCOUNT_DELETE,
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
#include "list_topspending.h" #include "list_topspending.h"
#include "dsp_account.h" #include "dsp_account.h"
//#include "ui-assist-import.h" #include "ui-assist-import.h"
#include "imp_qif.h" #include "imp_qif.h"
#include "ui-assist-start.h" #include "ui-assist-start.h"
#include "ui-account.h" #include "ui-account.h"
...@@ -39,7 +39,6 @@ ...@@ -39,7 +39,6 @@
#include "ui-pref.h" #include "ui-pref.h"
#include "ui-hbfile.h" #include "ui-hbfile.h"
#include "ui-transaction.h" #include "ui-transaction.h"
#include "ui-assist-import.h"
#include "rep_balance.h" #include "rep_balance.h"
#include "rep_budget.h" #include "rep_budget.h"
...@@ -1061,7 +1060,7 @@ struct hbfile_data *data; ...@@ -1061,7 +1060,7 @@ struct hbfile_data *data;
GtkWidget *window; GtkWidget *window;
gint result = 1; gint result = 1;
guint32 date; guint32 date;
gint account = 1, count; gint account, count;
DB( g_print("\n[ui-mainwindow] add transactions\n") ); DB( g_print("\n[ui-mainwindow] add transactions\n") );
...@@ -1069,22 +1068,27 @@ gint account = 1, count; ...@@ -1069,22 +1068,27 @@ gint account = 1, count;
/* init the transaction */ /* init the transaction */
date = homebank_app_date_get_julian(); date = homebank_app_date_get_julian();
//todo: maybe think about set a default account here
account = 1;
if(data->acc != NULL) if(data->acc != NULL)
account = data->acc->key; account = data->acc->key;
window = create_deftransaction_window(GTK_WINDOW(data->window), TRANSACTION_EDIT_ADD); window = create_deftransaction_window(GTK_WINDOW(data->window), TRANSACTION_EDIT_ADD);
count = 0; count = 0;
while(result == GTK_RESPONSE_ADD) while(result == GTK_RESPONSE_ADD || result == GTK_RESPONSE_ADDKEEP)
{ {
Transaction *ope; Transaction *ope;
/* fill in the transaction */ /* fill in the transaction */
ope = da_transaction_malloc(); if( result == GTK_RESPONSE_ADD )
ope->date = date; {
ope->kacc = account; ope = da_transaction_malloc();
ope->date = date;
ope->kacc = account;
if( PREFS->heritdate == FALSE ) //fix: 318733 if( PREFS->heritdate == FALSE ) //fix: 318733
ope->date = GLOBALS->today; ope->date = GLOBALS->today;
}
deftransaction_set_transaction(window, ope); deftransaction_set_transaction(window, ope);
...@@ -1092,7 +1096,7 @@ gint account = 1, count; ...@@ -1092,7 +1096,7 @@ gint account = 1, count;
DB( g_print(" -> dialog result is %d\n", result) ); DB( g_print(" -> dialog result is %d\n", result) );
if(result == GTK_RESPONSE_ADD || result == GTK_RESPONSE_ACCEPT) if(result == GTK_RESPONSE_ADD || result == GTK_RESPONSE_ADDKEEP || result == GTK_RESPONSE_ACCEPT)
{ {
deftransaction_get(window, NULL); deftransaction_get(window, NULL);
transaction_add(ope, NULL, ope->kacc); transaction_add(ope, NULL, ope->kacc);
...@@ -1102,12 +1106,15 @@ gint account = 1, count; ...@@ -1102,12 +1106,15 @@ gint account = 1, count;
ui_mainwindow_populate_accounts(GLOBALS->mainwindow, NULL); ui_mainwindow_populate_accounts(GLOBALS->mainwindow, NULL);
count++; count++;
//store last date //todo: still usefull ? store last date
date = ope->date; date = ope->date;
} }
da_transaction_free(ope); if( result == GTK_RESPONSE_ADD )
ope = NULL; {
da_transaction_free(ope);
ope = NULL;
}
} }
...@@ -1162,7 +1169,7 @@ gdouble total, other; ...@@ -1162,7 +1169,7 @@ gdouble total, other;
if(range == FLT_RANGE_OTHER) if(range == FLT_RANGE_OTHER)
return; return;
filter_preset_daterange_set(data->filter, range); filter_preset_daterange_set(data->filter, range, 0);
n_result = da_cat_get_max_key() + 1; n_result = da_cat_get_max_key() + 1;
...@@ -2405,7 +2412,7 @@ static void ui_mainwindow_drag_data_received (GtkWidget *widget, ...@@ -2405,7 +2412,7 @@ static void ui_mainwindow_drag_data_received (GtkWidget *widget,
if( filetype == FILETYPE_HOMEBANK) if( filetype == FILETYPE_HOMEBANK)
{ {
hbfile_change_filepath(path); hbfile_change_filepath(g_strdup(path));
ui_mainwindow_open_internal(GTK_WIDGET(window), NULL); ui_mainwindow_open_internal(GTK_WIDGET(window), NULL);
} }
else else
......
...@@ -159,7 +159,7 @@ GtkWidget *widget, *hbox, *scrollwin; ...@@ -159,7 +159,7 @@ GtkWidget *widget, *hbox, *scrollwin;
gtk_container_add( GTK_CONTAINER(scrollwin), chart->drawarea ); gtk_container_add( GTK_CONTAINER(scrollwin), chart->drawarea );
gtk_widget_set_size_request(chart->drawarea, 150, 150 ); gtk_widget_set_size_request(chart->drawarea, 150, 150 );
gtk_widget_set_has_tooltip(chart->drawarea, TRUE); gtk_widget_set_has_tooltip(chart->drawarea, FALSE);
gtk_widget_show(chart->drawarea); gtk_widget_show(chart->drawarea);
/* scrollbar */ /* scrollbar */
......
...@@ -1800,17 +1800,17 @@ gboolean retval = FALSE; ...@@ -1800,17 +1800,17 @@ gboolean retval = FALSE;
strval = chart_print_double(chart, chart->buffer1, item->serie1); strval = chart_print_double(chart, chart->buffer1, item->serie1);
if( !chart->dual ) if( !chart->dual )
{ {
//#1420495 don't use g_markup_printf_escaped
if( chart->type == CHART_TYPE_PIE ) if( chart->type == CHART_TYPE_PIE )
buffer = g_markup_printf_escaped("%s\n%s\n%.2f%%", item->label, strval, item->rate); buffer = g_strdup_printf("%s\n%s\n%.2f%%", item->label, strval, item->rate);
else else
buffer = g_markup_printf_escaped("%s\n%s", item->label, strval); buffer = g_strdup_printf("%s\n%s", item->label, strval);
} }
else else
{ {
strval2 = chart_print_double(chart, chart->buffer2, item->serie2); strval2 = chart_print_double(chart, chart->buffer2, item->serie2);
buffer = g_markup_printf_escaped("%s\n+%s\n%s", item->label, strval2, strval); buffer = g_strdup_printf("%s\n+%s\n%s", item->label, strval2, strval);
} }
gtk_tooltip_set_text(tooltip, buffer); gtk_tooltip_set_text(tooltip, buffer);
......
...@@ -28,13 +28,21 @@ struct _archive ...@@ -28,13 +28,21 @@ struct _archive
{ {
gdouble amount; gdouble amount;
guint32 kacc; guint32 kacc;
guint32 kxferacc;
gushort paymode; gushort paymode;
gushort flags; gushort flags;
guint32 kpay; guint32 kpay;
guint32 kcat; guint32 kcat;
gchar *wording; gchar *wording;
//guint32 date;
//gushort pos;
gushort status; gushort status;
//gchar *info;
//guint32 *tags;
//guint32 kxfer; //strong link xfer key
guint32 kxferacc;
//Split *splits[TXN_MAX_SPLIT+1];
guint32 nextdate; guint32 nextdate;
gushort every; gushort every;
......
...@@ -78,8 +78,8 @@ GDate *date; ...@@ -78,8 +78,8 @@ GDate *date;
static void filter_default_date_set(Filter *flt) static void filter_default_date_set(Filter *flt)
{ {
flt->mindate = 693596; //01/01/1900 flt->mindate = HB_MINDATE;
flt->maxdate = 803533; //31/12/2200 flt->maxdate = HB_MAXDATE;
} }
...@@ -123,31 +123,63 @@ gint i; ...@@ -123,31 +123,63 @@ gint i;
for(i=0;i<NUM_PAYMODE_MAX;i++) for(i=0;i<NUM_PAYMODE_MAX;i++)
flt->paymode[i] = TRUE; flt->paymode[i] = TRUE;
filter_preset_daterange_set(flt, flt->range); filter_preset_daterange_set(flt, flt->range, 0);
} }
void filter_preset_daterange_set(Filter *flt, gint range) void filter_preset_daterange_set(Filter *flt, gint range, guint32 kacc)
{ {
GDate *date; GDate *date;
GList *list; GList *list;
guint32 refjuliandate, month, year, qnum; guint32 refjuliandate, month, year, qnum;
gboolean accounts[da_acc_get_max_key ()+1];
guint i;
// any date :: todo : get date of current account only when account DB( g_print("(filter) daterange set %p %d\n", flt, range) );
flt->range = range;
if(g_list_length(GLOBALS->ope_list) > 0) // get all transaction date bound //todo: get date of current account only when account
//todo: don't consider closed account !!
//beware: g_list_last get into every node !!
filter_default_date_set(flt);
if(g_list_length(GLOBALS->ope_list) > 0)
{ {
//5.0 useless // open/closed acccount vector
//GLOBALS->ope_list = da_transaction_sort(GLOBALS->ope_list); for(i=1;i<=da_acc_get_max_key ();i++)
{
Account * acc = da_acc_get(i);
if(acc)
{
accounts[i] = acc->flags & AF_CLOSED ? FALSE: TRUE;
//in case we focus on an account, consider the account as disabled
if(kacc != 0 && i != kacc)
accounts[i] = FALSE;
DB( g_print("acc '%s' %d\n", acc->name, accounts[i]) );
}
}
//parse all: in waiting other storage, as g_list_last will do anyway
// find first no account closed account
list = g_list_first(GLOBALS->ope_list); list = g_list_first(GLOBALS->ope_list);
flt->mindate = ((Transaction *)list->data)->date; flt->mindate = HB_MAXDATE;
list = g_list_last(GLOBALS->ope_list); flt->maxdate = HB_MINDATE;
flt->maxdate = ((Transaction *)list->data)->date; while (list != NULL)
{
Transaction *item = list->data;
if(accounts[item->kacc] == TRUE)