Commit ec5c7a2e authored by Maxime Doyen's avatar Maxime Doyen

5.1-rc

parent c5649751
2016-xx-xx Maxime Doyen
Made 5.1 beta1 release.
2016-08-xx Maxime Doyen
* change: listview, switch from alternate row color to line grid (new GTK+ option)
* change: preferences, reworked layout
* change: preferences, add preview for chart color scheme
Made 5.1 rc release.
* change: xhb data file format (v1.2)
* change: win32: upgraded to gtk+ 3.20.x
* change: internal storage of txn into accounts
* change: ??transaction dialog, changed the layout
* change: ??template/scheduled dialog, changed the layout
* change: register, refactored toolbar grouping single and multiple actions
* change: doc, added every payment into the lexicon
* wish : #532564 add a clean feature to delete unused payee/categories, ...
* wish : #552565 multiple currency accounting
* wish : #1102981 add Comment bloc for accounts
* wish : #1242312 split amount for template/scheduled transaction
* change: listview, removed deprecated rule hint (alternate row color)
* change: listview, added line grid (new GTK+ option)
* change: preferences, reworked layout
* wish : #1608025 revert prefill with shift/ctrl clicked txn when multiple edit
* wish : #1500235 automatic assignments based on regular expressions
* wish : #1500220 allow auto assignments to overwrite payee
* wish : #1484449 warn when amount sign and category don't match
* wish : #1501111 double-click on sheduled txn in main window to open template editor
* wish : #1501125 export to CSV for all reports list view
* wish : #1507252 search and replace, or ability to batch-edit selected transactions easily
* wish : #1448613 display full category name in autocompletion
* wish : #1242312 split amount for template/scheduled transaction
* wish : #1102981 add comment bloc for accounts
* wish : #1094528 auto-assign Payment
* wish : #844576 payee default category and payment type
* wish : #552565 multiple currency accounting
2016-07-22 Maxime Doyen
Made 5.0.9 release.
* new : txn dialog width is now saved
* wish : #1507253 template at top into txn dialog
* wish : #1429411 reconcile etc. could be a linked set of toggle buttons
* wish : #532564 clean feature to delete unused payees/categories
* bugfix: #1602835 filter by status in the ledger
* bugfix: #1594152 zillion questions importing from QIF file
* bugfix: #1583406 changes in settings -> format-> numbers options is never saved
* bugfix: #1562372 statistics filtered on category with split display wrong results
* bugfix: #1535483 importing cvs file silently skips a line!
2016-05-21 Maxime Doyen
Made 5.0.8 release.
* bugfix: #1584342 operation disappearing and corrupted account file
2016-05-06 Maxime Doyen
Made 5.0.7 release.
* new : preferences, add preview for chart color scheme
* new : doc, added every payment into the lexicon
* wish : #1509485 quicksearch split transactions memo/category
* wish : #1507252 ability to batch-edit selected transactions easily
* wish : #1501125 export to CSV for all reports list view
* wish : #1501111 double-click on sheduled txn in main window to open template editor
* wish : #1292377 enable edit transactions from report detail list
* wish : #880846 hide/show txn list column on right click
* bugfix: #1577555 scheduled transaction edit doesn't enable file save
* bugfix: #1556289 scheduled transactions disappear with no reason
* bugfix: #1553862 budget report categories displayed when selecting subcategories
* bugfix: #1523216 import window wrongly sized
* bugfix: #1511325 no warning about old gtk3.x version when compiling from source
* bugfix: #1523216 Import window wrongly sized
* bugfix: #1464961 inconsistency in my file internal xfer
2015-10-18 Maxime Doyen
......
......@@ -318,6 +318,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
......
This diff is collapsed.
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for homebank 5.1-beta.
# Generated by GNU Autoconf 2.69 for homebank 5.1-rc.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
......@@ -577,8 +577,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='homebank'
PACKAGE_TARNAME='homebank'
PACKAGE_VERSION='5.1-beta'
PACKAGE_STRING='homebank 5.1-beta'
PACKAGE_VERSION='5.1-rc'
PACKAGE_STRING='homebank 5.1-rc'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
......@@ -746,6 +746,7 @@ infodir
docdir
oldincludedir
includedir
runstatedir
localstatedir
sharedstatedir
sysconfdir
......@@ -827,6 +828,7 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
......@@ -1079,6 +1081,15 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
-runstatedir | --runstatedir | --runstatedi | --runstated \
| --runstate | --runstat | --runsta | --runst | --runs \
| --run | --ru | --r)
ac_prev=runstatedir ;;
-runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
| --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
| --run=* | --ru=* | --r=*)
runstatedir=$ac_optarg ;;
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
......@@ -1216,7 +1227,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
libdir localedir mandir
libdir localedir mandir runstatedir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
......@@ -1329,7 +1340,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures homebank 5.1-beta to adapt to many kinds of systems.
\`configure' configures homebank 5.1-rc to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
......@@ -1369,6 +1380,7 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
......@@ -1395,7 +1407,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of homebank 5.1-beta:";;
short | recursive ) echo "Configuration of homebank 5.1-rc:";;
esac
cat <<\_ACEOF
......@@ -1503,7 +1515,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
homebank configure 5.1-beta
homebank configure 5.1-rc
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
......@@ -1922,7 +1934,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by homebank $as_me 5.1-beta, which was
It was created by homebank $as_me 5.1-rc, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
......@@ -2790,7 +2802,7 @@ fi
# Define the identity of the package.
PACKAGE='homebank'
VERSION='5.1-beta'
VERSION='5.1-rc'
cat >>confdefs.h <<_ACEOF
......@@ -4846,7 +4858,7 @@ CFLAGS="${CFLAGS} -Wall -Wmissing-prototypes"
CFLAGS="${CFLAGS} -Wno-deprecated-declarations"
# extended flags
#CFLAGS="${CFLAGS} -Wextra -Wno-unused-parameter"
CFLAGS="${CFLAGS} -Wextra -Wno-unused-parameter"
# profiling valgrind/gprof flags
#CFLAGS="${CFLAGS} -g -O0 -pg"
......@@ -6987,7 +6999,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by homebank $as_me 5.1-beta, which was
This file was extended by homebank $as_me 5.1-rc, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
......@@ -7053,7 +7065,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
homebank config.status 5.1-beta
homebank config.status 5.1-rc
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
......
......@@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.52)
AC_INIT([homebank], [5.1-beta])
AC_INIT([homebank], [5.1-rc])
#AC_INIT([homebank], [x.x-rc])
AM_CONFIG_HEADER(config.h)
......
......@@ -324,6 +324,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
......
......@@ -263,6 +263,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
......
......@@ -324,6 +324,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
......
......@@ -263,6 +263,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
......
......@@ -264,6 +264,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
......
......@@ -235,6 +235,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -298,6 +298,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
......
This diff is collapsed.
......@@ -22,7 +22,7 @@
struct ui_massupdate_dialog_data
struct ui_multipleedit_dialog_data
{
GtkWidget *window;
......
......@@ -1077,6 +1077,8 @@ gint account, count;
ope->date = GLOBALS->today;
}
// normally we can't be in addkeep without initialized ope with add
deftransaction_set_transaction(window, ope);
result = gtk_dialog_run (GTK_DIALOG (window));
......@@ -1436,7 +1438,7 @@ struct hbfile_data *data = user_data;
if( (arc != NULL) )
{
ui_mainwindow_scheduled_do_post(arc, TRUE, data);
ui_mainwindow_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_REFRESHALL));
ui_mainwindow_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_SENSITIVE|UF_REFRESHALL));
}
}
......@@ -1456,8 +1458,8 @@ struct hbfile_data *data = user_data;
da_transaction_init_from_template(txn, arc);
txn->date = scheduled_get_postdate(arc, arc->nextdate);
transaction_add(txn, NULL, 0);
GLOBALS->changes_count++;
scheduled_date_advance(arc);
da_transaction_free (txn);
......@@ -1467,7 +1469,7 @@ struct hbfile_data *data = user_data;
ui_mainwindow_scheduled_do_post(arc, FALSE, data);
}
ui_mainwindow_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_REFRESHALL));
ui_mainwindow_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_SENSITIVE|UF_REFRESHALL));
}
}
......@@ -1479,9 +1481,11 @@ struct hbfile_data *data = user_data;
Archive *arc = ui_mainwindow_scheduled_get_selected_item(GTK_TREE_VIEW(data->LV_upc));
if( (arc != NULL) && (arc->flags & OF_AUTO) )
{
GLOBALS->changes_count++;
scheduled_date_advance(arc);
ui_mainwindow_scheduled_populate(GLOBALS->mainwindow, NULL);
ui_mainwindow_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_SENSITIVE));
}
}
......@@ -2148,7 +2152,7 @@ gint flags;
gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (data->LV_upc), PREFS->grid_lines);
gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_upc));
DB( g_print(" - show toolbar=%d\n", PREFS->wal_toolbar) );
if(PREFS->wal_toolbar)
gtk_widget_show(GTK_WIDGET(data->toolbar));
......@@ -2541,8 +2545,8 @@ GError *error = NULL;
action = gtk_action_group_get_action(action_group, "Open");
g_object_set(action, "short_label", _("Open"), NULL);
action = gtk_action_group_get_action(action_group, "Save");
g_object_set(action, "is_important", TRUE, NULL);
//action = gtk_action_group_get_action(action_group, "Save");
//g_object_set(action, "is_important", TRUE, NULL);
action = gtk_action_group_get_action(action_group, "Account");
g_object_set(action, "short_label", _("Account"), NULL);
......@@ -2849,18 +2853,6 @@ GtkAction *action;
data->window = window;
GLOBALS->mainwindow = window;
//setup, init and show window
wg = &PREFS->wal_wg;
if(wg->s == 0)
{
gtk_window_move(GTK_WINDOW(window), wg->l, wg->t);
gtk_window_resize(GTK_WINDOW(window), wg->w, wg->h);
}
else
gtk_window_maximize(GTK_WINDOW(window));
gtk_widget_show (window);
mainvbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
gtk_container_add (GTK_CONTAINER (window), mainvbox);
......@@ -2907,6 +2899,16 @@ GtkWidget *bar, *label;
if(PREFS->wal_vpaned > 0)
gtk_paned_set_position(GTK_PANED(data->vpaned), PREFS->wal_vpaned);
//setup, init and show window
wg = &PREFS->wal_wg;
if(wg->s == 0)
{
gtk_window_move(GTK_WINDOW(window), wg->l, wg->t);
gtk_window_resize(GTK_WINDOW(window), wg->w, wg->h);
}
else
gtk_window_maximize(GTK_WINDOW(window));
gtk_widget_show_all (window);
//todo: move this elsewhere
......
......@@ -2148,8 +2148,6 @@ void gtk_chart_show_minor(GtkChart * chart, gboolean minor)
}
/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */
/* legend list */
......
......@@ -43,6 +43,7 @@ da_acc_free(Account *item)
{
DB( g_print(" => %d, %s\n", item->key, item->name) );
g_free(item->imp_name);
g_free(item->name);
g_free(item->number);
g_free(item->bankname);
......@@ -341,10 +342,17 @@ Account *acc;
GList *list;
GList *lst_acc, *lnk_acc;
GList *lnk_txn;
gboolean retval;
retval = FALSE;
lst_acc = NULL;
acc = da_acc_get(key);
if( g_queue_get_length(acc->txn_queue) > 0 )
return TRUE;
{
retval = TRUE;
goto end;
}
lst_acc = g_hash_table_get_values(GLOBALS->h_acc);
lnk_acc = g_list_first(lst_acc);
......@@ -360,25 +368,35 @@ GList *lnk_txn;
Transaction *entry = lnk_txn->data;
if( key == entry->kxferacc)
return TRUE;
{
retval = TRUE;
goto end;
}
lnk_txn = g_list_next(lnk_txn);
}
}
lnk_acc = g_list_next(lnk_acc);
}
g_list_free(lst_acc);
list = g_list_first(GLOBALS->arc_list);
while (list != NULL)
{
Archive *entry = list->data;
if( key == entry->kacc || key == entry->kxferacc)
return TRUE;
{
retval = TRUE;
goto end;
}
list = g_list_next(list);
}
return FALSE;
end:
g_list_free(lst_acc);
return retval;
}
......@@ -425,18 +443,31 @@ gchar *stripname = account_get_stripname(newname);
}
/* when we change the currency of an account, we must ensure
* xfer transaction account will be set to same currency
/*
* change the account currency
* change every txn to currency
* ensure dst xfer transaction account will be set to same currency
*/
void account_set_currency(Account *acc, guint32 kcur)
{
GList *list;
Account *srcacc, *dstacc;
Account *dstacc;
gboolean *xfer_list;
guint32 maxkey, i;
DB( g_print("\n[account] set currency\n") );
if(acc->kcur == kcur)
{
DB( g_print(" - already ok, return\n") );
return;
}
acc->kcur = kcur;
DB( g_print(" - set for '%s'\n", acc->name) );
maxkey = da_acc_get_max_key () + 1;
xfer_list = g_malloc0(sizeof(gboolean) * maxkey );
DB( g_print(" - alloc for %d account\n", da_acc_length() ) );
list = g_queue_peek_head_link(acc->txn_queue);
while (list != NULL)
......@@ -444,23 +475,28 @@ Account *srcacc, *dstacc;
Transaction *txn = list->data;
txn->kcur = kcur;
if(txn->paymode == PAYMODE_INTXFER)
if( (txn->paymode == PAYMODE_INTXFER) && (txn->kxferacc > 0) && (txn->kxfer > 0) )
{
if(txn->kacc == acc->key)
{
dstacc = da_acc_get (txn->kxferacc);
dstacc->kcur = kcur;
}
if(txn->kxferacc == acc->key)
{
srcacc = da_acc_get (txn->kacc);
srcacc->kcur = kcur;
}
xfer_list[txn->kxferacc] = TRUE;
}
list = g_list_next(list);
}
acc->kcur = kcur;
DB( g_print(" - '%s'\n", acc->name) );
for(i=1;i<maxkey;i++)
{
DB( g_print(" - %d '%d'\n", i, xfer_list[i]) );
if( xfer_list[i] == TRUE )
{
dstacc = da_acc_get(i);
account_set_currency(dstacc, kcur);
}
}
g_free(xfer_list);
}
......
......@@ -72,14 +72,14 @@ enum
{
ACC_TYPE_NONE = 0,
ACC_TYPE_BANK = 1, //Banque
ACC_TYPE_CASH = 2, //Espce
ACC_TYPE_CASH = 2, //Espèce
ACC_TYPE_ASSET = 3, //Actif (avoir)
ACC_TYPE_CREDITCARD = 4, //Carte crdit
ACC_TYPE_CREDITCARD = 4, //Carte crédit
ACC_TYPE_LIABILITY = 5, //Passif (dettes)
// ACC_TYPE_STOCK = 6, //Actions
// ACC_TYPE_MUTUALFUND = 7, //Fond de placement
// ACC_TYPE_INCOME = 8, //Revenus
// ACC_TYPE_EXPENSE = 9, //Dpenses
// ACC_TYPE_EXPENSE = 9, //Dépenses
// ACC_TYPE_EQUITY = 10, //Capitaux propres
// ACC_TYPE_,
ACC_TYPE_MAXVALUE
......
......@@ -175,7 +175,9 @@ static guint32 _sched_date_get_next_post(Archive *arc, guint32 nextdate)
{
GDate *tmpdate;
guint32 nextpostdate = nextdate;
DB( g_print("\n[scheduled] _sched_date_get_next_post\n") );
tmpdate = g_date_new_julian(nextpostdate);
switch(arc->unit)
{
......@@ -197,17 +199,6 @@ guint32 nextpostdate = nextdate;
nextpostdate = g_date_get_julian(tmpdate);
g_date_free(tmpdate);
/* check limit, update and maybe break */
if(arc->flags & OF_LIMIT)