Commit 5ecc1a7b authored by Maxime Doyen's avatar Maxime Doyen

5.1.5 release

parent fc361eb5
2017-05-10 Maxime Doyen
Made 5.1.5 release.
* change: win32: upgraded to gtk+ 3.22.7
* bugfix: updating currency rate was not updating file changes (and enable save)
* bugfix: #1689308 category usage count does not get updated for split transactions
* bugfix: #1687117 statistic report filter do not update date range
* bugfix: #1683646 only one changed icon is displayed in accounts window when an internal transfer is edited
* bugfix: #1681532 segfault when pressing escape while editing a new transaction
* bugfix: #1678476 french translation is missing in filter
* bugfix: #1678230 time report show all category may be wrong if split
* bugfix: #1676162 can't set transaction amount to 6 decimal points
* bugfix: #1674020 statistics Report: sorting by amount does not work with "Expenses and Income"
* bugfix: #1672209 account window "0.00" balance sometimes displayed in warning color
* bugfix: #1672205 "Show # days in advance the current date" preference doesn't work
* bugfix: #1672135 BYN - new Belorussian currency is not in the list
* bugfix: #1668036 cannot filter on memo if split transaction
* bugfix: #1667201 original account shows edits when inheriting transaction into another account
* bugfix: #1664916 balance report does not include accounts with no transactions
2017-02-16 Maxime Doyen
Made 5.1.4 release.
* change: filter, reworked the layout
* change: filter, category select change now propagate to subcategories
* wish : #1661806 show overdraft amount in account window (balance column)
......@@ -23,6 +45,7 @@
2017-01-22 Maxime Doyen
Made 5.1.3 release.
* new : your account, added expand/collapse button
* wish : #1653350 cvs import default category for payee
* wish : #1645126 remember the size of columns listview in the main window
......
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for homebank 5.1.4.
# Generated by GNU Autoconf 2.69 for homebank 5.1.5.
#
#
# 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.4'
PACKAGE_STRING='homebank 5.1.4'
PACKAGE_VERSION='5.1.5'
PACKAGE_STRING='homebank 5.1.5'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
......@@ -1340,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.4 to adapt to many kinds of systems.
\`configure' configures homebank 5.1.5 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
......@@ -1407,7 +1407,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of homebank 5.1.4:";;
short | recursive ) echo "Configuration of homebank 5.1.5:";;
esac
cat <<\_ACEOF
......@@ -1515,7 +1515,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
homebank configure 5.1.4
homebank configure 5.1.5
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
......@@ -1934,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.4, which was
It was created by homebank $as_me 5.1.5, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
......@@ -2802,7 +2802,7 @@ fi
# Define the identity of the package.
PACKAGE='homebank'
VERSION='5.1.4'
VERSION='5.1.5'
cat >>confdefs.h <<_ACEOF
......@@ -6999,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.4, which was
This file was extended by homebank $as_me 5.1.5, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
......@@ -7065,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.4
homebank config.status 5.1.5
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.4])
AC_INIT([homebank], [5.1.5])
#AC_INIT([homebank], [x.x-rc])
AM_CONFIG_HEADER(config.h)
......
homebank (5.1.4-1) unstable; urgency=medium
homebank (5.1.5-1) unstable; urgency=medium
* debian/control: changed description (Closes: #734503, #639536)
(LP: #155059)
......
......@@ -11,8 +11,8 @@
<p><img src="images/web_title.png"><br></p>
<p>&copy; Copyright 1995-2017 by Maxime Doyen<br>
All Rights Reserved</p>
<p>Version: 5.1.4<br>
Compilation date: February 16th, 2017</p><br>
<p>Version: 5.1.5<br>
Compilation date: May 6th, 2017</p><br>
</div>
</body>
</html>
......@@ -39,8 +39,12 @@
<p>By default the scheduled transactions will be automatically inserted at their due date every time you open your HomeBank file.</p>
<p>You can change this behavior from the <a href="dlg-wall.html">file properties dialog</a> with 2 options:</p>
<ul>
<li>Add until xx of each month (excluded)</li>
<li>Add x days in advance the current date</li>
<li>Add until xx of each month (excluded)<br>
set this to until 25 of each month, will not post until we get over that date (so starting the 26th)
</li>
<li>Add x days in advance the current date<br>
set this to 30 days in advance, rely that the day is over (so current day is excluded)
</li>
</ul>
<p>To insert transaction to their due date again, insert 0 days in advance the current date. You can also reach this configuration dialog from the main-window menu Transaction/Set scheduler...</p>
<p>The insertion at program start can be changed from the <a href="dlg-pref.html#tab1">preferences dialog</a></p>
......@@ -52,4 +56,4 @@
<p><img class="gtkshot" src="images/use-scheduled2.png"></p>
</div>
</body>
</html>
\ No newline at end of file
</html>
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.
......@@ -1151,6 +1151,10 @@ struct register_panel_data *data;
if(PREFS->hidereconciled)
filter_preset_status_set (data->filter, 1);
// add eventual x days into future display
if( PREFS->date_future_nbdays > 0 )
filter_preset_daterange_add_futuregap(data->filter, PREFS->date_future_nbdays);
register_panel_collect_filtered_txn(data->LV_ope);
register_panel_listview_populate(data->LV_ope);
......@@ -1197,6 +1201,7 @@ gushort lpos = 1;
while (list != NULL)
{
Transaction *ope = list->data;
gdouble value;
//#1267344
if(!(ope->status == TXN_STATUS_REMIND))
......@@ -1204,8 +1209,12 @@ gushort lpos = 1;
ope->balance = balance;
//#1661806
ope->overdraft = (ope->balance < data->acc->minimum) ? TRUE : FALSE;
//#1661806 add show overdraft
//#1672209 added round like for #400483
ope->overdraft = FALSE;
value = hb_amount_round(balance, 2);
if( value != 0.0 && value < data->acc->minimum )
ope->overdraft = TRUE;
if(ope->date == ldate)
{
......@@ -1543,7 +1552,8 @@ gboolean result;
deftransaction_get(dialog, NULL);
transaction_add(data->cur_ope, data->LV_ope, data->accnum);
register_panel_update(widget, GINT_TO_POINTER(UF_BALANCE));
data->acc->flags |= AF_ADDED;
//#1667201 already done into transaction_add
//data->acc->flags |= AF_ADDED;
GLOBALS->changes_count++;
//store last date
src_txn->date = data->cur_ope->date;
......
......@@ -46,7 +46,7 @@ struct rgbcol ynab_colors[] =
{ 167, 209, 195 },
{ 51, 177, 191 },
{ 214, 227, 99 },
//{ 242, 219, 64 }, // added color
//{ 246, 166, 209 }, // added color
{ 131, 131, 131 }, // others
};
int ynab_nbcolors = G_N_ELEMENTS(ynab_colors);
......
......@@ -120,7 +120,7 @@ GtkWidgetClass *widget_class;
static void
ui_chart_stack_init (ChartStack * chart)
{
GtkWidget *widget, *hbox, *scrollwin;
GtkWidget *widget, *hbox, *frame;
DB( g_print("\n[chartstack] init\n") );
......@@ -145,24 +145,19 @@ GtkWidget *widget, *hbox, *scrollwin;
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
gtk_box_pack_start (GTK_BOX (widget), hbox, TRUE, TRUE, 0);
/* drawing area */
scrollwin = gtk_frame_new(NULL);
gtk_frame_set_shadow_type (GTK_FRAME(scrollwin), GTK_SHADOW_ETCHED_IN);
gtk_box_pack_start (GTK_BOX (hbox), scrollwin, TRUE, TRUE, 0);
//scrollwin = gtk_scrolled_window_new(NULL,NULL);
//gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrollwin), GTK_SHADOW_ETCHED_IN);
//gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin), GTK_POLICY_NEVER, GTK_POLICY_NEVER);
//gtk_box_pack_start (GTK_BOX (hbox), scrollwin, TRUE, TRUE, 0);
/* frame & drawing area */
frame = gtk_frame_new(NULL);
gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
gtk_box_pack_start (GTK_BOX (hbox), frame, TRUE, TRUE, 0);
chart->drawarea = gtk_drawing_area_new();
//gtk_widget_set_double_buffered (GTK_WIDGET(widget), FALSE);
gtk_container_add( GTK_CONTAINER(scrollwin), chart->drawarea );
gtk_container_add( GTK_CONTAINER(frame), chart->drawarea );
gtk_widget_set_size_request(chart->drawarea, 150, 150 );
gtk_widget_set_has_tooltip(chart->drawarea, FALSE);
gtk_widget_show(chart->drawarea);
/* scrollbar */
chart->adjustment = GTK_ADJUSTMENT(gtk_adjustment_new (0.0, 0.0, 1.0, 1.0, 1.0, 1.0));
chart->scrollbar = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL,GTK_ADJUSTMENT (chart->adjustment));
......@@ -1137,7 +1132,6 @@ gint x, y;
}
static gboolean drawarea_scroll_event_callback( GtkWidget *widget, GdkEventScroll *event, gpointer user_data)
{
ChartStack *chart = GTK_CHARTSTACK(user_data);
......
......@@ -17,8 +17,10 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <math.h>
#include <string.h>
#include <gtk/gtk.h>
#include "homebank.h"
......@@ -44,7 +46,7 @@ static void gtk_chart_init (GtkChart *chart);
static void gtk_chart_dispose (GObject * object);
static void gtk_chart_finalize (GObject * object);
static gboolean drawarea_configure_event(GtkWidget *widget, GdkEventConfigure *event, gpointer user_data);
static gboolean drawarea_configure_event_callback(GtkWidget *widget, GdkEventConfigure *event, gpointer user_data);
static void drawarea_realize_callback(GtkWidget *widget, gpointer user_data);
static gboolean drawarea_draw_callback(GtkWidget *widget, cairo_t *wcr, gpointer user_data);
static gboolean drawarea_motionnotifyevent_callback(GtkWidget *widget, GdkEventMotion *event, gpointer user_data);
......@@ -124,7 +126,7 @@ GObjectClass *gobject_class;
static void
gtk_chart_init (GtkChart * chart)
{
GtkWidget *widget, *vbox;
GtkWidget *widget, *vbox, *frame;
GtkWidget *scrollwin, *treeview;
DB( g_print("\n[gtkchart] init\n") );
......@@ -157,19 +159,14 @@ GtkWidget *scrollwin, *treeview;
gtk_box_pack_start (GTK_BOX (widget), vbox, TRUE, TRUE, 0);
/* drawing area */
scrollwin = gtk_frame_new(NULL);
gtk_frame_set_shadow_type (GTK_FRAME(scrollwin), GTK_SHADOW_ETCHED_IN);
gtk_box_pack_start (GTK_BOX (vbox), scrollwin, TRUE, TRUE, 0);
//scrollwin = gtk_scrolled_window_new(NULL,NULL);
//gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrollwin), GTK_SHADOW_ETCHED_IN);
//gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin), GTK_POLICY_NEVER, GTK_POLICY_NEVER);
//gtk_box_pack_start (GTK_BOX (vbox), scrollwin, TRUE, TRUE, 0);
frame = gtk_frame_new(NULL);
gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0);
chart->drawarea = gtk_drawing_area_new();
//gtk_widget_set_double_buffered (GTK_WIDGET(widget), FALSE);
gtk_container_add( GTK_CONTAINER(scrollwin), chart->drawarea );
gtk_container_add( GTK_CONTAINER(frame), chart->drawarea );
gtk_widget_set_size_request(chart->drawarea, 100, 100 );
gtk_widget_set_has_tooltip(chart->drawarea, TRUE);
gtk_widget_show(chart->drawarea);
......@@ -213,7 +210,7 @@ GtkWidget *scrollwin, *treeview;
//GDK_BUTTON_RELEASE_MASK
);
g_signal_connect( G_OBJECT(chart->drawarea), "configure-event", G_CALLBACK (drawarea_configure_event), chart);
g_signal_connect( G_OBJECT(chart->drawarea), "configure-event", G_CALLBACK (drawarea_configure_event_callback), chart);
g_signal_connect( G_OBJECT(chart->drawarea), "realize", G_CALLBACK(drawarea_realize_callback), chart ) ;
g_signal_connect( G_OBJECT(chart->drawarea), "draw", G_CALLBACK(drawarea_draw_callback), chart ) ;
#if DYNAMICS == 1
......@@ -272,8 +269,6 @@ gtk_chart_dispose (GObject *gobject)
}
static void
gtk_chart_finalize (GObject * object)
{
......@@ -473,12 +468,11 @@ gint color;
ChartItem *item = &g_array_index(chart->items, ChartItem, i);
item->rate = ABS(item->serie1*100/chart->total);
item->legend = g_markup_printf_escaped("%s (%.2f%%)", item->label, item->rate);
item->legend = g_markup_printf_escaped("%s %.2f (%.2f%%)", item->label, item->serie1, item->rate);
}
if( chart->type != CHART_TYPE_LINE )
{
valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL(chart->legend), &iter);
while (valid)
{
......@@ -1009,9 +1003,14 @@ gint i, first;
cr = gdk_cairo_create (gtk_widget_get_window(widget));
//cr = cairo_create (chart->surface);
DB( g_print(" x=%.2f first=%d, blkw=%.2f, barw=%.2f\n", x, first, chart->blkw, chart->barw ) );
#if HELPDRAW == 1
x2 = x + 0.5;
cairo_set_line_width(cr, 1.0);
double dashlength;
dashlength = 4;
cairo_set_dash (cr, &dashlength, 1, 0);
cairo_set_source_rgb(cr, 1.0, 0.0, 1.0); // violet
for(i=first; i<=(first+chart->visible) ;i++)
{
......@@ -1020,6 +1019,7 @@ gint i, first;
x2 += chart->blkw;
}
cairo_stroke(cr);
cairo_set_dash (cr, &dashlength, 0, 0);
#endif
for(i=first; i<(first+chart->visible) ;i++)
......@@ -1208,6 +1208,8 @@ gint first, i;
#if HELPDRAW == 1
x2 = x + 0.5;
cairo_set_line_width(cr, 1.0);
double dashlength = 4;
cairo_set_dash (cr, &dashlength, 1, 0);
cairo_set_source_rgb(cr, 1.0, 0.0, 1.0); // violet
for(i=first; i<=(first+chart->visible) ;i++)
{
......@@ -1217,6 +1219,7 @@ gint first, i;
}
cairo_stroke(cr);
cairo_set_dash (cr, &dashlength, 0, 0);
#endif
//todo: it should be possible to draw line & plot together using surface and composite fill, or sub path ??
......@@ -1408,6 +1411,8 @@ cairo_t *cr;
cr = gdk_cairo_create (gtk_widget_get_window(widget));
//cr = cairo_create (chart->surface);
DB( g_print("rayon=%d\n", chart->rayon) );
for(i=0; i< chart->nb_items ;i++)
{
ChartItem *item = &g_array_index(chart->items, ChartItem, i);
......@@ -1430,7 +1435,7 @@ cairo_t *cr;
cairo_stroke_preserve(cr);
#endif
DB( g_print("%d: %.2f%% %.2f %.2f\n", i, sum / chart->total, a1, a2) );
DB( g_print("- s%2d: %.2f%% a1=%.2f a2=%.2f\n", i, sum / chart->total, a1, a2) );
//g_print("color : %f %f %f\n", COLTOCAIRO(colors[i].r), COLTOCAIRO(colors[i].g), COLTOCAIRO(colors[i].b));
......@@ -1578,7 +1583,6 @@ int tw, th;
cairo_stroke(cr);
#endif
// draw title
if(chart->title)
{
......@@ -1629,9 +1633,8 @@ int tw, th;
}
static gboolean
drawarea_configure_event (GtkWidget *widget,
drawarea_configure_event_callback (GtkWidget *widget,
GdkEventConfigure *event,
gpointer user_data)
{
......@@ -1648,7 +1651,6 @@ GdkRGBA color;
DB( g_print("w=%d h=%d\n", allocation.width, allocation.height) );
if (chart->surface)
cairo_surface_destroy (chart->surface);
......@@ -1690,6 +1692,8 @@ GdkRGBA color;
DB( g_print(" - theme text (bg) col: %x %x %x\n", tcol->r, tcol->g, tcol->b) );
}
//commented 5.1.5
//drawarea_full_redraw(widget, user_data);
/* get and copy the font */
gtk_style_context_get(context, GTK_STATE_FLAG_NORMAL, "font", &desc, NULL);
......@@ -1937,6 +1941,8 @@ void gtk_chart_set_datas(GtkChart *chart, GtkTreeModel *model, guint column, gch
{
g_return_if_fail (GTK_IS_CHART (chart));
DB( g_print("\n[gtkchart] set datas\n") );
if( GTK_IS_TREE_MODEL(model) )
{
chart_setup_with_model(chart, model, column, column);
......@@ -1963,6 +1969,8 @@ void gtk_chart_set_dualdatas(GtkChart *chart, GtkTreeModel *model, guint column1
{
g_return_if_fail (GTK_IS_CHART (chart));
DB( g_print("\n[gtkchart] set dualdatas\n") );
if( GTK_IS_TREE_MODEL(model) )
{
chart_setup_with_model(chart, model, column1, column2 );
......@@ -2014,6 +2022,8 @@ void gtk_chart_set_minor_prefs(GtkChart * chart, gdouble rate, gchar *symbol)
{
g_return_if_fail (GTK_IS_CHART (chart));
DB( g_print("\n[gtkchart] set minor prefs\n") );
chart->minor_rate = rate;
chart->minor_symbol = symbol;
}
......@@ -2023,6 +2033,8 @@ void gtk_chart_set_absolute(GtkChart * chart, gboolean abs)
{
g_return_if_fail (GTK_IS_CHART (chart));
DB( g_print("\n[gtkchart] set absolute\n") );
chart->abs = abs;
}
......@@ -2042,6 +2054,8 @@ void gtk_chart_set_overdrawn(GtkChart * chart, gdouble minimum)
{
g_return_if_fail (GTK_IS_CHART (chart));
DB( g_print("\n[gtkchart] set overdrawn\n") );
chart->minimum = minimum;
//if(chart->type == CHART_TYPE_LINE)
......@@ -2055,6 +2069,8 @@ void gtk_chart_set_every_xval(GtkChart * chart, gint gap)
{
g_return_if_fail (GTK_IS_CHART (chart));
DB( g_print("\n[gtkchart] set every_xval\n") );
chart->every_xval = gap;
//if(chart->type != CHART_TYPE_PIE)
......@@ -2069,6 +2085,8 @@ void gtk_chart_set_barw(GtkChart * chart, gdouble barw)
{
g_return_if_fail (GTK_IS_CHART (chart));
DB( g_print("\n[gtkchart] set barw\n") );
chart->barw = barw;
if(chart->type != CHART_TYPE_PIE)
......@@ -2121,6 +2139,8 @@ void gtk_chart_show_xval(GtkChart * chart, gboolean visible)
{
g_return_if_fail (GTK_IS_CHART (chart));
DB( g_print("\n[gtkchart] set show xval\n") );
chart->show_xval = visible;
//if(chart->type != CHART_TYPE_PIE)
......@@ -2134,6 +2154,8 @@ void gtk_chart_show_overdrawn(GtkChart * chart, gboolean visible)
{
g_return_if_fail (GTK_IS_CHART (chart));
DB( g_print("\n[gtkchart] set show overdrawn\n") );
chart->show_over = visible;
//if(chart->type == CHART_TYPE_LINE)
......@@ -2148,6 +2170,8 @@ void gtk_chart_show_minor(GtkChart * chart, gboolean minor)
{
g_return_if_fail (GTK_IS_CHART (chart));
DB( g_print("\n[gtkchart] set show minor\n") );
chart->minor = minor;
if(chart->type != CHART_TYPE_PIE)
......@@ -2258,6 +2282,9 @@ GtkWidget *view;
GtkCellRenderer *renderer;
GtkTreeViewColumn *column;
DB( g_print("\n[gtkchart] legend_list_new\n") );
store = gtk_list_store_new(NUM_LST_LEGEND,
G_TYPE_POINTER,
GDK_TYPE_PIXBUF,
......
......@@ -76,6 +76,7 @@ enum
{
CHART_TYPE_NONE,
CHART_TYPE_COL,
CHART_TYPE_PIE,
CHART_TYPE_LINE,
CHART_TYPE_MAX
......
......@@ -664,6 +664,7 @@ GList *lcat;
GList *lst_acc, *lnk_acc;
GList *lnk_txn;
GList *lpay, *lrul, *list;
guint i, nbsplit;
lcat = list = g_hash_table_get_values(GLOBALS->h_cat);
while (list != NULL)
......@@ -686,7 +687,20 @@ GList *lpay, *lrul, *list;
{
Transaction *txn = lnk_txn->data;
category_fill_usage_count(txn->kcat);
//#1689308 count split as well
if( txn->flags & OF_SPLIT )
{
nbsplit = da_splits_count(txn->splits);
for(i=0;i<nbsplit;i++)
{
Split *split = txn->splits[i];
category_fill_usage_count(split->kcat);
}
}
else
category_fill_usage_count(txn->kcat);
lnk_txn = g_list_next(lnk_txn);
}
lnk_acc = g_list_next(lnk_acc);
......@@ -709,7 +723,20 @@ GList *lpay, *lrul, *list;
{
Archive *entry = list->data;
category_fill_usage_count(entry->kcat);
//#1689308 count split as well
if( entry->flags & OF_SPLIT )
{
nbsplit = da_splits_count(entry->splits);
for(i=0;i<nbsplit;i++)
{
Split *split = entry->splits[i];
category_fill_usage_count(split->kcat);
}
}
else
category_fill_usage_count(entry->kcat);
list = g_list_next(list);
}
......
......@@ -548,6 +548,7 @@ Currency *cur;
DB( g_print(" found cur='%s'\n", cur->iso_code) );
cur->rate = ctx->rate;
cur->mdate = GLOBALS->today;
GLOBALS->changes_count++;
}
//clean all
......@@ -732,7 +733,8 @@ Currency4217 iso4217cur[] =
{ "BSD", 2, ".", ",", TRUE, "$", "Bahamian Dollar" },
{ "BTN", 2, ".", ",", TRUE, "Nu.", "Ngultrum" },
{ "BWP", 2, ".", " ", TRUE, "P", "Pula" },
{ "BYR", 0, ",", " ", FALSE, "Br", "Belarussian Ruble" },
{ "BYN", 0, ",", " ", FALSE, "Br", "Belarussian Ruble" },
{ "BYR", 0, ",", " ", FALSE, "Br", "Old Belarussian Ruble" },
{ "BZD", 2, ".", ",", TRUE, "$", "Belize Dollar" },
{ "CAD", 2, ",", " ", TRUE, "$", "Canadian Dollar" },
{ "CDF", 2, ",", " ", TRUE, "FC", "Congolese Franc" },
......
This diff is collapsed.
......@@ -94,6 +94,7 @@ typedef struct _filter Filter;
struct _filter
{
guint32 mindate, maxdate;
gint nbdaysfuture;
gint range;
gint type;
gint status;
......
......@@ -223,14 +223,16 @@ gdouble monval;
}
else
{
monval = hb_amount_base(value, kcur);
monval = hb_amount_to_euro(monval);
cur = &PREFS->minor_cur;
monval = hb_amount_to_euro(value);
g_ascii_formatd(formatd_buf, outlen, cur->format, monval);
hb_str_formatd(outstr, outlen, formatd_buf, cur, TRUE);
}
}
void hb_strfmon_int(gchar *outstr, gint outlen, gdouble value, guint32 kcur, gboolean minor)
{
gchar formatd_buf[outlen];
......@@ -249,8 +251,9 @@ gdouble monval;
}
else
{
monval = hb_amount_base(value, kcur);
monval = hb_amount_to_euro(monval);
cur = &PREFS->minor_cur;
monval = hb_amount_to_euro(value);
g_ascii_formatd(formatd_buf, outlen, cur->format, monval);
hb_str_formatd(outstr, outlen, formatd_buf, cur, TRUE);
}
......@@ -286,7 +289,6 @@ gdouble monval;
}