[grisbi-cvs] [SCM] grisbi branch, master, updated. bee095a83b22cd587f27daf9442df74dfd0e1749

Pierre Biava nobody at users.sourceforge.net
Fri Jul 23 17:19:59 CEST 2010


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "grisbi".

The branch, master has been updated
       via  bee095a83b22cd587f27daf9442df74dfd0e1749 (commit)
       via  3d4171f4ef4c319a68b144c0723c2f4a54963ff7 (commit)
       via  4e9cb768b90767f7f30f1753d1286f0e6680abbe (commit)
       via  1de7726c988522f6918d5b0909f3577e9b72f6a6 (commit)
       via  a6fe2ef17682f07067e30cdffb0bbaafe2f4f950 (commit)
       via  75f7057891c7de682f6e8106253a64aa0b137feb (commit)
       via  0533ffdb05d71d5089b118aa30c1e0780ebb4997 (commit)
       via  bcdab1ae341b436dd4d97094154853107a134333 (commit)
       via  70f8b078ee8f3854477818c038fa82eedd2e5c0e (commit)
      from  6ce67abc7598f72fc4fe61d32533474bd44cc2b3 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit bee095a83b22cd587f27daf9442df74dfd0e1749
Author: pbiava <pierre.biava at nerim.net>
Date:   Fri Jul 23 17:13:53 2010 +0200

    Editing options of gcc and and deleting gcc compilation warning

commit 3d4171f4ef4c319a68b144c0723c2f4a54963ff7
Author: pbiava <pierre.biava at nerim.net>
Date:   Thu Jul 22 21:26:24 2010 +0200

    Minor corrections

commit 4e9cb768b90767f7f30f1753d1286f0e6680abbe
Author: pbiava <pierre.biava at nerim.net>
Date:   Thu Jul 22 20:40:20 2010 +0200

    change version and add a file for the financial_ui

commit 1de7726c988522f6918d5b0909f3577e9b72f6a6
Author: pbiava <pierre.biava at nerim.net>
Date:   Thu Jul 22 20:20:57 2010 +0200

    Add credits simulator. WARNING:experimental

commit a6fe2ef17682f07067e30cdffb0bbaafe2f4f950
Author: pbiava <pierre.biava at nerim.net>
Date:   Sun Jul 18 08:35:26 2010 +0200

    Corrige un bug d'affichage des préférences

commit 75f7057891c7de682f6e8106253a64aa0b137feb
Author: pbiava <pierre.biava at nerim.net>
Date:   Sun Jul 18 08:32:29 2010 +0200

    Corrige un bug de calcul du solde pointé

commit 0533ffdb05d71d5089b118aa30c1e0780ebb4997
Author: pbiava <pierre.biava at nerim.net>
Date:   Wed Jul 14 22:22:44 2010 +0200

    nettoyage du code

commit bcdab1ae341b436dd4d97094154853107a134333
Author: pbiava <pierre.biava at nerim.net>
Date:   Wed Jul 14 21:54:47 2010 +0200

    add account_icon in gsb file and change management of logo

commit 70f8b078ee8f3854477818c038fa82eedd2e5c0e
Author: pbiava <pierre.biava at nerim.net>
Date:   Tue Jul 13 07:35:38 2010 +0200

    add files bet_finance_ui

-----------------------------------------------------------------------

Changes:
diff --git a/configure.in b/configure.in
index 70ee8f0..4ca74e3 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,4 @@
-AC_INIT([grisbi],[0.7.0])
+AC_INIT([grisbi],[0.7.1])
 AC_CONFIG_SRCDIR(src/main.c)
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_MACRO_DIR([m4])
@@ -170,10 +170,10 @@ AC_ARG_ENABLE(werror,
  	enable_werror=no)
 if test "x$enable_werror" = xyes ; then
 	if test "x$GCC" = "xyes" ; then
-		CFLAGS="$CFLAGS -Wall -Werror"
-		AC_MSG_WARN([Werror and Wall flags are enabled])
+		CFLAGS="$CFLAGS -Wall -Wunused -Wno-unused-parameter -Wno-unused-function"
+		AC_MSG_WARN([Wall and Wunused flags are enabled])
 	else
-		AC_MSG_WARN([WError and WAll can be enabled only with gcc])
+		AC_MSG_WARN([Wall and Wunused can be enabled only with gcc])
 	fi
 fi
 
diff --git a/pixmaps/Makefile.am b/pixmaps/Makefile.am
index 157eafb..dfe50c2 100644
--- a/pixmaps/Makefile.am
+++ b/pixmaps/Makefile.am
@@ -9,6 +9,7 @@ grisbi_pixmaps_DATA = \
 	ac_cash.png \
 	ac_home.png \
 	ac_liability.png \
+	ac_liability_16.png \
 	addresses.png \
 	amount.png \
 	archive.png \
diff --git a/pixmaps/ac_liability_16.png b/pixmaps/ac_liability_16.png
new file mode 100644
index 0000000..f1c9403
Binary files /dev/null and b/pixmaps/ac_liability_16.png differ
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 050a053..f7e69e9 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -3,6 +3,8 @@ src/affichage.c
 src/affichage_liste.c
 src/bet_config.c
 src/bet_data.c
+src/bet_data_finance.c
+src/bet_finance_ui.c
 src/bet_future.c
 src/bet_hist.c
 src/bet_tab.c
diff --git a/po/fr.po b/po/fr.po
index 8e8051c..9fce60a 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -14,7 +14,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: fr\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-06-29 20:26+0200\n"
+"POT-Creation-Date: 2010-07-10 17:00+0200\n"
 "PO-Revision-Date: 2010-05-02 23:26+0200\n"
 "Last-Translator: Pierre Biava <pierre at pierre.biava.name>\n"
 "Language-Team: GNOME French Team <gnomefr at traduc.org>\n"
@@ -92,7 +92,7 @@ msgstr "Solde pointé"
 msgid "Current balance"
 msgstr "Solde courant"
 
-#: ../src/accueil.c:1009 ../src/balance_estimate_future.c:2113
+#: ../src/accueil.c:1009 ../src/bet_future.c:2112
 msgid "Partial balance"
 msgstr "Solde partiel"
 
@@ -179,7 +179,7 @@ msgstr "Soldes partiels de la liste des comptes"
 #. Financial year name
 #. set the name
 #. Name entry
-#: ../src/accueil.c:2067 ../src/balance_estimate_future.c:2136
+#: ../src/accueil.c:2067 ../src/bet_future.c:2135
 #: ../src/categories_onglet.c:666 ../src/gsb_archive_config.c:98
 #: ../src/gsb_archive_config.c:186 ../src/gsb_assistant_archive_export.c:150
 #: ../src/gsb_assistant_reconcile_config.c:388
@@ -188,7 +188,7 @@ msgstr "Soldes partiels de la liste des comptes"
 #: ../src/gsb_data_partial_balance.c:1553 ../src/gsb_fyear_config.c:191
 #: ../src/gsb_fyear_config.c:278 ../src/gsb_payment_method_config.c:239
 #: ../src/gsb_reconcile_config.c:180 ../src/gsb_transactions_list.c:1785
-#: ../src/imputation_budgetaire.c:703 ../src/tiers_onglet.c:625
+#: ../src/imputation_budgetaire.c:704 ../src/tiers_onglet.c:625
 msgid "Name"
 msgstr "Nom"
 
@@ -211,12 +211,12 @@ msgstr "Devise"
 
 #. initialization of titles
 #: ../src/accueil.c:2151 ../src/affichage.c:993 ../src/affichage.c:994
-#: ../src/gsb_assistant_file.c:564 ../src/navigation.c:1133
-#: ../src/navigation.c:1134 ../src/traitement_variables.c:305
+#: ../src/gsb_assistant_file.c:564 ../src/navigation.c:1142
+#: ../src/navigation.c:1143 ../src/traitement_variables.c:304
 msgid "My accounts"
 msgstr "Mes comptes"
 
-#: ../src/affichage.c:141 ../src/parametres.c:347
+#: ../src/affichage.c:141 ../src/parametres.c:350
 msgid "Fonts & logo"
 msgstr "Polices et logo"
 
@@ -256,7 +256,7 @@ msgstr "Choisissez une couleur"
 msgid "Back to default"
 msgstr "Restaurer les réglages par défaut"
 
-#: ../src/affichage.c:370 ../src/parametres.c:365
+#: ../src/affichage.c:370 ../src/parametres.c:368
 msgid "Addresses & titles"
 msgstr "Adresses et titres"
 
@@ -300,7 +300,7 @@ msgstr "Adresse secondaire"
 msgid "Select a new logo"
 msgstr "Sélectionner un nouveau logo"
 
-#: ../src/affichage.c:697 ../src/parametres.c:383
+#: ../src/affichage.c:697 ../src/parametres.c:386
 msgid "Toolbars"
 msgstr "Barres d'outils"
 
@@ -506,116 +506,113 @@ msgstr "Ne pas autoriser la création de nouvelles catégories/Imputations B."
 msgid "Maximum items showed in drop down lists (0 for no limit)"
 msgstr "Nombre maximum de lignes dans les menus déroulants (0 pas de limite)"
 
-#: ../src/balance_estimate_config.c:82 ../src/etats_config.c:6371
+#: ../src/bet_config.c:80 ../src/etats_config.c:6371
 msgid "Month"
 msgstr "Mois"
 
-#: ../src/balance_estimate_config.c:83 ../src/etats_config.c:6375
+#: ../src/bet_config.c:81 ../src/etats_config.c:6375
 msgid "Year"
 msgstr "Année"
 
-#: ../src/balance_estimate_config.c:103 ../src/parametres.c:543
+#: ../src/bet_config.c:101 ../src/parametres.c:545
 msgid "General Options"
 msgstr "Généralités"
 
 #. Calculation of period
-#: ../src/balance_estimate_config.c:107
+#: ../src/bet_config.c:105
 msgid "Common data"
 msgstr "Données communes"
 
-#: ../src/balance_estimate_config.c:141
+#: ../src/bet_config.c:139
 msgid "Beginning of period"
 msgstr "Début de la période"
 
-#: ../src/balance_estimate_config.c:150
+#: ../src/bet_config.c:148
 msgid "1st day of month"
 msgstr "1er jour du mois"
 
-#: ../src/balance_estimate_config.c:156
+#: ../src/bet_config.c:154
 msgid "date today"
 msgstr "Aujourd'hui"
 
-#: ../src/balance_estimate_config.c:176
+#: ../src/bet_config.c:174
 msgid "Note: This option is used if no starting date for forecasts."
 msgstr ""
 "Note : cette option est utilisée en l'absence d'une date de début pour les "
 "prévisions."
 
-#: ../src/balance_estimate_config.c:204 ../src/parametres.c:552
+#: ../src/bet_config.c:202 ../src/parametres.c:554
 msgid "Accounts data"
 msgstr "Données des comptes"
 
 #. Data for the forecast
-#: ../src/balance_estimate_config.c:224
+#: ../src/bet_config.c:222
 msgid "Data for the forecast"
 msgstr "Données pour le tableau des prévisions"
 
 #. Sources of historical data
-#: ../src/balance_estimate_config.c:229
+#: ../src/bet_config.c:227
 msgid "Sources of historical data"
 msgstr "Sources des données historiques"
 
 #. set the choice of account
-#: ../src/balance_estimate_config.c:270 ../src/categories_onglet.c:152
+#: ../src/bet_config.c:268 ../src/categories_onglet.c:152
 #: ../src/etats_config.c:681 ../src/gsb_assistant_reconcile_config.c:399
 #: ../src/gsb_assistant_reconcile_config.c:594
 #: ../src/gsb_payment_method_config.c:159 ../src/gsb_reconcile_config.c:96
 #: ../src/gsb_scheduler_list.c:339 ../src/imputation_budgetaire.c:164
-#: ../src/navigation.c:1154 ../src/tiers_onglet.c:231
+#: ../src/navigation.c:1163 ../src/tiers_onglet.c:231
 msgid "Account"
 msgstr "Compte"
 
-#: ../src/balance_estimate_config.c:284
+#: ../src/bet_config.c:282
 msgid "Use the budget module"
 msgstr "Utiliser le module budgétaire"
 
 #. partie mensuelle
-#: ../src/balance_estimate_config.c:353
+#: ../src/bet_config.c:351
 msgid "Duration estimation"
 msgstr "Durée d'estimation"
 
-#: ../src/balance_estimate_config.c:516
+#: ../src/bet_config.c:514
 msgid "Labels for transactions"
 msgstr "Libellé des opérations"
 
-#: ../src/balance_estimate_config.c:521 ../src/balance_estimate_config.c:539
-#: ../src/balance_estimate_config.c:556
+#: ../src/bet_config.c:519 ../src/bet_config.c:537 ../src/bet_config.c:554
 msgid "By default"
 msgstr "Par défaut"
 
 #. mise en place de la paddingbox des catégories
 #. set the title
-#: ../src/balance_estimate_config.c:522 ../src/balance_estimate_config.c:540
-#: ../src/balance_estimate_config.c:557 ../src/balance_estimate_config.c:620
-#: ../src/balance_estimate_hist.c:157 ../src/etats_config.c:526
+#: ../src/bet_config.c:520 ../src/bet_config.c:538 ../src/bet_config.c:555
+#: ../src/bet_config.c:618 ../src/bet_hist.c:156 ../src/etats_config.c:526
 #: ../src/etats_config.c:529 ../src/etats_config.c:2991
-#: ../src/etats_config.c:7057 ../src/fenetre_principale.c:273
-#: ../src/navigation.c:303 ../src/navigation.c:1212
+#: ../src/etats_config.c:7057 ../src/fenetre_principale.c:277
+#: ../src/navigation.c:316 ../src/navigation.c:1232
 msgid "Categories"
 msgstr "Catégories"
 
 #. mise en place de la paddingbox des ib
 #. set the title
-#: ../src/balance_estimate_config.c:523 ../src/balance_estimate_config.c:541
-#: ../src/balance_estimate_config.c:558 ../src/balance_estimate_config.c:629
-#: ../src/balance_estimate_hist.c:166 ../src/etats_config.c:535
+#: ../src/bet_config.c:521 ../src/bet_config.c:539 ../src/bet_config.c:556
+#: ../src/bet_config.c:627 ../src/bet_hist.c:165 ../src/etats_config.c:535
 #: ../src/etats_config.c:538 ../src/etats_config.c:3797
 #: ../src/etats_config.c:7134 ../src/export_csv.c:799
-#: ../src/fenetre_principale.c:278 ../src/import_csv.c:86
-#: ../src/navigation.c:320 ../src/navigation.c:1223
-#: ../src/traitement_variables.c:81
+#: ../src/fenetre_principale.c:282 ../src/import_csv.c:86
+#: ../src/navigation.c:332 ../src/navigation.c:1243
+#: ../src/traitement_variables.c:80
 msgid "Budgetary lines"
 msgstr "Imputations budgétaires"
 
-#: ../src/balance_estimate_config.c:534
+#: ../src/bet_config.c:532
 msgid "Labels for scheduled transactions"
 msgstr "Libellé des opérations planifiées"
 
-#: ../src/balance_estimate_config.c:551
+#: ../src/bet_config.c:549
 msgid "Labels for futur data"
 msgstr "Libellé des données prévisionnelles"
 
-#: ../src/balance_estimate_config.c:564
+#: ../src/bet_config.c:562
 msgid ""
 "Order by default if the data are not zero: notes, payee, category and "
 "budgetary line."
@@ -623,30 +620,33 @@ msgstr ""
 "Classement des données par défaut si elles existent :\n"
 "\tremarques, tiers, catégories et imputations budgétaires."
 
-#: ../src/balance_estimate_config.c:644 ../src/balance_estimate_hist.c:186
+#: ../src/bet_config.c:642 ../src/bet_hist.c:185
 msgid "Choose the financial year or 12 months rolling"
 msgstr "Choix de l'exercice ou 12 mois glissants"
 
 #. name of the div sous-div column
-#: ../src/balance_estimate_config.c:850 ../src/balance_estimate_hist.c:531
+#: ../src/bet_config.c:848 ../src/bet_hist.c:530
 #: ../src/categories_onglet.c:143 ../src/etats_affiche.c:2433
 #: ../src/etats_config.c:673 ../src/export_csv.c:790
 #: ../src/gsb_transactions_list.c:156 ../src/import_csv.c:84
-#: ../src/meta_categories.c:65 ../src/traitement_variables.c:89
+#: ../src/meta_categories.c:65 ../src/traitement_variables.c:88
 msgid "Category"
 msgstr "Catégorie"
 
-#: ../src/balance_estimate_config.c:856 ../src/balance_estimate_future.c:817
-#: ../src/balance_estimate_future.c:2025 ../src/balance_estimate_future.c:2502
-#: ../src/etats_affiche.c:2440 ../src/etats_config.c:677
-#: ../src/gsb_form.c:1298 ../src/gsb_form_widget.c:442
-#: ../src/gsb_transactions_list.c:148 ../src/imputation_budgetaire.c:155
-#: ../src/meta_budgetary.c:62
+#: ../src/bet_config.c:854 ../src/bet_future.c:816 ../src/bet_future.c:2024
+#: ../src/bet_future.c:2501 ../src/etats_affiche.c:2440
+#: ../src/etats_config.c:677 ../src/gsb_form.c:1312
+#: ../src/gsb_form_widget.c:442 ../src/gsb_transactions_list.c:148
+#: ../src/imputation_budgetaire.c:155 ../src/meta_budgetary.c:62
 msgid "Budgetary line"
 msgstr "Imputation budgétaire"
 
-#: ../src/balance_estimate_future.c:228 ../src/balance_estimate_future.c:1774
-#: ../src/balance_estimate_future.c:1873 ../src/balance_estimate_future.c:2420
+#: ../src/bet_finance_ui.c:70
+msgid "Credit Calculator and Amortization"
+msgstr "Simulateur de crédit et d'amortissement"
+
+#: ../src/bet_future.c:227 ../src/bet_future.c:1773 ../src/bet_future.c:1872
+#: ../src/bet_future.c:2419
 msgid ""
 "Error: the frequency defined by the user or the amount is not specified or "
 "the date is invalid."
@@ -654,82 +654,80 @@ msgstr ""
 "Erreur: la périodicité définie par l'utilisateur ou le montant n'est pas "
 "défini ou la date est invalide."
 
-#: ../src/balance_estimate_future.c:230 ../src/balance_estimate_future.c:1776
-#: ../src/balance_estimate_future.c:1875 ../src/balance_estimate_future.c:2422
-#: ../src/gsb_currency.c:740
+#: ../src/bet_future.c:229 ../src/bet_future.c:1775 ../src/bet_future.c:1874
+#: ../src/bet_future.c:2421 ../src/gsb_currency.c:740
 msgid "One field is not filled in"
 msgstr "Un champs n'est pas rempli !"
 
 #. Create the dialog
-#: ../src/balance_estimate_future.c:260
+#: ../src/bet_future.c:259
 msgid "Enter a budget line"
 msgstr "Créer une ligne budgétaire"
 
-#: ../src/balance_estimate_future.c:314 ../src/balance_estimate_future.c:856
+#: ../src/bet_future.c:313 ../src/bet_future.c:855
 #: ../src/gsb_form_scheduler.c:152 ../src/gsb_form_scheduler.c:874
 #: ../src/gsb_scheduler_list.c:998
 msgid "Once"
 msgstr "Une fois"
 
-#: ../src/balance_estimate_future.c:314 ../src/gsb_form_scheduler.c:152
+#: ../src/bet_future.c:313 ../src/gsb_form_scheduler.c:152
 #: ../src/gsb_scheduler_list.c:998
 msgid "Weekly"
 msgstr "Hebdomadaire"
 
-#: ../src/balance_estimate_future.c:314 ../src/gsb_form_scheduler.c:152
+#: ../src/bet_future.c:313 ../src/gsb_form_scheduler.c:152
 msgid "Monthly"
 msgstr "Mensuel"
 
-#: ../src/balance_estimate_future.c:314 ../src/gsb_form_scheduler.c:152
+#: ../src/bet_future.c:313 ../src/gsb_form_scheduler.c:152
 #: ../src/gsb_scheduler_list.c:999
 msgid "Bimonthly"
 msgstr "Bimestriel"
 
-#: ../src/balance_estimate_future.c:315 ../src/gsb_form_scheduler.c:153
+#: ../src/bet_future.c:314 ../src/gsb_form_scheduler.c:153
 #: ../src/gsb_scheduler_list.c:999
 msgid "Quarterly"
 msgstr "Trimestriel"
 
-#: ../src/balance_estimate_future.c:315 ../src/gsb_form_scheduler.c:153
+#: ../src/bet_future.c:314 ../src/gsb_form_scheduler.c:153
 #: ../src/gsb_scheduler_list.c:999
 msgid "Yearly"
 msgstr "Annuel"
 
-#: ../src/balance_estimate_future.c:315 ../src/balance_estimate_future.c:870
-#: ../src/etats_config.c:179 ../src/gsb_form_scheduler.c:153
-#: ../src/gsb_form_scheduler.c:884
+#: ../src/bet_future.c:314 ../src/bet_future.c:869 ../src/etats_config.c:179
+#: ../src/gsb_form_scheduler.c:153 ../src/gsb_form_scheduler.c:884
 msgid "Custom"
 msgstr "Personnalisé"
 
-#: ../src/balance_estimate_future.c:316 ../src/gsb_form_scheduler.c:154
+#: ../src/bet_future.c:315 ../src/gsb_form_scheduler.c:154
 msgid "Days"
 msgstr "Jours"
 
-#: ../src/balance_estimate_future.c:316 ../src/gsb_form_scheduler.c:154
+#: ../src/bet_future.c:315 ../src/gsb_form_scheduler.c:154
 msgid "Weeks"
 msgstr "Semaines"
 
-#: ../src/balance_estimate_future.c:316 ../src/gsb_form_scheduler.c:154
+#: ../src/bet_future.c:315 ../src/gsb_form_scheduler.c:154
 msgid "Months"
 msgstr "Mois"
 
-#: ../src/balance_estimate_future.c:316 ../src/gsb_form_scheduler.c:154
+#: ../src/bet_future.c:315 ../src/gsb_form_scheduler.c:154
 msgid "Years"
 msgstr "Années"
 
-#: ../src/balance_estimate_future.c:329 ../src/gsb_form_scheduler.c:175
+#: ../src/bet_future.c:328 ../src/gsb_form_scheduler.c:175
 #: ../src/gsb_form_scheduler.c:192 ../src/gsb_scheduler_list.c:339
 msgid "Frequency"
 msgstr "Périodicité"
 
-#: ../src/balance_estimate_future.c:337 ../src/balance_estimate_future.c:732
+#: ../src/bet_future.c:336 ../src/bet_future.c:731
 #: ../src/gsb_form_scheduler.c:640 ../src/gsb_form_scheduler.c:833
 #: ../src/gsb_form_scheduler.c:1095
 msgid "Limit date"
 msgstr "Date limite"
 
 #. set the final date
-#: ../src/balance_estimate_future.c:350 ../src/etats_config.c:2329
+#: ../src/bet_future.c:349 ../src/etats_config.c:2329
 #: ../src/gsb_archive_config.c:98 ../src/gsb_assistant_archive.c:242
 #: ../src/gsb_assistant_archive_export.c:150
 #: ../src/gsb_assistant_reconcile_config.c:422
@@ -739,82 +737,78 @@ msgstr "Date limite"
 msgid "Final date"
 msgstr "Date finale"
 
-#: ../src/balance_estimate_future.c:357 ../src/balance_estimate_future.c:736
+#: ../src/bet_future.c:356 ../src/bet_future.c:735
 #: ../src/gsb_form_scheduler.c:205 ../src/gsb_form_scheduler.c:647
 #: ../src/gsb_form_scheduler.c:839
 msgid "Own frequency"
 msgstr "Périodicité utilisateur"
 
-#: ../src/balance_estimate_future.c:367 ../src/balance_estimate_future.c:373
+#: ../src/bet_future.c:366 ../src/bet_future.c:372
 #: ../src/gsb_form_scheduler.c:211
 msgid "Custom frequency"
 msgstr "Périodicité personnalisée"
 
-#: ../src/balance_estimate_future.c:528 ../src/gsb_form_widget.c:208
+#: ../src/bet_future.c:527 ../src/gsb_form_widget.c:208
 msgid "Choose the financial year"
 msgstr "Choix de l'exercice"
 
-#: ../src/balance_estimate_future.c:575 ../src/gsb_form_widget.c:263
+#: ../src/bet_future.c:574 ../src/gsb_form_widget.c:263
 msgid "Choose the method of payment"
 msgstr "Choix du mode de règlement"
 
-#: ../src/balance_estimate_future.c:771 ../src/balance_estimate_tab.c:616
-#: ../src/etats_affiche.c:2405 ../src/export_csv.c:760
-#: ../src/gsb_assistant_reconcile_config.c:594 ../src/gsb_form.c:1240
-#: ../src/gsb_form_widget.c:410 ../src/gsb_reconcile.c:155
-#: ../src/gsb_scheduler_list.c:339 ../src/gsb_transactions_list.c:145
-#: ../src/import.c:3183 ../src/import_csv.c:79
-#: ../src/traitement_variables.c:78
+#: ../src/bet_future.c:770 ../src/bet_tab.c:614 ../src/etats_affiche.c:2405
+#: ../src/export_csv.c:760 ../src/gsb_assistant_reconcile_config.c:594
+#: ../src/gsb_form.c:1267 ../src/gsb_form_widget.c:410
+#: ../src/gsb_reconcile.c:155 ../src/gsb_scheduler_list.c:339
+#: ../src/gsb_transactions_list.c:145 ../src/import.c:3183
+#: ../src/import_csv.c:79 ../src/traitement_variables.c:77
 msgid "Date"
 msgstr "Date"
 
 #. mise en place de la paddingbox des tiers
-#: ../src/balance_estimate_future.c:789 ../src/etats_affiche.c:2426
+#: ../src/bet_future.c:788 ../src/etats_affiche.c:2426
 #: ../src/etats_config.c:517 ../src/etats_config.c:520
 #: ../src/etats_config.c:685 ../src/etats_config.c:7022
-#: ../src/export_csv.c:775 ../src/fenetre_principale.c:268
-#: ../src/gsb_assistant_reconcile_config.c:594 ../src/gsb_form.c:1267
+#: ../src/export_csv.c:775 ../src/fenetre_principale.c:266
+#: ../src/gsb_assistant_reconcile_config.c:594 ../src/gsb_form.c:1288
 #: ../src/gsb_form_widget.c:430 ../src/gsb_scheduler_list.c:339
 #: ../src/gsb_transactions_list.c:147 ../src/import.c:3190
 #: ../src/import_csv.c:81 ../src/meta_payee.c:77
-#: ../src/traitement_variables.c:80
+#: ../src/traitement_variables.c:79
 msgid "Payee"
 msgstr "Tiers"
 
 #. Debit method_ptr
-#: ../src/balance_estimate_future.c:796 ../src/balance_estimate_tab.c:642
-#: ../src/categories_onglet.c:696 ../src/export_csv.c:781
-#: ../src/gsb_form.c:1274 ../src/gsb_form_widget.c:414
+#: ../src/bet_future.c:795 ../src/bet_tab.c:640 ../src/categories_onglet.c:696
+#: ../src/export_csv.c:781 ../src/gsb_form.c:1293 ../src/gsb_form_widget.c:414
 #: ../src/gsb_payment_method_config.c:316
 #: ../src/gsb_payment_method_config.c:387
 #: ../src/gsb_payment_method_config.c:1082 ../src/gsb_transactions_list.c:149
-#: ../src/import_csv.c:90 ../src/imputation_budgetaire.c:733
-#: ../src/traitement_variables.c:82
+#: ../src/import_csv.c:90 ../src/imputation_budgetaire.c:734
+#: ../src/traitement_variables.c:81
 msgid "Debit"
 msgstr "Débit"
 
 #. Credit method_ptr
-#: ../src/balance_estimate_future.c:803 ../src/balance_estimate_tab.c:657
-#: ../src/categories_onglet.c:696 ../src/export_csv.c:778
-#: ../src/gsb_form.c:1281 ../src/gsb_form_widget.c:418
+#: ../src/bet_future.c:802 ../src/bet_tab.c:655 ../src/categories_onglet.c:696
+#: ../src/export_csv.c:778 ../src/gsb_form.c:1298 ../src/gsb_form_widget.c:418
 #: ../src/gsb_payment_method_config.c:323
 #: ../src/gsb_payment_method_config.c:400
 #: ../src/gsb_payment_method_config.c:1078 ../src/gsb_transactions_list.c:150
-#: ../src/imputation_budgetaire.c:733 ../src/traitement_variables.c:83
+#: ../src/imputation_budgetaire.c:734 ../src/traitement_variables.c:82
 msgid "Credit"
 msgstr "Crédit"
 
-#: ../src/balance_estimate_future.c:810 ../src/balance_estimate_future.c:1998
-#: ../src/balance_estimate_future.c:2484 ../src/gsb_form.c:1288
-#: ../src/gsb_form_widget.c:434
+#: ../src/bet_future.c:809 ../src/bet_future.c:1997 ../src/bet_future.c:2483
+#: ../src/gsb_form.c:1304 ../src/gsb_form_widget.c:434
 msgid "Categories : Sub-categories"
 msgstr "Catégories : Sous-catégories"
 
 #. Notes
-#: ../src/balance_estimate_future.c:824 ../src/etats_affiche.c:2447
-#: ../src/export_csv.c:796 ../src/gsb_bank.c:915 ../src/gsb_form.c:1305
-#: ../src/gsb_form_widget.c:446 ../src/gsb_transactions_list.c:159
-#: ../src/import_csv.c:82 ../src/traitement_variables.c:92
+#: ../src/bet_future.c:823 ../src/etats_affiche.c:2447 ../src/export_csv.c:796
+#: ../src/gsb_bank.c:915 ../src/gsb_form.c:1317 ../src/gsb_form_widget.c:446
+#: ../src/gsb_transactions_list.c:159 ../src/import_csv.c:82
+#: ../src/traitement_variables.c:91
 msgid "Notes"
 msgstr "Remarques"
 
@@ -822,50 +816,50 @@ msgstr "Remarques"
 #. create the method of payment for a liabilities account
 #. Transfer = Virement
 #. Direct deposit remplacé par Transfert = Virement
-#: ../src/balance_estimate_future.c:1423 ../src/balance_estimate_future.c:1670
+#: ../src/bet_future.c:1422 ../src/bet_future.c:1669
 #: ../src/etats_affiche.c:1844 ../src/export_csv.c:601 ../src/export_csv.c:713
-#: ../src/export_csv.c:725 ../src/gsb_data_category.c:1045
+#: ../src/export_csv.c:725 ../src/gsb_data_category.c:1056
 #: ../src/gsb_data_payment.c:633 ../src/gsb_data_payment.c:714
-#: ../src/gsb_data_payment.c:753 ../src/gsb_form.c:2225 ../src/import.c:2631
+#: ../src/gsb_data_payment.c:753 ../src/gsb_form.c:2235 ../src/import.c:2631
 #: ../src/import.c:2649 ../src/plugins/ofx/ofx.c:464
 msgid "Transfer"
 msgstr "Virement"
 
-#: ../src/balance_estimate_future.c:1864 ../src/balance_estimate_future.c:2411
+#: ../src/bet_future.c:1863 ../src/bet_future.c:2410
 msgid "Error: You must select an account."
 msgstr "Erreur : Vous devez sélectionner un compte."
 
-#: ../src/balance_estimate_future.c:1865 ../src/balance_estimate_future.c:2412
+#: ../src/bet_future.c:1864 ../src/bet_future.c:2411
 msgid "Missing data"
 msgstr "Données manquantes"
 
 #. Create the dialog
-#: ../src/balance_estimate_future.c:1912
+#: ../src/bet_future.c:1911
 msgid "Select an account"
 msgstr "Sélectionner un compte"
 
 #. list of accounts
-#: ../src/balance_estimate_future.c:1928
+#: ../src/bet_future.c:1927
 msgid "List of accounts"
 msgstr "Liste des Comptes"
 
-#: ../src/balance_estimate_future.c:1948
+#: ../src/bet_future.c:1947
 msgid "Effective date and data for the replacement of a planned operation"
 msgstr "Date d'effet et données pour le remplacement de l'opération planifiée"
 
-#: ../src/balance_estimate_future.c:1954
+#: ../src/bet_future.c:1953
 msgid "Effective date"
 msgstr "Date d'effet"
 
-#: ../src/balance_estimate_future.c:1961
+#: ../src/bet_future.c:1960
 msgid "Monthly auto-increment"
 msgstr "Incrémentation automatique mensuelle"
 
-#: ../src/balance_estimate_future.c:1972
+#: ../src/bet_future.c:1971
 msgid "Check the box to replace a planned operation"
 msgstr "Cochez la case pour remplacer l'opération planifiée"
 
-#: ../src/balance_estimate_future.c:2087 ../src/gsb_account_property.c:692
+#: ../src/bet_future.c:2086 ../src/gsb_account_property.c:692
 #: ../src/gsb_data_partial_balance.c:214
 msgid "Cash account"
 msgstr "Compte de caisse"
@@ -873,34 +867,34 @@ msgstr "Compte de caisse"
 #. Description entry
 #. Payment method method_ptr
 #. Description entry
-#: ../src/balance_estimate_future.c:2145 ../src/categories_onglet.c:691
+#: ../src/bet_future.c:2144 ../src/categories_onglet.c:691
 #: ../src/gsb_payment_method_config.c:297 ../src/import.c:437
-#: ../src/imputation_budgetaire.c:728
+#: ../src/imputation_budgetaire.c:729
 msgid "Type"
 msgstr "Type"
 
-#: ../src/balance_estimate_hist.c:521 ../src/tiers_onglet.c:1111
+#: ../src/bet_hist.c:520 ../src/tiers_onglet.c:1111
 msgid "Select"
 msgstr "Sélectionner"
 
-#: ../src/balance_estimate_hist.c:548
+#: ../src/bet_hist.c:547
 msgid "Period"
 msgstr "Période utilisée"
 
-#: ../src/balance_estimate_hist.c:563 ../src/categories_onglet.c:161
+#: ../src/bet_hist.c:562 ../src/categories_onglet.c:161
 #: ../src/etats_config.c:5239 ../src/export_csv.c:784
 #: ../src/gsb_assistant_reconcile_config.c:594 ../src/gsb_scheduler_list.c:340
 #: ../src/gsb_transactions_list.c:152 ../src/import.c:3197
 #: ../src/imputation_budgetaire.c:173 ../src/tiers_onglet.c:240
-#: ../src/traitement_variables.c:85
+#: ../src/traitement_variables.c:84
 msgid "Amount"
 msgstr "Montant"
 
-#: ../src/balance_estimate_hist.c:579
+#: ../src/bet_hist.c:578
 msgid "Average"
 msgstr "Moyenne"
 
-#: ../src/balance_estimate_hist.c:596
+#: ../src/bet_hist.c:595
 msgid "Amount retained"
 msgstr "Montant retenu"
 
@@ -909,59 +903,57 @@ msgstr "Montant retenu"
 #. * FYEAR_COL_NAME : the name of the fyear
 #. * FYEAR_COL_NUMBER : the number of the fyear
 #. * FYEAR_COL_VIEW : it tha fyear should be showed
-#: ../src/balance_estimate_hist.c:671 ../src/balance_estimate_hist.c:973
+#: ../src/bet_hist.c:670 ../src/bet_hist.c:972
 msgid "12 months rolling"
 msgstr "12 mois glissants"
 
 #. Add last amount menu
-#: ../src/balance_estimate_hist.c:1373
+#: ../src/bet_hist.c:1372
 msgid "Assign the amount of the last operation"
 msgstr "Assigner le montant de la dernière opération"
 
 #. Add average amount menu
-#: ../src/balance_estimate_hist.c:1396
+#: ../src/bet_hist.c:1395
 msgid "Copy the average amount"
 msgstr "Copier la valeur moyenne"
 
-#: ../src/balance_estimate_hist.c:1657
+#: ../src/bet_hist.c:1656
 #, c-format
 msgid "Please select the data source for the account: \"%s\""
 msgstr "Sélectionnez la source des données pour le compte : %s"
 
-#: ../src/balance_estimate_tab.c:410
+#: ../src/bet_tab.c:408
 #, c-format
 msgid "Balance estimate of the account \"%s\" from %s to %s"
 msgstr "Solde estimé du compte \"%s\" du %s au %s"
 
-#: ../src/balance_estimate_tab.c:427
+#: ../src/bet_tab.c:425
 msgid "balance beginning of period"
 msgstr "Solde initial de la période"
 
 #. set the start date and the automatic change of month
-#: ../src/balance_estimate_tab.c:522
+#: ../src/bet_tab.c:520
 msgid "Start date"
 msgstr "Date de départ"
 
-#: ../src/balance_estimate_tab.c:541
+#: ../src/bet_tab.c:539
 msgid "Check the box to automatically change start date"
 msgstr "Cochez la case pour changer automatiquement de date de début"
 
 #. Description entry
-#: ../src/balance_estimate_tab.c:630 ../src/etats_onglet.c:260
-#: ../src/tiers_onglet.c:638
+#: ../src/bet_tab.c:628 ../src/etats_onglet.c:260 ../src/tiers_onglet.c:638
 msgid "Description"
 msgstr "Description"
 
-#: ../src/balance_estimate_tab.c:671 ../src/export_csv.c:787
-#: ../src/gsb_reconcile.c:158 ../src/gsb_scheduler_list.c:340
-#: ../src/gsb_transactions_list.c:151 ../src/gsb_transactions_list.c:2992
-#: ../src/import_csv.c:88 ../src/traitement_variables.c:84
+#: ../src/bet_tab.c:669 ../src/export_csv.c:787 ../src/gsb_reconcile.c:158
+#: ../src/gsb_scheduler_list.c:340 ../src/gsb_transactions_list.c:151
+#: ../src/gsb_transactions_list.c:2992 ../src/import_csv.c:88
+#: ../src/traitement_variables.c:83
 msgid "Balance"
 msgstr "Solde"
 
-#: ../src/balance_estimate_tab.c:754 ../src/balance_estimate_tab.c:764
-#: ../src/balance_estimate_tab.c:951 ../src/balance_estimate_tab.c:2337
-#: ../src/balance_estimate_tab.c:2342
+#: ../src/bet_tab.c:752 ../src/bet_tab.c:762 ../src/bet_tab.c:949
+#: ../src/bet_tab.c:2335 ../src/bet_tab.c:2340
 #, c-format
 msgid ""
 "Transfer between account: %s\n"
@@ -970,71 +962,69 @@ msgstr ""
 "Virement entre le compte : %s\n"
 "et le compte : %s"
 
-#: ../src/balance_estimate_tab.c:1273
+#: ../src/bet_tab.c:1271
 msgid "Subtract to the balance"
 msgstr "Soustraire au solde"
 
-#: ../src/balance_estimate_tab.c:1280
+#: ../src/bet_tab.c:1278
 msgid "Adding to the balance"
 msgstr "Ajouter au solde"
 
 #. Insert Row
-#: ../src/balance_estimate_tab.c:1297
+#: ../src/bet_tab.c:1295
 msgid "Insert Row"
 msgstr "Insérer une ligne"
 
-#: ../src/balance_estimate_tab.c:1314 ../src/balance_estimate_tab.c:1326
-#: ../src/balance_estimate_tab.c:1347 ../src/balance_estimate_tab.c:1404
+#: ../src/bet_tab.c:1312 ../src/bet_tab.c:1324 ../src/bet_tab.c:1345
+#: ../src/bet_tab.c:1402
 msgid "Delete selection"
 msgstr "Supprimer la ligne"
 
-#: ../src/balance_estimate_tab.c:1337
+#: ../src/bet_tab.c:1335
 msgid "Change selection"
 msgstr "Modifier la ligne"
 
-#: ../src/balance_estimate_tab.c:1358
+#: ../src/bet_tab.c:1356
 msgid "Delete all occurences of the selection"
 msgstr "Supprimer toutes les occurences de la ligne"
 
-#: ../src/balance_estimate_tab.c:1373
+#: ../src/bet_tab.c:1371
 msgid "Convert selection to scheduled transaction"
 msgstr "Convertir la ligne en opération planifiée"
 
-#: ../src/balance_estimate_tab.c:1394
+#: ../src/bet_tab.c:1392
 msgid "Insert the balance of a cash account"
 msgstr "Insérer le solde d'un compte de caisse"
 
 #. redo item
-#: ../src/balance_estimate_tab.c:1420
+#: ../src/bet_tab.c:1418
 msgid "Reset data"
 msgstr "Réinitialiser les données"
 
-#: ../src/balance_estimate_tab.c:1741
+#: ../src/bet_tab.c:1739
 msgid " (still available)"
 msgstr " (reste à utiliser)"
 
-#: ../src/balance_estimate_tab.c:1749
+#: ../src/bet_tab.c:1747
 msgid " (yet to receive)"
 msgstr " (reste à recevoir)"
 
-#: ../src/balance_estimate_tab.c:1760 ../src/balance_estimate_tab.c:1771
+#: ../src/bet_tab.c:1758 ../src/bet_tab.c:1769
 msgid " (budget exceeded)"
 msgstr " (budget dépassé)"
 
-#: ../src/balance_estimate_tab.c:2260 ../src/balance_estimate_tab.c:2310
-#: ../src/balance_estimate_tab.c:2370
+#: ../src/bet_tab.c:2258 ../src/bet_tab.c:2308 ../src/bet_tab.c:2368
 msgid "No data by default"
 msgstr "Pas de donnée disponible par défaut"
 
-#: ../src/balance_estimate_tab.c:2268 ../src/balance_estimate_tab.c:2318
-#: ../src/balance_estimate_tab.c:2376 ../src/etats_affiche.c:1860
-#: ../src/gsb_data_category.c:155 ../src/meta_categories.c:66
+#: ../src/bet_tab.c:2266 ../src/bet_tab.c:2316 ../src/bet_tab.c:2374
+#: ../src/etats_affiche.c:1860 ../src/gsb_data_category.c:157
+#: ../src/meta_categories.c:66
 msgid "No category"
 msgstr "Pas de catégorie"
 
-#: ../src/balance_estimate_tab.c:2276 ../src/balance_estimate_tab.c:2326
-#: ../src/balance_estimate_tab.c:2382 ../src/etats_affiche.c:2030
-#: ../src/meta_budgetary.c:63
+#: ../src/bet_tab.c:2274 ../src/bet_tab.c:2324 ../src/bet_tab.c:2380
+#: ../src/etats_affiche.c:2030 ../src/meta_budgetary.c:63
 msgid "No budgetary line"
 msgstr "Pas d'imputation budgétaire"
 
@@ -1050,7 +1040,7 @@ msgstr "Effacer le formulaire pour créer une nouvelle opération"
 
 #: ../src/barre_outils.c:104 ../src/barre_outils.c:513
 #: ../src/categories_onglet.c:526 ../src/etats_onglet.c:158
-#: ../src/imputation_budgetaire.c:562 ../src/tiers_onglet.c:321
+#: ../src/imputation_budgetaire.c:563 ../src/tiers_onglet.c:321
 msgid "Delete"
 msgstr "Supprimer"
 
@@ -1085,7 +1075,7 @@ msgid "Print the transactions list"
 msgstr "Imprimer la liste des opérations"
 
 #: ../src/barre_outils.c:150 ../src/barre_outils.c:562
-#: ../src/categories_onglet.c:545 ../src/imputation_budgetaire.c:583
+#: ../src/categories_onglet.c:545 ../src/imputation_budgetaire.c:584
 #: ../src/tiers_onglet.c:340
 msgid "View"
 msgstr "Affichage"
@@ -1115,7 +1105,7 @@ msgid "Three lines view"
 msgstr "Mode « trois lignes »"
 
 #: ../src/barre_outils.c:235 ../src/categories_onglet.c:589
-#: ../src/imputation_budgetaire.c:627 ../src/tiers_onglet.c:437
+#: ../src/imputation_budgetaire.c:628 ../src/tiers_onglet.c:437
 msgid "Complete view"
 msgstr "Vue complète"
 
@@ -1209,13 +1199,13 @@ msgstr "Catégories.cgsb"
 msgid "Import categories"
 msgstr "Importer des catégories"
 
-#: ../src/categories_onglet.c:391 ../src/imputation_budgetaire.c:431
+#: ../src/categories_onglet.c:391 ../src/imputation_budgetaire.c:432
 msgid "Grisbi category files (*.cgsb)"
 msgstr "Fichier des catégories Grisbi (*.cgsb)"
 
 #: ../src/categories_onglet.c:397 ../src/etats_onglet.c:1229
 #: ../src/file_obfuscate_qif.c:105 ../src/gsb_file.c:268 ../src/import.c:812
-#: ../src/imputation_budgetaire.c:436
+#: ../src/imputation_budgetaire.c:437
 msgid "All files"
 msgstr "Tous les fichiers"
 
@@ -1244,7 +1234,7 @@ msgstr ""
 "Vous pouvez également décider de remplacer les catégories existantes par les "
 "catégories que vous êtes en train d'importer."
 
-#: ../src/categories_onglet.c:428 ../src/imputation_budgetaire.c:467
+#: ../src/categories_onglet.c:428 ../src/imputation_budgetaire.c:468
 msgid "Replace existing"
 msgstr "Remplacer l'existant"
 
@@ -1273,8 +1263,8 @@ msgid "Create a new sub-category"
 msgstr "Créer une nouvelle sous-catégorie"
 
 #: ../src/categories_onglet.c:507 ../src/etats_onglet.c:129
-#: ../src/import.c:404 ../src/import.c:3498 ../src/imputation_budgetaire.c:542
-#: ../src/parametres.c:292 ../src/utils_files.c:671
+#: ../src/import.c:404 ../src/import.c:3498 ../src/imputation_budgetaire.c:543
+#: ../src/parametres.c:295 ../src/utils_files.c:671
 msgid "Import"
 msgstr "Importer"
 
@@ -1283,7 +1273,7 @@ msgid "Import a Grisbi category file (.cgsb)"
 msgstr "Importer une liste de catégories (.csgb)"
 
 #: ../src/categories_onglet.c:517 ../src/etats_onglet.c:138
-#: ../src/export.c:161 ../src/imputation_budgetaire.c:553
+#: ../src/export.c:161 ../src/imputation_budgetaire.c:554
 msgid "Export"
 msgstr "Exporter"
 
@@ -1296,7 +1286,7 @@ msgid "Delete selected category"
 msgstr "Supprimer la catégorie sélectionnée"
 
 #: ../src/categories_onglet.c:535 ../src/etats_onglet.c:167
-#: ../src/fenetre_principale.c:253 ../src/imputation_budgetaire.c:572
+#: ../src/fenetre_principale.c:251 ../src/imputation_budgetaire.c:573
 #: ../src/tiers_onglet.c:330
 msgid "Properties"
 msgstr "Propriétés"
@@ -1319,7 +1309,7 @@ msgid "Subcategory view"
 msgstr "Vue des catégories et sous-catégories"
 
 #: ../src/categories_onglet.c:634 ../src/categories_onglet.c:638
-#: ../src/imputation_budgetaire.c:670 ../src/imputation_budgetaire.c:675
+#: ../src/imputation_budgetaire.c:671 ../src/imputation_budgetaire.c:676
 #: ../src/tiers_onglet.c:600
 #, c-format
 msgid "Properties for %s"
@@ -1356,7 +1346,7 @@ msgid "Category already exists"
 msgstr "La catégorie existe déjà"
 
 #. * Find a unique name for category
-#: ../src/categories_onglet.c:849 ../src/meta_categories.c:307
+#: ../src/categories_onglet.c:849 ../src/meta_categories.c:306
 msgid "New sub-category"
 msgstr "Nouvelle sous-catégorie"
 
@@ -1515,7 +1505,7 @@ msgstr ""
 "N'utilisez en aucun cas votre fichier grisbi original car il ne sera plus "
 "compatible avec la version précédente. "
 
-#: ../src/dialog.c:112 ../src/main.c:214
+#: ../src/dialog.c:112 ../src/main.c:213
 #, c-format
 msgid "You are running Grisbi with GTK version %s"
 msgstr "Vous utilisez Grisbi avec GTK version %s"
@@ -1890,8 +1880,8 @@ msgid "General total"
 msgstr "Total général"
 
 #: ../src/etats_affiche.c:1853 ../src/export_csv.c:571
-#: ../src/gsb_data_category.c:1043 ../src/gsb_form.c:728
-#: ../src/gsb_form.c:2718 ../src/gsb_form.c:3120
+#: ../src/gsb_data_category.c:1054 ../src/gsb_form.c:726
+#: ../src/gsb_form.c:2738 ../src/gsb_form.c:3140
 #: ../src/gsb_form_scheduler.c:316 ../src/gsb_transactions_list.c:3397
 msgid "Split of transaction"
 msgstr "Opération ventilée"
@@ -1917,28 +1907,28 @@ msgstr "Revenus"
 msgid "Outgoings"
 msgstr "Dépenses"
 
-#: ../src/etats_affiche.c:2398 ../src/traitement_variables.c:95
+#: ../src/etats_affiche.c:2398 ../src/traitement_variables.c:94
 msgid "Number"
 msgstr "N°"
 
-#: ../src/etats_affiche.c:2412 ../src/export_csv.c:763 ../src/gsb_form.c:1247
-#: ../src/gsb_form.c:2075 ../src/gsb_form.c:2098 ../src/gsb_form_widget.c:422
+#: ../src/etats_affiche.c:2412 ../src/export_csv.c:763 ../src/gsb_form.c:1272
+#: ../src/gsb_form.c:2085 ../src/gsb_form.c:2108 ../src/gsb_form_widget.c:422
 #: ../src/gsb_transactions_list.c:146 ../src/import_csv.c:80
-#: ../src/traitement_variables.c:79
+#: ../src/traitement_variables.c:78
 msgid "Value date"
 msgstr "Date de valeur"
 
 #: ../src/etats_affiche.c:2419 ../src/export_csv.c:769
 #: ../src/gsb_archive_config.c:98 ../src/gsb_assistant_archive_export.c:150
 #: ../src/gsb_form_widget.c:426 ../src/gsb_transactions_list.c:155
-#: ../src/traitement_variables.c:88
+#: ../src/traitement_variables.c:87
 msgid "Financial year"
 msgstr "Exercice"
 
 #. Now we have a model, create view
 #: ../src/etats_affiche.c:2454 ../src/etats_config.c:562
 #: ../src/etats_config.c:565 ../src/etats_config.c:7221
-#: ../src/gsb_payment_method_config.c:117 ../src/parametres.c:519
+#: ../src/gsb_payment_method_config.c:117 ../src/parametres.c:522
 msgid "Payment methods"
 msgstr "Modes de règlement"
 
@@ -1946,15 +1936,15 @@ msgstr "Modes de règlement"
 msgid "Cheque"
 msgstr "Chèque"
 
-#: ../src/etats_affiche.c:2468 ../src/export_csv.c:805 ../src/gsb_form.c:1348
+#: ../src/etats_affiche.c:2468 ../src/export_csv.c:805 ../src/gsb_form.c:1359
 #: ../src/gsb_form_widget.c:466 ../src/gsb_transactions_list.c:158
-#: ../src/traitement_variables.c:91
+#: ../src/traitement_variables.c:90
 msgid "Voucher"
 msgstr "Pièce comptable"
 
-#: ../src/etats_affiche.c:2475 ../src/export_csv.c:811 ../src/gsb_form.c:1341
+#: ../src/etats_affiche.c:2475 ../src/export_csv.c:811 ../src/gsb_form.c:1354
 #: ../src/gsb_form_widget.c:470 ../src/gsb_transactions_list.c:160
-#: ../src/traitement_variables.c:93
+#: ../src/traitement_variables.c:92
 msgid "Bank references"
 msgstr "Infos banque/guichet"
 
@@ -2057,7 +2047,7 @@ msgstr "Virements"
 
 #. mise en place de la paddingbox des comptes
 #: ../src/etats_config.c:508 ../src/etats_config.c:511
-#: ../src/etats_config.c:6992 ../src/fenetre_principale.c:233
+#: ../src/etats_config.c:6992 ../src/fenetre_principale.c:234
 #: ../src/navigation.c:251
 msgid "Accounts"
 msgstr "Comptes"
@@ -2105,14 +2095,14 @@ msgid "Generalities"
 msgstr "Généralités"
 
 #: ../src/etats_config.c:633 ../src/etats_config.c:636 ../src/export_csv.c:751
-#: ../src/fenetre_principale.c:237 ../src/parametres.c:393
+#: ../src/fenetre_principale.c:238 ../src/parametres.c:396
 msgid "Transactions"
 msgstr "Opérations"
 
 #. echange line label
 #: ../src/etats_config.c:642 ../src/etats_config.c:645
 #: ../src/gsb_currency.c:551 ../src/gsb_currency_config.c:294
-#: ../src/parametres.c:483
+#: ../src/parametres.c:486
 msgid "Currencies"
 msgstr "Devises"
 
@@ -2344,7 +2334,7 @@ msgid "Outgoing budget lines"
 msgstr "I.B. de dépenses"
 
 #. set the title
-#: ../src/etats_config.c:3981 ../src/navigation.c:286 ../src/navigation.c:1201
+#: ../src/etats_config.c:3981 ../src/navigation.c:284 ../src/navigation.c:1210
 #: ../src/tiers_onglet.c:222
 msgid "Payees"
 msgstr "Tiers"
@@ -2888,8 +2878,8 @@ msgstr "Cloner"
 msgid "Clone selected report"
 msgstr "Cloner l'état sélectionné"
 
-#: ../src/etats_onglet.c:212 ../src/fenetre_principale.c:283
-#: ../src/navigation.c:337 ../src/navigation.c:1239
+#: ../src/etats_onglet.c:212 ../src/fenetre_principale.c:287
+#: ../src/navigation.c:348 ../src/navigation.c:1259
 msgid "Reports"
 msgstr "États"
 
@@ -3224,7 +3214,7 @@ msgstr ""
 msgid "B"
 msgstr "V"
 
-#: ../src/export_csv.c:715 ../src/gsb_form.c:1855
+#: ../src/export_csv.c:715 ../src/gsb_form.c:1859
 msgid "Deleted account"
 msgstr "Compte supprimé"
 
@@ -3237,7 +3227,7 @@ msgid "Cheques"
 msgstr "Chèques"
 
 #: ../src/export_csv.c:772 ../src/gsb_transactions_list.c:157
-#: ../src/import_csv.c:92 ../src/traitement_variables.c:90
+#: ../src/import_csv.c:92 ../src/traitement_variables.c:89
 msgid "C/R"
 msgstr "P/R"
 
@@ -3253,7 +3243,7 @@ msgstr "Sous-imputations budgétaires"
 msgid "Reconciliation number"
 msgstr "N° de rapprochement"
 
-#: ../src/fenetre_principale.c:223 ../src/parametres.c:329
+#: ../src/fenetre_principale.c:224 ../src/parametres.c:332
 msgid "Main page"
 msgstr "Accueil"
 
@@ -3265,11 +3255,17 @@ msgstr "Prévisions"
 msgid "Historical data"
 msgstr "Données historiques"
 
-#: ../src/fenetre_principale.c:263 ../src/navigation.c:269
-#: ../src/parametres.c:320 ../src/parametres.c:1077
+#: ../src/fenetre_principale.c:261 ../src/navigation.c:268
+#: ../src/parametres.c:323 ../src/parametres.c:1077
 msgid "Scheduler"
 msgstr "Échéancier"
 
+#. set the title
+#: ../src/fenetre_principale.c:272 ../src/navigation.c:300
+#: ../src/navigation.c:1221
+msgid "Credits simulator"
+msgstr "Simulateur de crédits"
+
 #: ../src/file_obfuscate.c:86
 msgid "Obfuscating file..."
 msgstr "Rendre anonyme le fichier..."
@@ -3884,27 +3880,27 @@ msgstr "Sens de la conversion"
 msgid "This value determines which iconv test to perform."
 msgstr "Cette valeur indique quel test iconv réaliser."
 
-#: ../src/go-optionmenu.c:240
+#: ../src/go-optionmenu.c:248
 msgid "Menu"
 msgstr "Menu"
 
-#: ../src/go-optionmenu.c:241
+#: ../src/go-optionmenu.c:249
 msgid "The menu of options"
 msgstr "Menu des options"
 
-#: ../src/go-optionmenu.c:247
+#: ../src/go-optionmenu.c:255
 msgid "Indicator Size"
 msgstr "Indicateur de taille"
 
-#: ../src/go-optionmenu.c:248
+#: ../src/go-optionmenu.c:256
 msgid "Size of dropdown indicator"
 msgstr "Taille de l'indicateur de liste déroulante"
 
-#: ../src/go-optionmenu.c:253
+#: ../src/go-optionmenu.c:261
 msgid "Indicator Spacing"
 msgstr "Indicateur d'espacement"
 
-#: ../src/go-optionmenu.c:254
+#: ../src/go-optionmenu.c:262
 msgid "Spacing around indicator"
 msgstr "Espacement autour de l'indicateur"
 
@@ -4042,7 +4038,7 @@ msgid "Your IBAN number is not correct. Please check your entry."
 msgstr "Votre numéro IBAN n'est pas correct. Vérifiez votre saisie."
 
 #. create the page
-#: ../src/gsb_archive_config.c:111 ../src/parametres.c:283
+#: ../src/gsb_archive_config.c:111 ../src/parametres.c:286
 msgid "Archives"
 msgstr "Archives"
 
@@ -4339,8 +4335,8 @@ msgid "Grisbi will archive transactions selected by a report."
 msgstr ""
 "Grisbi archivera toutes les transactions appartenant à l'état sélectionné"
 
-#: ../src/gsb_assistant_archive.c:314 ../src/gsb_data_payee.c:528
-#: ../src/gsb_form.c:2829 ../src/gsb_form.c:2830 ../src/navigation.c:1237
+#: ../src/gsb_assistant_archive.c:314 ../src/gsb_data_payee.c:541
+#: ../src/gsb_form.c:2849 ../src/gsb_form.c:2850 ../src/navigation.c:1257
 msgid "Report"
 msgstr "État"
 
@@ -4764,7 +4760,7 @@ msgid "Select/Create backup directory"
 msgstr "Sélectionner/Créer un répertoire de sauvegarde"
 
 #: ../src/gsb_assistant_first.c:329 ../src/gsb_reconcile_config.c:103
-#: ../src/parametres.c:420
+#: ../src/parametres.c:423
 msgid "Reconciliation"
 msgstr "Rapprochement"
 
@@ -5047,7 +5043,7 @@ msgstr "Ajouter une nouvelle banque"
 msgid "Contact name"
 msgstr "Correspondant"
 
-#: ../src/gsb_bank.c:519 ../src/parametres.c:501
+#: ../src/gsb_bank.c:519 ../src/parametres.c:504
 msgid "Banks"
 msgstr "Banques"
 
@@ -5130,11 +5126,11 @@ msgstr "Liste des catégories"
 msgid "Display foreign category sets"
 msgstr "Afficher l'ensemble des catégories"
 
-#: ../src/gsb_category.c:361
+#: ../src/gsb_category.c:362
 msgid "Cannot open the category file."
 msgstr "Impossible d'ouvrir le fichier des catégories."
 
-#: ../src/gsb_category.c:378
+#: ../src/gsb_category.c:379
 msgid "Unnamed category list"
 msgstr "Liste des catégories anonymes"
 
@@ -6671,8 +6667,9 @@ msgstr ""
 "Nombre de lignes invalide dans gsb_data_accoutn_set_nb_rows() dans "
 "data_account.c : %d\n"
 
-#. TODO dOm : the return value of g_strdup_printf was not used ! I add the devel_debug to print it. Is it OK to do that ?
-#: ../src/gsb_data_account.c:1208
+#. TODO dOm : the return value of g_strdup_printf was not used !
+#. I add the devel_debug to print it. Is it OK to do that ?
+#: ../src/gsb_data_account.c:1211
 #, c-format
 msgid ""
 "Bad no column to gsb_data_account_get_element_sort () in data_account.c\n"
@@ -6682,8 +6679,9 @@ msgstr ""
 "data_account.c\n"
 "Numéro de colonne %d\n"
 
-#. TODO dOm : the value of g_strdup_printf was not used. I add the devel_debug function to print it. Is it OK ?
-#: ../src/gsb_data_account.c:1246
+#. TODO dOm : the value of g_strdup_printf was not used.
+#. I add the devel_debug function to print it. Is it OK ?
+#: ../src/gsb_data_account.c:1254
 #, c-format
 msgid ""
 "Bad no column to gsb_data_account_set_element_sort () in data_account.c\n"
@@ -6693,11 +6691,11 @@ msgstr ""
 "gsb_data_account.c\n"
 "no_colonne = %d\n"
 
-#: ../src/gsb_data_budget.c:148
+#: ../src/gsb_data_budget.c:150
 msgid "No budget line"
 msgstr "Aucune imputation"
 
-#: ../src/gsb_data_budget.c:1289
+#: ../src/gsb_data_budget.c:1295
 #, c-format
 msgid ""
 "The transaction %d has a budget n%d and sub-budget n%d but they don't exist."
@@ -6705,12 +6703,12 @@ msgstr ""
 "L'opération %d a une imputation budgétaire %d et une sous-imputation %d "
 "inexistantes."
 
-#: ../src/gsb_data_budget.c:1435 ../src/gsb_data_category.c:1545
+#: ../src/gsb_data_budget.c:1441 ../src/gsb_data_category.c:1556
 #, c-format
 msgid "In <i>%s</i>, <i>%s</i> is a duplicate of <i>%s</i>.\n"
 msgstr "Dans <i>%s</i>,·<i>%s</i> est un doublon de <i>%s</i>.\n"
 
-#: ../src/gsb_data_category.c:1399
+#: ../src/gsb_data_category.c:1410
 #, c-format
 msgid ""
 "The transaction %d has a category n%d and sub-category n%d but they don't "
@@ -6795,11 +6793,11 @@ msgstr "Entrez la devise du solde partiel"
 msgid "Select the currency of the partial balance"
 msgstr "Sélectionnez la devise du solde partiel"
 
-#: ../src/gsb_data_payee.c:406
+#: ../src/gsb_data_payee.c:419
 msgid "No payee defined"
 msgstr "Aucun tiers défini"
 
-#: ../src/gsb_data_payee.c:724
+#: ../src/gsb_data_payee.c:737
 #, c-format
 msgid "The transaction %d has a payee n%d but it doesn't exist."
 msgstr "L'opération %d a un tiers N° %d qui n'existe pas."
@@ -6812,14 +6810,14 @@ msgstr "Dépôt"
 
 #. pas trouvé de définition remplacé par carte de crédit
 #. Point of sale = Point de vente remplacé par carte de crédit
-#: ../src/gsb_data_payment.c:728 ../src/gsb_form.c:2177 ../src/import.c:2619
+#: ../src/gsb_data_payment.c:728 ../src/gsb_form.c:2187 ../src/import.c:2619
 #: ../src/import.c:2625
 msgid "Credit card"
 msgstr "Carte de crédit"
 
 #. Electronic payment remplacé par Direct debit = Prélèvement
 #. Merchant initiated debit remplacé par Direct debit = Prélèvement
-#: ../src/gsb_data_payment.c:737 ../src/gsb_form.c:2214 ../src/import.c:2637
+#: ../src/gsb_data_payment.c:737 ../src/gsb_form.c:2224 ../src/import.c:2637
 #: ../src/import.c:2655
 msgid "Direct debit"
 msgstr "Prélèvement"
@@ -7317,12 +7315,12 @@ msgstr ""
 "<b>Voulez-vous supprimer ce fichier :\n"
 "%s ?</b>"
 
-#: ../src/gsb_file_config.c:886
+#: ../src/gsb_file_config.c:889
 #, c-format
 msgid "Cannot save configuration file '%s': %s"
 msgstr "Impossible d'enregistrer le fichier de configuration « %s » : %s"
 
-#: ../src/gsb_file_config.c:927
+#: ../src/gsb_file_config.c:930
 #, c-format
 msgid ""
 "%s doesn't seem to be a regular config file,\n"
@@ -7331,20 +7329,20 @@ msgstr ""
 "%s ne semble pas être un fichier de configuration,\n"
 "veuillez vérifier et réessayer."
 
-#: ../src/gsb_file_config.c:964
+#: ../src/gsb_file_config.c:967
 #, c-format
 msgid "Cannot open config file '%s': %s"
 msgstr "Impossible d'ouvrir le fichier de configuration « %s » : %s"
 
-#: ../src/gsb_file_config.c:1395 ../src/print_config.c:51
+#: ../src/gsb_file_config.c:1398 ../src/print_config.c:51
 msgid "A4"
 msgstr "A4"
 
-#: ../src/gsb_file_config.c:1414
+#: ../src/gsb_file_config.c:1417
 msgid "Delete config file from a previous version"
 msgstr "Supprimer la copie du fichier de la version précédente de grisbi"
 
-#: ../src/gsb_file_config.c:1434
+#: ../src/gsb_file_config.c:1437
 msgid ""
 "Caution, you are about to delete the\n"
 "configuration file of a previous version of Grisbi.\n"
@@ -7356,11 +7354,11 @@ msgstr ""
 "\n"
 "<b>Voulez-vous le supprimer ?</b>"
 
-#: ../src/gsb_file_config.c:1498
+#: ../src/gsb_file_config.c:1501
 msgid "Choose a file"
 msgstr "Choisir un fichier"
 
-#: ../src/gsb_file_config.c:1521
+#: ../src/gsb_file_config.c:1524
 msgid ""
 "Please Choose the name of file\n"
 "of configuration.\n"
@@ -7392,7 +7390,7 @@ msgstr ""
 "%s ne semble pas être un fichier normal,\n"
 "veuillez vérifier et réessayer."
 
-#: ../src/gsb_file_load.c:363 ../src/gsb_file_save.c:403
+#: ../src/gsb_file_load.c:363 ../src/gsb_file_save.c:398
 msgid ""
 "Grisbi was unable to load required plugin to handle that file.\n"
 "\n"
@@ -7405,15 +7403,15 @@ msgstr ""
 "Vérifiez qu'il soit bien installé (i.e. vérifiez que le paquet 'grisbi-ssl' "
 "est installé) et essayez à nouveau."
 
-#: ../src/gsb_file_load.c:368 ../src/gsb_file_save.c:408
+#: ../src/gsb_file_load.c:368 ../src/gsb_file_save.c:403
 msgid "Encryption plugin not found."
 msgstr "Plugin de cryptage non trouvé"
 
-#: ../src/gsb_file_load.c:466 ../src/gsb_file_load.c:5296
+#: ../src/gsb_file_load.c:466 ../src/gsb_file_load.c:5293
 msgid "This is not a Grisbi file... Loading aborted."
 msgstr "Ce n'est pas un fichier Grisbi...chargement interrompu"
 
-#: ../src/gsb_file_load.c:705
+#: ../src/gsb_file_load.c:702
 #, c-format
 msgid ""
 "An error occured while parsing the file :\n"
@@ -7425,7 +7423,7 @@ msgstr ""
 "%s"
 
 #. we don't know here the release of that file, give the release needed
-#: ../src/gsb_file_load.c:8702
+#: ../src/gsb_file_load.c:8699
 #, c-format
 msgid ""
 "Grisbi version %s is needed to open this file.\n"
@@ -7434,7 +7432,7 @@ msgstr ""
 "Pour ouvrir ce fichier, il vous faut la version %s de Grisbi.\n"
 "Vous utilisez la version %s."
 
-#: ../src/gsb_file_load.c:8741
+#: ../src/gsb_file_load.c:8738
 msgid ""
 "You have opened an archive.\n"
 "There is no limit in Grisbi, you can do whatever you want and save it later "
@@ -7447,13 +7445,13 @@ msgstr ""
 "c'est une archive avant de modifier certaines transactions ou informations "
 "importantes."
 
-#: ../src/gsb_file_load.c:8745
+#: ../src/gsb_file_load.c:8742
 msgid "Grisbi archive opened"
 msgstr "Archive grisbi ouverte"
 
 #: ../src/gsb_file_others.c:144 ../src/gsb_file_others.c:225
-#: ../src/gsb_file_others.c:308 ../src/gsb_file_save.c:428
-#: ../src/gsb_file_save.c:446
+#: ../src/gsb_file_others.c:308 ../src/gsb_file_save.c:423
+#: ../src/gsb_file_save.c:441
 #, c-format
 msgid "Cannot save file '%s': %s"
 msgstr ""
@@ -7552,75 +7550,75 @@ msgstr ""
 "Impossible d'effacer le fichier « %s »\n"
 "%s"
 
-#: ../src/gsb_form.c:229
+#: ../src/gsb_form.c:228
 msgid "Transaction/Scheduled _form"
 msgstr "Formulaire de saisie des opérations"
 
 #. create the check button to recover the children of splits
-#: ../src/gsb_form.c:323
+#: ../src/gsb_form.c:321
 msgid "Recover the children"
 msgstr "Restaurer les sous-opérations"
 
-#: ../src/gsb_form.c:741
+#: ../src/gsb_form.c:739
 msgid "Transfer : Deleted account"
 msgstr "Virement : Compte supprimé"
 
-#: ../src/gsb_form.c:760 ../src/gsb_form.c:1844 ../src/gsb_form.c:1845
+#: ../src/gsb_form.c:758 ../src/gsb_form.c:1848 ../src/gsb_form.c:1849
 #: ../src/gsb_form_widget.c:1023
 msgid "Transfer : "
 msgstr "Virement : "
 
-#: ../src/gsb_form.c:909
+#: ../src/gsb_form.c:907
 msgid "Auto"
 msgstr "Auto"
 
-#: ../src/gsb_form.c:912 ../src/gsb_form_scheduler.c:151
+#: ../src/gsb_form.c:910 ../src/gsb_form_scheduler.c:151
 #: ../src/gsb_scheduler_list.c:1009
 msgid "Manual"
 msgstr "Manuel"
 
-#: ../src/gsb_form.c:1323 ../src/gsb_form_widget.c:454
+#: ../src/gsb_form.c:1333 ../src/gsb_form_widget.c:454
 msgid "Cheque/Transfer number"
 msgstr "N° Chèque/Virement"
 
-#: ../src/gsb_form.c:2186 ../src/plugins/ofx/ofx.c:476
+#: ../src/gsb_form.c:2196 ../src/plugins/ofx/ofx.c:476
 msgid "Direct deposit"
 msgstr "Dépôt"
 
 #. Check = Chèque
-#: ../src/gsb_form.c:2195 ../src/import.c:2424 ../src/import.c:2471
+#: ../src/gsb_form.c:2205 ../src/import.c:2424 ../src/import.c:2471
 #: ../src/import.c:2594 ../src/plugins/ofx/ofx.c:432
 msgid "Check"
 msgstr "Chèque"
 
 #. Cash withdrawal = retrait en liquide
-#: ../src/gsb_form.c:2204 ../src/import.c:2643
+#: ../src/gsb_form.c:2214 ../src/import.c:2643
 msgid "Cash withdrawal"
 msgstr "Liquide"
 
-#: ../src/gsb_form.c:2333
+#: ../src/gsb_form.c:2343
 msgid "No payee selected for this report."
 msgstr "Cet état ne comporte pas de tiers sélectionnés."
 
-#: ../src/gsb_form.c:2635
+#: ../src/gsb_form.c:2655
 msgid "You must enter a date."
 msgstr "Une date est obligatoire."
 
-#: ../src/gsb_form.c:2642
+#: ../src/gsb_form.c:2662
 #, c-format
 msgid "Invalid date %s"
 msgstr "Date invalide %s"
 
-#: ../src/gsb_form.c:2665
+#: ../src/gsb_form.c:2685
 #, c-format
 msgid "Invalid value date %s"
 msgstr "La date est invalide %s"
 
-#: ../src/gsb_form.c:2700
+#: ../src/gsb_form.c:2720
 msgid "You must enter an amount."
 msgstr "Un montant est obligatoire."
 
-#: ../src/gsb_form.c:2720
+#: ../src/gsb_form.c:2740
 msgid ""
 "You cannot set split of transaction in category for a daughter of a split of "
 "transaction."
@@ -7628,28 +7626,28 @@ msgstr ""
 "Vous ne pouvez pas choisir la catégorie « opération ventilée » pour une "
 "opération fille"
 
-#: ../src/gsb_form.c:2754
+#: ../src/gsb_form.c:2774
 msgid ""
 "Cannot associate a transfer to a deleted account in a scheduled transaction."
 msgstr ""
 "Vous ne pouvez pas associer un virement pour un compte supprimé dans une "
 "opération programmée."
 
-#: ../src/gsb_form.c:2761
+#: ../src/gsb_form.c:2781
 msgid ""
 "There is no associated account for this transfer or associated account is "
 "invalid."
 msgstr "Il n'y a pas de compte associé à ce virement où il est invalide"
 
-#: ../src/gsb_form.c:2769
+#: ../src/gsb_form.c:2789
 msgid "Can't issue a transfer its own account."
 msgstr "Impossible d'effectuer un virement sur son propre compte"
 
-#: ../src/gsb_form.c:2774
+#: ../src/gsb_form.c:2794
 msgid "Can't issue a transfer on a closed account."
 msgstr "Impossible d'effectuer un virement sur un compte clos"
 
-#: ../src/gsb_form.c:2800
+#: ../src/gsb_form.c:2820
 msgid ""
 "Selected method of payment has an automatic incremental number\n"
 "but doesn't contain any number.\n"
@@ -7659,7 +7657,7 @@ msgstr ""
 "aucun numéro.\n"
 "Souhaitez-vous continuer ?"
 
-#: ../src/gsb_form.c:2816
+#: ../src/gsb_form.c:2836
 msgid ""
 "Warning: this cheque number is already used.\n"
 "Continue anyway?"
@@ -7667,30 +7665,30 @@ msgstr ""
 "Attention, le numéro du chèque est déjà utilisé.\n"
 "Souhaitez-vous continuer ?"
 
-#: ../src/gsb_form.c:2837
+#: ../src/gsb_form.c:2857
 msgid "A transaction with a multiple payee must be a new one."
 msgstr ""
 "Une opération dont le tiers est un état doit forcément être une nouvelle "
 "opération."
 
-#: ../src/gsb_form.c:2842
+#: ../src/gsb_form.c:2862
 msgid "A transaction with a multiple payee cannot be a split child."
 msgstr ""
 "Une opération dont le tiers est un état ne peut pas être une sous-opération."
 
-#: ../src/gsb_form.c:2853
+#: ../src/gsb_form.c:2873
 msgid "The word \"Report\" is reserved. Please use another one."
 msgstr "Le mot « État » est réservé.  Veuillez en utiliser un autre."
 
-#: ../src/gsb_form.c:2860
+#: ../src/gsb_form.c:2880
 msgid "Invalid multiple payee."
 msgstr "Nom de tiers déjà utilisé."
 
-#: ../src/gsb_form.c:3143
+#: ../src/gsb_form.c:3163
 msgid "Modifying a transaction"
 msgstr "Modifier une opération"
 
-#: ../src/gsb_form.c:3144
+#: ../src/gsb_form.c:3164
 msgid ""
 "You are trying to change a split of transaction to another kind of "
 "transaction.\n"
@@ -7705,11 +7703,11 @@ msgstr ""
 "Etes vous certain ?"
 
 #. propose to configure the form
-#: ../src/gsb_form.c:3444
+#: ../src/gsb_form.c:3465
 msgid "Configure the form"
 msgstr "Configurer le formulaire"
 
-#: ../src/gsb_form_config.c:116 ../src/parametres.c:439
+#: ../src/gsb_form_config.c:116 ../src/parametres.c:442
 msgid "Transaction form"
 msgstr "Formulaire des opérations"
 
@@ -7826,12 +7824,12 @@ msgid "Free"
 msgstr "Libre"
 
 #: ../src/gsb_form_widget.c:450 ../src/gsb_transactions_list.c:153
-#: ../src/traitement_variables.c:86
+#: ../src/traitement_variables.c:85
 msgid "Method of payment"
 msgstr "Moyen de paiement"
 
 #: ../src/gsb_form_widget.c:478 ../src/gsb_transactions_list.c:161
-#: ../src/traitement_variables.c:94
+#: ../src/traitement_variables.c:93
 msgid "Transaction number"
 msgstr "N° opération"
 
@@ -7839,7 +7837,7 @@ msgstr "N° opération"
 msgid "Automatic/Manual"
 msgstr "Auto/Manuel"
 
-#: ../src/gsb_fyear_config.c:99 ../src/parametres.c:510
+#: ../src/gsb_fyear_config.c:99 ../src/parametres.c:513
 msgid "Financial years"
 msgstr "Exercices"
 
@@ -8125,7 +8123,7 @@ msgstr ""
 msgid "Delete reconciliation"
 msgstr "Supprimer un rapprochement"
 
-#: ../src/gsb_reconcile_sort_config.c:86 ../src/parametres.c:429
+#: ../src/gsb_reconcile_sort_config.c:86 ../src/parametres.c:432
 msgid "Sort for reconciliation"
 msgstr "Options de tri pour les rapprochements"
 
@@ -8238,7 +8236,7 @@ msgid "Only this one"
 msgstr "Juste celle-ci"
 
 #. set the title
-#: ../src/gsb_scheduler_list.c:1800 ../src/navigation.c:1177
+#: ../src/gsb_scheduler_list.c:1800 ../src/navigation.c:1186
 msgid "Scheduled transactions"
 msgstr "Opérations planifiées"
 
@@ -8525,7 +8523,7 @@ msgid "ask for the sort number %d which doesn't exist... return by date"
 msgstr ""
 "Demande pour un numéro de tri : %d qui n'existe pas... retour au tri par date"
 
-#: ../src/gtk_combofix.c:982
+#: ../src/gtk_combofix.c:992
 msgid ""
 "You cannot create new payee or category and subcategory without changing the "
 "options in preferences"
@@ -8533,7 +8531,7 @@ msgstr ""
 "Vous ne pouvez pas créer de nouveau tiers ou catégorie sous-catégorie sans "
 "modifier l'option correspondante dans les préférences"
 
-#: ../src/gtk_combofix.c:985
+#: ../src/gtk_combofix.c:995
 msgid "Warning you cannot create payee or category"
 msgstr "Attention vous ne pouvez pas créer de tiers ou de catégorie"
 
@@ -8949,7 +8947,7 @@ msgstr "Utiliser la date de valeur ou la date de l'opération si non présente"
 msgid "Manage import associations"
 msgstr "Gérer les associations pour l'import"
 
-#: ../src/import.c:3592 ../src/parametres.c:301
+#: ../src/import.c:3592 ../src/parametres.c:304
 msgid "Import associations"
 msgstr "Associations pour l'import"
 
@@ -9000,48 +8998,48 @@ msgstr ""
 "%s n'a pas été importé avec succès. Une erreur est survenue durant la "
 "transaction."
 
-#: ../src/import.c:4397
+#: ../src/import.c:4395
 msgid "Import a file with a rule"
 msgstr "Importer un fichier à partir d'une règle"
 
 #. text for paddingbox
-#: ../src/import.c:4408
+#: ../src/import.c:4406
 #, c-format
 msgid "Properties of the rule : %s\n"
 msgstr "Propriétés de la règle : %s\n"
 
-#: ../src/import.c:4427
+#: ../src/import.c:4425
 #, c-format
 msgid "Imported transactions will be added to the account %s.\n"
 msgstr "Les opérations importées seront ajoutées au compte : %s.\n"
 
-#: ../src/import.c:4430
+#: ../src/import.c:4428
 #, c-format
 msgid "Imported transactions will mark transactions in the account %s.\n"
 msgstr "Les opérations importées seront marquées dans le compte %s.\n"
 
 #. textstring 2
-#: ../src/import.c:4435
+#: ../src/import.c:4433
 #, c-format
 msgid "Currency to import is %s.\n"
 msgstr "La devise des opérations importées est : %s.\n"
 
-#: ../src/import.c:4442
+#: ../src/import.c:4440
 #, c-format
 msgid "Amounts of the transactions will be inverted.\n"
 msgstr "Le montant des opérations sera inversé.\n"
 
 #. label filename
-#: ../src/import.c:4453
+#: ../src/import.c:4451
 msgid "Name of the file to import "
 msgstr "Nom du fichier à importer "
 
-#: ../src/import.c:4554
+#: ../src/import.c:4552
 #, c-format
 msgid "Unable to create tmp file: %s\n"
 msgstr "Impossible de créer le fichier '%s'\n"
 
-#: ../src/import.c:4582
+#: ../src/import.c:4580
 #, c-format
 msgid "cannot unzip file '%s': %s"
 msgstr "Impossible de décompresser le fichier « %s » : %s"
@@ -9127,33 +9125,33 @@ msgstr ""
 msgid "Imported CSV account"
 msgstr "Compte CSV importé"
 
-#: ../src/imputation_budgetaire.c:365
+#: ../src/imputation_budgetaire.c:366
 msgid "Export the budgetary lines"
 msgstr "Exporter les imputations budgétaires"
 
-#: ../src/imputation_budgetaire.c:372
+#: ../src/imputation_budgetaire.c:373
 msgid "Budgetary-lines.igsb"
 msgstr "Imputations-budgétaires.igsb"
 
-#: ../src/imputation_budgetaire.c:390
+#: ../src/imputation_budgetaire.c:391
 msgid "Cannot save file."
 msgstr "Impossible d'enregistrer le fichier."
 
-#: ../src/imputation_budgetaire.c:414
+#: ../src/imputation_budgetaire.c:415
 msgid "Import budgetary lines"
 msgstr "Importer une liste d'imputations budgétaires"
 
-#: ../src/imputation_budgetaire.c:425
+#: ../src/imputation_budgetaire.c:426
 msgid "Grisbi budgetary lines files (*.igsb)"
 msgstr "Fichier d'imputations budgétaires (.igsb)"
 
-#: ../src/imputation_budgetaire.c:457
+#: ../src/imputation_budgetaire.c:458
 msgid "Merge imported budgetary lines with existing?"
 msgstr ""
 "Fusionner une liste d'imputations budgétaires importée avec la liste "
 "existante"
 
-#: ../src/imputation_budgetaire.c:459
+#: ../src/imputation_budgetaire.c:460
 msgid ""
 "File already contains budgetary lines.  If you decide to continue, existing "
 "budgetary lines will be merged with imported ones."
@@ -9161,7 +9159,7 @@ msgstr ""
 "Le fichier contient déjà des opérations, les deux listes d'imputations "
 "budgétaires seront fusionnées."
 
-#: ../src/imputation_budgetaire.c:460
+#: ../src/imputation_budgetaire.c:461
 msgid ""
 "File does not contain budgetary lines.  If you decide to continue, existing "
 "budgetary lines will be merged with imported ones.  Once performed, there is "
@@ -9174,7 +9172,7 @@ msgstr ""
 "Vous pouvez également décider de remplacer les imputations budgétaires "
 "existantes par les celles que vous êtes en train d'importer."
 
-#: ../src/imputation_budgetaire.c:518
+#: ../src/imputation_budgetaire.c:519
 msgid ""
 "New\n"
 "budgetary line"
@@ -9182,11 +9180,11 @@ msgstr ""
 "Nouvelle\n"
 "imputation"
 
-#: ../src/imputation_budgetaire.c:522
+#: ../src/imputation_budgetaire.c:523
 msgid "Create a new budgetary line"
 msgstr "Créer une imputation"
 
-#: ../src/imputation_budgetaire.c:528
+#: ../src/imputation_budgetaire.c:529
 msgid ""
 "New sub\n"
 "budgetary line"
@@ -9194,11 +9192,11 @@ msgstr ""
 "Nouvelle\n"
 "sous-imputation"
 
-#: ../src/imputation_budgetaire.c:535
+#: ../src/imputation_budgetaire.c:536
 msgid "Create a new sub-budgetary line"
 msgstr "Créer une sous-imputation"
 
-#: ../src/imputation_budgetaire.c:546
+#: ../src/imputation_budgetaire.c:547
 msgid ""
 "Import a Grisbi budgetary line file (.igsb) or create from a list of "
 "categories (.cgsb)"
@@ -9206,40 +9204,40 @@ msgstr ""
 "Importer une liste d'imputations budgétaires (.igsb) ou la créer à partir "
 "d'une liste de catégories (.csgb)"
 
-#: ../src/imputation_budgetaire.c:557
+#: ../src/imputation_budgetaire.c:558
 msgid "Export a Grisbi budgetary line file (.igsb)"
 msgstr "Exporter une liste d'imputations budgétaires (.igsb)"
 
-#: ../src/imputation_budgetaire.c:567
+#: ../src/imputation_budgetaire.c:568
 msgid "Delete selected budgetary line"
 msgstr "Supprimer l'imputation sélectionnée"
 
-#: ../src/imputation_budgetaire.c:577
+#: ../src/imputation_budgetaire.c:578
 msgid "Edit selected budgetary line"
 msgstr "Éditer l'imputation sélectionnée"
 
-#: ../src/imputation_budgetaire.c:587
+#: ../src/imputation_budgetaire.c:588
 msgid "Change display mode"
 msgstr "Changer le mode d'affichage"
 
 #. Edit transaction
-#: ../src/imputation_budgetaire.c:615
+#: ../src/imputation_budgetaire.c:616
 msgid "Budgetary line view"
 msgstr "Vue des imputation uniquement"
 
-#: ../src/imputation_budgetaire.c:621
+#: ../src/imputation_budgetaire.c:622
 msgid "Sub-budgetary line view"
 msgstr "Vue des imputations et des sous-imputations"
 
-#: ../src/imputation_budgetaire.c:673
+#: ../src/imputation_budgetaire.c:674
 msgid "No sub-budget defined"
 msgstr "Aucune sous-imputation définie"
 
-#: ../src/imputation_budgetaire.c:678
+#: ../src/imputation_budgetaire.c:679
 msgid "No budget defined"
 msgstr "Pas d'imputation définie"
 
-#: ../src/imputation_budgetaire.c:769
+#: ../src/imputation_budgetaire.c:770
 #, c-format
 msgid ""
 "You tried to rename current sub-budgetary line to '%s' but this sub-"
@@ -9248,7 +9246,7 @@ msgstr ""
 "Vous avez tenté de renommer la sous-imputation sélectionnée en '%s' mais "
 "elle existe déjà. Veuillez choisir un autre nom."
 
-#: ../src/imputation_budgetaire.c:776
+#: ../src/imputation_budgetaire.c:777
 #, c-format
 msgid ""
 "You tried to rename current budgetary line to '%s' but this budgetary line "
@@ -9257,21 +9255,21 @@ msgstr ""
 "Vous avez tenté de renommer l'imputation sélectionnée en '%s' mais elle "
 "existe déjà.  Veuillez choisir un autre nom."
 
-#: ../src/imputation_budgetaire.c:781
+#: ../src/imputation_budgetaire.c:782
 msgid "Budgetary line already exists"
 msgstr "L'imputation existe déjà"
 
 #. * Find a unique name for budget
-#: ../src/imputation_budgetaire.c:884 ../src/meta_budgetary.c:246
+#: ../src/imputation_budgetaire.c:885 ../src/meta_budgetary.c:245
 msgid "New sub-budget"
 msgstr "Nouvelle sous-imputation"
 
-#: ../src/main.c:162
+#: ../src/main.c:161
 #, c-format
 msgid "Error on sigaction: SIGSEGV won't be trapped\n"
 msgstr "Erreur sur sigaction, le signal SIGSEGV ne sera pas détourné\n"
 
-#: ../src/main.c:217
+#: ../src/main.c:216
 msgid ""
 "The version of GTK you are using do not benefit from its latest features.\n"
 "\n"
@@ -9474,7 +9472,7 @@ msgstr "Nouvelle imputation"
 msgid "New budget #%d"
 msgstr "Nouvelle imputation %d"
 
-#: ../src/meta_budgetary.c:252
+#: ../src/meta_budgetary.c:251
 #, c-format
 msgid "New sub-budget #%d"
 msgstr "Nouvelle sous-imputation #%d"
@@ -9493,7 +9491,7 @@ msgstr "Nouvelle catégorie"
 msgid "New category #%d"
 msgstr "Nouvelle catégorie %d"
 
-#: ../src/meta_categories.c:313
+#: ../src/meta_categories.c:312
 #, c-format
 msgid "New sub-category #%d"
 msgstr "Nouvelle sous-catégorie %d"
@@ -9581,85 +9579,85 @@ msgstr ""
 msgid "Please enter a %s!"
 msgstr "Veuillez entrer une %s !"
 
-#: ../src/navigation.c:1032
+#: ../src/navigation.c:1041
 msgid "Last statement: "
 msgstr "Dernier relevé : "
 
-#: ../src/navigation.c:1033
+#: ../src/navigation.c:1042
 msgid "Reconciled balance: "
 msgstr "Solde pointé : "
 
-#: ../src/navigation.c:1041
+#: ../src/navigation.c:1050
 msgid "Last statement: none"
 msgstr "Dernier relevé : Aucun"
 
 #. set the title
-#: ../src/navigation.c:1057
+#: ../src/navigation.c:1066
 msgid "Account transactions"
 msgstr "Opérations du compte"
 
-#: ../src/navigation.c:1063
+#: ../src/navigation.c:1072
 msgid "closed"
 msgstr "fermé"
 
 #. Create dialog
-#: ../src/parametres.c:234
+#: ../src/parametres.c:237
 msgid "Grisbi preferences"
 msgstr "Paramètres de Grisbi"
 
-#: ../src/parametres.c:264
+#: ../src/parametres.c:267
 msgid "Main"
 msgstr "Généralités"
 
-#: ../src/parametres.c:273 ../src/parametres.c:824
+#: ../src/parametres.c:276 ../src/parametres.c:824
 msgid "Files"
 msgstr "Fichiers"
 
-#: ../src/parametres.c:311 ../src/parametres.c:998
+#: ../src/parametres.c:314 ../src/parametres.c:998
 msgid "Programs"
 msgstr "Programmes"
 
-#: ../src/parametres.c:339
+#: ../src/parametres.c:342
 msgid "Display"
 msgstr "Affichage"
 
-#: ../src/parametres.c:356 ../src/parametres.c:616
+#: ../src/parametres.c:359 ../src/parametres.c:616
 msgid "Messages & warnings"
 msgstr "Messages et alertes"
 
-#: ../src/parametres.c:374 ../src/parametres.c:1155
+#: ../src/parametres.c:377 ../src/parametres.c:1155
 msgid "Payees, categories and budgetaries"
 msgstr "Tiers, catégories imputations budgétaires"
 
-#: ../src/parametres.c:401
+#: ../src/parametres.c:404
 msgid "List behavior"
 msgstr "Comportement de la liste"
 
-#: ../src/parametres.c:411 ../src/parametres.c:702
+#: ../src/parametres.c:414 ../src/parametres.c:702
 msgid "Messages before deleting"
 msgstr "Messages avant suppression"
 
-#: ../src/parametres.c:447
+#: ../src/parametres.c:450
 msgid "Content"
 msgstr "Contenu"
 
-#: ../src/parametres.c:456
+#: ../src/parametres.c:459
 msgid "Behavior"
 msgstr "Comportement"
 
-#: ../src/parametres.c:465
+#: ../src/parametres.c:468
 msgid "Completion"
 msgstr "Aide à la saisie"
 
-#: ../src/parametres.c:475
+#: ../src/parametres.c:478
 msgid "Resources"
 msgstr "Ressources"
 
-#: ../src/parametres.c:492
+#: ../src/parametres.c:495
 msgid "Currencies links"
 msgstr "Liens entre devises"
 
-#: ../src/parametres.c:535
+#: ../src/parametres.c:537
 msgid "Balance estimate"
 msgstr "Budget prévisionnel"
 
@@ -10731,7 +10729,7 @@ msgstr "Saviez-vous que..."
 msgid "Display tips at next start"
 msgstr "Afficher l'astuce lors du prochain démarrage"
 
-#: ../src/traitement_variables.c:87
+#: ../src/traitement_variables.c:86
 msgid "Reconciliation ref."
 msgstr "N° de rapprochement"
 
diff --git a/src/Makefile.am b/src/Makefile.am
index 3d83d03..9e3f56a 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -143,6 +143,8 @@ libgrisbi_la_SOURCES = \
 	utils_str.c		\
 	bet_config.c \
     bet_data.c \
+    bet_data_finance.c \
+    bet_finance_ui.c \
     bet_future.c \
     bet_hist.c \
 	bet_tab.c	\
@@ -152,6 +154,8 @@ libgrisbi_la_SOURCES = \
 	barre_outils.h		\
     bet_config.h \
     bet_data.h \
+    bet_data_finance.h \
+    bet_finance_ui.h \
     bet_future.h \
     bet_hist.h \
     bet_tab.h  \
@@ -285,8 +289,7 @@ libgrisbi_la_SOURCES = \
 	utils_files.h		\
 	utils_font
.h		\
 	utils_operations.h	\
-	utils_str.h      \
-	bet_config.c
+	utils_str.h
 
 grisbi_SOURCES = 		\
 	main.c				\
diff --git a/src/accueil.c b/src/accueil.c
index 3dca98d..a89e088 100644
--- a/src/accueil.c
+++ b/src/accueil.c
@@ -174,9 +174,7 @@ GtkWidget *creation_onglet_accueil ( void )
         {
             logo_accueil =  gtk_image_new_from_pixbuf ( 
                         gsb_select_icon_get_logo_pixbuf ( ) );
-            if ( ! logo_accueil )
-                logo_accueil =  gtk_image_new_from_pixbuf ( 
-                        gsb_select_icon_get_default_logo_pixbuf ( ) );
+
             gtk_box_pack_start ( GTK_BOX ( hbox_title ), logo_accueil, FALSE, FALSE, 20 );
             gtk_widget_set_size_request ( hbox_title, -1, LOGO_HEIGHT + 20 );
         }
diff --git a/src/affichage.c b/src/affichage.c
index d60e127..a45f5b3 100644
--- a/src/affichage.c
+++ b/src/affichage.c
@@ -492,18 +492,18 @@ void change_logo_accueil ( GtkWidget * file_selector )
 
     const gchar *selected_filename;
 
-    selected_filename = file_selection_get_filename (GTK_FILE_CHOOSER (file_selector));
+    selected_filename = file_selection_get_filename ( GTK_FILE_CHOOSER ( file_selector ) );
 
     if ( gsb_data_account_get_accounts_amount () )
     {
         /* on change le logo */
         gchar * chemin_logo;
 
-        gtk_container_remove (GTK_CONTAINER(logo_button), preview);
+        gtk_container_remove ( GTK_CONTAINER ( logo_button ), preview );
         chemin_logo = g_strstrip ( g_strdup ( selected_filename ) );
         if ( !strlen ( chemin_logo ) )
         {
-            if ( logo_accueil && GTK_IS_WIDGET ( logo_accueil ))
+            if ( logo_accueil && GTK_IS_WIDGET ( logo_accueil ) )
                 gtk_widget_hide ( logo_accueil );
             preview = gtk_image_new_from_stock ( GTK_STOCK_MISSING_IMAGE,
                              GTK_ICON_SIZE_BUTTON );
@@ -511,8 +511,7 @@ void change_logo_accueil ( GtkWidget * file_selector )
         else
         {
             /* Update preview */
-            pixbuf = gdk_pixbuf_new_from_file (chemin_logo, NULL);
-			g_free(chemin_logo);
+            pixbuf = gdk_pixbuf_new_from_file ( chemin_logo, NULL );
             if (!pixbuf)
             {
                 if ( logo_accueil && GTK_IS_WIDGET ( logo_accueil ))
@@ -522,6 +521,26 @@ void change_logo_accueil ( GtkWidget * file_selector )
             }
             else
             {
+                if ( g_strcmp0 ( g_path_get_dirname ( chemin_logo ), PIXMAPS_DIR ) == 0 )
+                {
+                    gchar *name_logo;
+
+                    etat.is_pixmaps_dir = TRUE;
+
+                    name_logo = g_path_get_basename ( chemin_logo );
+                    if ( g_strcmp0 ( name_logo, "grisbi-logo.png" ) != 0 )
+                        etat.name_logo = name_logo;
+                    else
+                        etat.name_logo = NULL;
+                }
+                else
+                {
+                    etat.is_pixmaps_dir = FALSE;
+                    if ( etat.name_logo && strlen ( etat.name_logo ) )
+                        g_free ( etat.name_logo );
+                    etat.name_logo = NULL;
+                }
+
                 gsb_select_icon_set_logo_pixbuf ( pixbuf );
                 preview = gtk_image_new_from_pixbuf ( 
                         gdk_pixbuf_scale_simple ( 
@@ -538,9 +557,11 @@ void change_logo_accueil ( GtkWidget * file_selector )
                 gtk_window_set_default_icon ( 
                             gsb_select_icon_get_logo_pixbuf ( ) );
             }
+
+            g_free ( chemin_logo );
         }
         gtk_widget_show ( preview );
-        gtk_container_add ( GTK_CONTAINER(logo_button), preview );
+        gtk_container_add ( GTK_CONTAINER ( logo_button ), preview );
         
         /* Mark file as modified */
         if ( etat.modification_fichier == 0 )
@@ -562,20 +583,29 @@ gboolean modification_logo_accueil ( )
 					   GTK_STOCK_OPEN, GTK_RESPONSE_OK,
 					   NULL);
 
-    gtk_file_chooser_set_current_folder ( GTK_FILE_CHOOSER ( file_selector ), gsb_file_get_last_path () );
+    if ( etat.is_pixmaps_dir )
+        gtk_file_chooser_set_current_folder ( GTK_FILE_CHOOSER (
+                        file_selector ), PIXMAPS_DIR );
+    else
+        gtk_file_chooser_set_current_folder ( GTK_FILE_CHOOSER (
+                        file_selector ), gsb_file_get_last_path () );
+        
     gtk_window_set_position ( GTK_WINDOW ( file_selector ), GTK_WIN_POS_CENTER_ON_PARENT );
 
     /* create the preview */
     preview = gtk_image_new ();
-    gtk_file_chooser_set_preview_widget (GTK_FILE_CHOOSER (file_selector), preview);
-    g_signal_connect (G_OBJECT (file_selector), "update-preview",
-    		G_CALLBACK (preferences_view_update_preview_logo), preview);
+    gtk_file_chooser_set_preview_widget ( GTK_FILE_CHOOSER ( file_selector ), preview );
+    g_signal_connect (G_OBJECT (file_selector),
+                        "update-preview",
+                        G_CALLBACK ( preferences_view_update_preview_logo ),
+                        preview );
 
     switch ( gtk_dialog_run ( GTK_DIALOG ( file_selector ) ) )
     {
 	case GTK_RESPONSE_OK:
 	    change_logo_accueil ( file_selector );
-	    gsb_file_update_last_path (file_selection_get_last_directory (GTK_FILE_CHOOSER (file_selector), TRUE));
+	    gsb_file_update_last_path ( file_selection_get_last_directory (
+                        GTK_FILE_CHOOSER ( file_selector ), TRUE ) );
 
 	default:
 	    gtk_widget_destroy ( file_selector );
diff --git a/src/bet_config.c b/src/bet_config.c
index bf10ac0..209b84a 100644
--- a/src/bet_config.c
+++ b/src/bet_config.c
@@ -213,10 +213,12 @@ GtkWidget *bet_config_account_create_account_page ( void )
     gtk_notebook_set_scrollable ( GTK_NOTEBOOK ( notebook ), TRUE );
     gtk_box_pack_start ( GTK_BOX ( vbox_pref ), notebook, FALSE, FALSE, 0 );
     g_object_set_data ( G_OBJECT ( account_page ), "config_notebook", notebook );
+    gtk_widget_show ( notebook );
 
     /* Data for the account of type GSB_TYPE_BANK, GSB_TYPE_CASH */
     vbox = gtk_vbox_new ( FALSE, 0 );
     gtk_notebook_append_page ( GTK_NOTEBOOK ( notebook ), vbox, NULL );
+    gtk_widget_show ( vbox );
 
     /* Data for the forecast */
     widget = bet_config_account_get_forecast_data ( _("Data for the forecast") );
@@ -229,14 +231,12 @@ GtkWidget *bet_config_account_create_account_page ( void )
     gtk_box_pack_start ( GTK_BOX ( vbox ), widget, FALSE, FALSE, 0 );
 
     /* Data for the account of type GSB_TYPE_LIABILITIES */
-    vbox = gtk_vbox_new ( FALSE, 0 );
-    gtk_notebook_append_page ( GTK_NOTEBOOK ( notebook ), vbox, NULL );
+    //~ vbox = gtk_vbox_new ( FALSE, 0 );
+    //~ gtk_notebook_append_page ( GTK_NOTEBOOK ( notebook ), vbox, NULL );
 
     widget = g_object_get_data ( G_OBJECT ( account_page ), "account_combo" );
     bet_config_change_account ( widget );
 
-    gtk_widget_show_all ( notebook );
-
     return vbox_pref;
 }
 
@@ -953,8 +953,8 @@ gboolean bet_config_change_account ( GtkWidget *combo )
             bet_config_initialise_select_historical_data ( account_number, account_page );
             break;
         case GSB_TYPE_LIABILITIES:
-            gtk_notebook_set_current_page ( GTK_NOTEBOOK ( notebook ), 1 ); 
-            break;
+            //~ gtk_notebook_set_current_page ( GTK_NOTEBOOK ( notebook ), 1 ); 
+            //~ break;
         case GSB_TYPE_ASSET:
             break;
     }
@@ -1024,7 +1024,7 @@ gboolean bet_config_select_label_changed ( GtkWidget *checkbutton,
 void bet_config_sensitive_account_parameters ( gint account_number, gboolean sensitive )
 {
     GtkWidget *widget = NULL;
-
+printf ("account_number = %d sensitive = %d\n", account_number, sensitive);
     if ( sensitive )
     {
         kind_account kind;
@@ -1045,17 +1045,20 @@ void bet_config_sensitive_account_parameters ( gint account_number, gboolean sen
             gtk_widget_show_all ( widget );
             break;
         case GSB_TYPE_LIABILITIES:
-            break;
         case GSB_TYPE_ASSET:
+            widget = g_object_get_data ( G_OBJECT ( account_page ), "Data_for_forecast" );
+            gtk_widget_hide_all ( widget );
+            widget = g_object_get_data ( G_OBJECT ( account_page ), "Data_for_historical" );
+            gtk_widget_hide_all ( widget );
             break;
         }
     }
     else
     {
-            widget = g_object_get_data ( G_OBJECT ( account_page ), "Data_for_forecast" );
-            gtk_widget_hide_all ( widget );
-            widget = g_object_get_data ( G_OBJECT ( account_page ), "Data_for_historical" );
-            gtk_widget_hide_all ( widget );
+        widget = g_object_get_data ( G_OBJECT ( account_page ), "Data_for_forecast" );
+        gtk_widget_hide_all ( widget );
+        widget = g_object_get_data ( G_OBJECT ( account_page ), "Data_for_historical" );
+        gtk_widget_hide_all ( widget );
     }
 }
 
diff --git a/src/bet_data.c b/src/bet_data.c
index 99dafea..5c690da 100644
--- a/src/bet_data.c
+++ b/src/bet_data.c
@@ -31,6 +31,7 @@
 #include "bet_hist.h"
 #include "bet_tab.h"
 #include "dialog.h"
+#include "fenetre_principale.h"
 #include "gsb_data_account.h"
 #include "gsb_data_budget.h"
 #include "gsb_data_category.h"
@@ -38,7 +39,6 @@
 #include "gsb_data_transaction.h"
 #include "utils_dates.h"
 #include "navigation.h"
-#include "gsb_real.h"
 #include "traitement_variables.h"
 #include "gsb_file_save.h"
 #include "utils_str.h"
diff --git a/src/bet_data.h b/src/bet_data.h
index 5ebd298..60c84f9 100644
--- a/src/bet_data.h
+++ b/src/bet_data.h
@@ -5,7 +5,6 @@
 
 /* START_INCLUDE_H */
 #include "gsb_real.h"
-#include "fenetre_principale.h"
 /* END_INCLUDE_H */
 
 
diff --git a/src/bet_data_finance.c b/src/bet_data_finance.c
new file mode 100644
index 0000000..9b2d500
--- /dev/null
+++ b/src/bet_data_finance.c
@@ -0,0 +1,185 @@
+/* ************************************************************************** */
+/*                                                                            */
+/*     Copyright (C) 2010 Pierre Biava (grisbi at pierre.biava.name)             */
+/*          http://www.grisbi.org                                             */
+/*                                                                            */
+/*  This program is free software; you can redistribute it and/or modify      */
+/*  it under the terms of the GNU General Public License as published by      */
+/*  the Free Software Foundation; either version 2 of the License, or         */
+/*  (at your option) any later version.                                       */
+/*                                                                            */
+/*  This program is distributed in the hope that it will be useful,           */
+/*  but WITHOUT ANY WARRANTY; without even the implied warranty of            */
+/*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             */
+/*  GNU General Public License for more details.                              */
+/*                                                                            */
+/*  You should have received a copy of the GNU General Public License         */
+/*  along with this program; if not, write to the Free Software               */
+/*  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
+/*                                                                            */
+/* ************************************************************************** */
+
+#include "include.h"
+#include <config.h>
+
+/*START_INCLUDE*/
+#include "bet_data_finance.h"
+#include "bet_finance_ui.h"
+#include "utils_str.h"
+#include "erreur.h"
+/*END_INCLUDE*/
+
+
+/*START_STATIC*/
+/*END_STATIC*/
+
+/*START_EXTERN*/
+/*END_EXTERN*/
+
+/**
+ *
+ *
+ *
+ *
+ * */
+gdouble bet_data_finance_get_echeance ( gdouble capital,
+                        gdouble taux_periodique,
+                        gint nbre_echeances )
+{
+    gdouble coeff;
+    gdouble number;
+
+    coeff = pow ( ( 1 + taux_periodique ), nbre_echeances );
+
+    if ( taux_periodique == 0 )
+        number = capital / nbre_echeances;
+    else
+        number = ( capital * taux_periodique * coeff ) / ( coeff - 1 );
+    number = bet_data_finance_troncate_number ( number, 2 );
+
+    return number;
+}
+
+
+/**
+ *
+ *
+ *
+ *
+ * */
+gdouble bet_data_finance_get_taux_periodique ( gdouble taux, gint type_taux )
+{
+    gdouble taux_periodique;
+
+    if ( type_taux )
+        taux_periodique = ( taux / 100 ) / 12;
+    else
+        //~ taux_periodique = pow ( 1 + ( taux / 100 ), (1/12) ) - 1;
+        taux_periodique = 0.004868;
+
+    return taux_periodique;
+}
+
+
+/**
+ *
+ *
+ *
+ *
+ * */
+gdouble bet_data_finance_get_frais_par_echeance ( gdouble capital,
+                        gdouble taux_frais,
+                        gint nbre_echeances )
+{
+    gdouble number;
+
+    number = capital * taux_frais / 100 / nbre_echeances;
+    number = bet_data_finance_troncate_number ( number, 2 );
+
+    return number;
+}
+
+
+/**
+ *
+ *
+ *
+ *
+ * */
+gdouble bet_data_finance_get_interets ( gdouble capital_du, gdouble taux_periodique )
+{
+    gdouble number;
+
+    number = capital_du * taux_periodique;
+    number = bet_data_finance_troncate_number ( number, 2 );
+
+    return number;
+}
+
+
+/**
+ *
+ *
+ *
+ *
+ * */
+gdouble bet_data_finance_get_principal ( gdouble echeance,
+                        gdouble interets,
+                        gdouble frais )
+{
+    gdouble number;
+
+    number = echeance - interets - frais;
+    number = bet_data_finance_troncate_number ( number, 2 );
+
+    return number;
+}
+
+
+/**
+ *
+ *
+ *
+ *
+ * */
+gdouble bet_data_finance_get_last_echeance ( gdouble capital_du,
+                        gdouble interets,
+                        gdouble frais )
+{
+gdouble number;
+
+    number = capital_du + interets + frais;
+    number = bet_data_finance_troncate_number ( number, 2 );
+
+    return number;
+}
+
+
+/**
+ *
+ *
+ *
+ *
+ * */
+gdouble bet_data_finance_troncate_number ( gdouble number, gint nbre_decimal )
+{
+    gchar buffer[256];
+    gchar *str_number;
+    gchar *format;
+    gint nbre_char;
+    gdouble result;
+
+    format = g_strconcat ( "%.", utils_str_itoa ( nbre_decimal ), "f", NULL );
+
+    nbre_char = g_sprintf ( buffer, format, number );
+    str_number = g_strndup ( buffer, nbre_char + 1 );
+
+    result =  my_strtod ( str_number, NULL );
+
+    return result;
+}
+
+
+/* Local Variables: */
+/* c-basic-offset: 4 */
+/* End: */
diff --git a/src/bet_data_finance.h b/src/bet_data_finance.h
new file mode 100644
index 0000000..81bab81
--- /dev/null
+++ b/src/bet_data_finance.h
@@ -0,0 +1,30 @@
+#ifndef _BET_DATA_FINANCE_H
+#define _BET_DATA_FINANCE_H
+
+#include <gtk/gtk.h>
+
+/* START_INCLUDE_H */
+#include "gsb_real.h"
+/* END_INCLUDE_H */
+
+
+/* START_DECLARATION */
+gdouble bet_data_finance_get_last_echeance ( gdouble capital_du,
+                        gdouble interets,
+                        gdouble frais );
+gdouble bet_data_finance_get_echeance ( gdouble capital,
+                        gdouble taux_periodique,
+                        gint duree );
+gdouble bet_data_finance_get_frais_par_echeance ( gdouble capital,
+                        gdouble taux_frais,
+                        gint nbre_echeances );
+gdouble bet_data_finance_get_interets ( gdouble capital_du, gdouble taux_periodique );
+gdouble bet_data_finance_get_principal ( gdouble echeance,
+                        gdouble interets,
+                        gdouble frais );
+gdouble bet_data_finance_get_taux_periodique ( gdouble taux, gint type_taux );
+gdouble bet_data_finance_troncate_number ( gdouble number, gint nbre_decimal );
+/* END_DECLARATION */
+
+
+#endif /*_BET_DATA_FINANCE*/
diff --git a/src/bet_finance_ui.c b/src/bet_finance_ui.c
new file mode 100644
index 0000000..576e16e
--- /dev/null
+++ b/src/bet_finance_ui.c
@@ -0,0 +1,1323 @@
+/* ************************************************************************** */
+/*                                                                            */
+/*     Copyright (C) 2010 Pierre Biava (grisbi at pierre.biava.name)             */
+/*          http://www.grisbi.org                                             */
+/*                                                                            */
+/*  This program is free software; you can redistribute it and/or modify      */
+/*  it under the terms of the GNU General Public License as published by      */
+/*  the Free Software Foundation; either version 2 of the License, or         */
+/*  (at your option) any later version.                                       */
+/*                                                                            */
+/*  This program is distributed in the hope that it will be useful,           */
+/*  but WITHOUT ANY WARRANTY; without even the implied warranty of            */
+/*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             */
+/*  GNU General Public License for more details.                              */
+/*                                                                            */
+/*  You should have received a copy of the GNU General Public License         */
+/*  along with this program; if not, write to the Free Software               */
+/*  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
+/*                                                                            */
+/* ************************************************************************** */
+
+#include "include.h"
+#include <config.h>
+
+/*START_INCLUDE*/
+#include "bet_finance_ui.h"
+#include "bet_data_finance.h"
+#include "dialog.h"
+#include "fenetre_principale.h"
+#include "gsb_combo_box.h"
+#include "gsb_currency.h"
+#include "gsb_form_widget.h"
+#include "gsb_real.h"
+#include "mouse.h"
+#include "structures.h"
+#include "utils.h"
+#include "erreur.h"
+/*END_INCLUDE*/
+
+/* structure échéance */
+ typedef struct {
+    gint duree;
+    gint nbre_echeances;
+    gint devise;
+    gdouble taux;
+    gdouble taux_periodique;
+    gdouble capital;
+    gdouble frais;
+    gdouble echeance;
+}  struct_echeance;
+
+/* structure amortissement */
+ typedef struct {
+    gint num_echeance;
+    gint devise;
+    gdouble taux_periodique;
+    gdouble interets;
+    gdouble capital_du;
+    gdouble principal;
+    gdouble frais;
+    gdouble echeance;
+}  struct_amortissement;
+
+/*START_STATIC*/
+static void bet_finance_activate_expander ( GtkWidget *expander, GtkWidget *widget );
+static void bet_finance_calculer_clicked ( GtkButton *button, GtkWidget *widget );
+static GtkWidget *bet_finance_create_amortization_page ( void );
+static GtkWidget *bet_finance_create_amortization_tree_view ( GtkWidget *container );
+static GtkWidget *bet_finance_create_data_tree_view ( GtkWidget *container );
+static GtkWidget *bet_finance_create_duration_widget ( GtkWidget *parent );
+static GtkWidget *bet_finance_create_saisie_widget ( GtkWidget *parent );
+static GtkWidget *bet_finance_create_simulator_page ( void );
+static gboolean bet_finance_data_list_button_press ( GtkWidget *tree_view,
+                        GdkEventButton *ev,
+                        GtkWidget *page );
+static void bet_finance_data_list_context_menu ( GtkWidget *tree_view, gint page_num );
+static gboolean bet_finance_duration_button_changed ( GtkWidget *combobox, GtkWidget *widget );
+static void bet_finance_fill_amortization_array ( GtkWidget *menu_item,
+                        GtkTreeSelection *tree_selection );
+static void bet_finance_fill_amortization_ligne ( GtkTreeModel *model,
+                        struct_amortissement *s_amortissement );
+static void bet_finance_fill_data_ligne ( GtkTreeModel *model, struct_echeance *s_echeance );
+static gboolean bet_finance_list_set_background_color ( GtkWidget *tree_view, gint color_column );
+static gdouble bet_finance_get_number_from_string ( GtkWidget *parent, const gchar *name );
+static void bet_finance_type_taux_changed ( GtkWidget *togglebutton, GtkWidget *widget );
+/*END_STATIC*/
+
+/*START_EXTERN*/
+extern GdkColor couleur_fond[2];
+/*END_EXTERN*/
+
+/* notebook pour la simulation de crédits */
+static GtkWidget *finance_notebook;
+
+ enum bet_finance_data_columns
+{
+    BET_FINANCE_DURATION_COLUMN,
+    BET_FINANCE_NBRE_ECHEANCE_COLUMN,
+    BET_FINANCE_DEVISE_COLUMN,
+    BET_FINANCE_CAPITAL_COLUMN,
+    BET_FINANCE_CAPITAL_DOUBLE,
+    BET_FINANCE_TAUX_COLUMN,
+    BET_FINANCE_TAUX_PERIODIQUE_DOUBLE,
+    BET_FINANCE_HORS_FRAIS_COLUMN,
+    BET_FINANCE_HORS_FRAIS_DOUBLE,
+    BET_FINANCE_FRAIS_COLUMN,
+    BET_FINANCE_FRAIS_DOUBLE,
+    BET_FINANCE_ECHEANCE_COLUMN,
+    BET_FINANCE_ECHEANCE_DOUBLE,
+    BET_FINANCE_BACKGROUND_COLOR,
+    BET_FINANCE_NBRE_COLUMNS
+};
+
+
+ enum bet_finance_amortization_columns
+{
+    BET_AMORTIZATION_NUMBER_COLUMN,
+    BET_AMORTIZATION_CAPITAL_DU_COLUMN,
+    BET_AMORTIZATION_INTERETS_COLUMN,
+    BET_AMORTIZATION_PRINCIPAL_COLUMN,
+    BET_AMORTIZATION_FRAIS_COLUMN,
+    BET_AMORTIZATION_ECHEANCE_COLUMN,
+    BET_AMORTIZATION_BACKGROUND_COLOR,
+    BET_AMORTIZATION_NBRE_COLUMNS
+};
+
+
+/**
+ * Create the finance page
+ *
+ *
+ *
+ * */
+GtkWidget *bet_finance_create_page ( void )
+{
+    GtkWidget *page;
+
+    devel_debug (NULL);
+
+    /* create a notebook for simulator and array of Amortization */
+    finance_notebook = gtk_notebook_new ( );
+    gtk_notebook_set_show_tabs ( GTK_NOTEBOOK ( finance_notebook ), FALSE );
+    gtk_widget_show ( finance_notebook );
+
+    /* create the simulator page */
+    page = bet_finance_create_simulator_page ( );
+    gtk_notebook_append_page ( GTK_NOTEBOOK ( finance_notebook ), page, NULL );
+
+    /* create the array page */
+    page = bet_finance_create_amortization_page ( );
+    gtk_notebook_append_page ( GTK_NOTEBOOK ( finance_notebook ), page, NULL );
+    
+    return finance_notebook;
+}
+
+
+/**
+ * Switch to the simulator page
+ *
+ *
+ *
+ * */
+void bet_finance_switch_simulator_page ( void )
+{
+    gtk_notebook_set_current_page ( GTK_NOTEBOOK ( finance_notebook ), 0 );
+}
+
+
+/**
+ * Create the simulator page
+ *
+ *
+ *
+ * */
+GtkWidget *bet_finance_create_simulator_page ( void )
+{
+    GtkWidget *page;
+    GtkWidget *widget;
+    GtkWidget *vbox, *hbox;
+    GtkWidget *align;
+    GtkWidget *label;
+    GtkWidget *spin_button = NULL;
+    GtkWidget *button;
+    GtkWidget *tree_view;
+    GtkWidget *expander;
+
+    devel_debug (NULL);
+
+    page = gtk_vbox_new ( FALSE, 5 );
+
+    /* titre de la page */
+    align = gtk_alignment_new (0.5, 0.0, 0.0, 0.0);
+    gtk_box_pack_start ( GTK_BOX ( page ), align, FALSE, FALSE, 5);
+ 
+    label = gtk_label_new ( _("Credits simulator") );
+    gtk_container_add ( GTK_CONTAINER ( align ), label );
+
+    /* Choix des données sources */
+    align = gtk_alignment_new (0.5, 0.0, 0.0, 0.0);
+    gtk_box_pack_start ( GTK_BOX ( page ), align, FALSE, FALSE, 5);
+
+    hbox = gtk_hbox_new ( FALSE, 5 );
+    gtk_container_add ( GTK_CONTAINER ( align ), hbox );
+
+    /* capital */
+    label = gtk_label_new ( COLON( _("Montant emprunté") ) );
+    gtk_misc_set_alignment ( GTK_MISC ( label ), 0, 0.5);
+    gtk_label_set_justify ( GTK_LABEL ( label ), GTK_JUSTIFY_LEFT );
+    gtk_box_pack_start ( GTK_BOX ( hbox ), label, FALSE, FALSE, 5 );
+
+    widget = gtk_entry_new ( );
+    //~ gtk_entry_set_text ( GTK_ENTRY ( widget ), "10000" );
+    g_object_set_data ( G_OBJECT ( page ), "capital", widget );
+    gtk_box_pack_start ( GTK_BOX ( hbox ), widget, FALSE, FALSE, 5 );
+    g_signal_connect ( G_OBJECT ( widget ),
+                        "changed",
+                        G_CALLBACK ( gsb_form_widget_amount_entry_changed ),
+                        NULL );
+
+    /* Set the devises */
+    widget = gsb_currency_make_combobox ( FALSE );
+    g_object_set_data ( G_OBJECT ( page ), "devise", widget );
+    gtk_box_pack_start ( GTK_BOX ( hbox ), widget, FALSE, FALSE, 0 );
+
+    /* taux */
+    label = gtk_label_new ( COLON( _("Taux d'intérêt annuel") ) );
+    gtk_misc_set_alignment ( GTK_MISC ( label ), 0, 0.5);
+    gtk_label_set_justify ( GTK_LABEL ( label ), GTK_JUSTIFY_LEFT );
+    gtk_box_pack_start ( GTK_BOX ( hbox ), label, FALSE, FALSE, 5 );
+
+    spin_button = gtk_spin_button_new_with_range ( 0.0, 100, 0.01);
+    //~ gtk_spin_button_set_value ( GTK_SPIN_BUTTON ( spin_button ), 5.00);
+    g_object_set_data ( G_OBJECT ( page ), "taux", spin_button );
+    gtk_box_pack_start ( GTK_BOX ( hbox ), spin_button, FALSE, FALSE, 0 );
+
+    label = gtk_label_new ( COLON( _("%") ) );
+    gtk_label_set_justify ( GTK_LABEL ( label ), GTK_JUSTIFY_LEFT );
+    gtk_box_pack_start ( GTK_BOX ( hbox ), label, FALSE, FALSE, 5 );
+
+    /* durée */
+    label = gtk_label_new ( COLON( _("Durée") ) );
+    gtk_misc_set_alignment ( GTK_MISC ( label ), 0, 0.5);
+    gtk_label_set_justify ( GTK_LABEL ( label ), GTK_JUSTIFY_LEFT );
+    gtk_box_pack_start ( GTK_BOX ( hbox ), label, FALSE, FALSE, 5 );
+
+    widget = bet_finance_create_duration_widget ( page );
+    g_object_set_data ( G_OBJECT ( page ), "duree", widget );
+    gtk_box_pack_start ( GTK_BOX ( hbox ), widget, FALSE, FALSE, 0 );
+
+    /* création du widget saisie détaillée */
+    vbox = gtk_vbox_new ( FALSE, 5 );
+    gtk_box_pack_start ( GTK_BOX ( page ), vbox, FALSE, FALSE, 5);
+
+    hbox = gtk_hbox_new ( FALSE, 5 );
+    gtk_box_pack_start ( GTK_BOX ( vbox ), hbox, FALSE, FALSE, 5);
+    expander = gtk_expander_new ( _("Saisie détaillée") );
+    gtk_box_pack_start ( GTK_BOX ( hbox ), expander, TRUE, TRUE, 5 );
+
+    button = gtk_button_new_with_label ( _("Calculer") );
+    g_signal_connect ( G_OBJECT ( button ),
+                        "clicked",
+                        G_CALLBACK ( bet_finance_calculer_clicked ),
+                        page );
+    gtk_box_pack_start ( GTK_BOX ( hbox ), button, FALSE, FALSE, 5 );
+
+    widget = bet_finance_create_saisie_widget ( page );
+    gtk_box_pack_start ( GTK_BOX ( vbox ), widget, FALSE, FALSE, 5);
+    
+    g_signal_connect_after( G_OBJECT ( expander ),
+                        "activate",
+                        G_CALLBACK ( bet_finance_activate_expander ),
+                        widget );
+
+    /* création de la liste des données */
+    tree_view = bet_finance_create_data_tree_view ( page );
+    g_object_set_data ( G_OBJECT ( page ), "tree_view", tree_view );
+
+    gtk_widget_show_all ( page );
+    gtk_widget_hide ( widget );
+
+    return page;
+}
+
+
+/**
+ *
+ *
+ *
+ *
+ * */
+GtkWidget *bet_finance_create_duration_widget ( GtkWidget *parent )
+{
+    GtkWidget *combobox;
+    gchar *text_duration [] = {
+    _("Entre 1 et 15 ans"),
+    _("Entre 15 et 30 ans"),
+    NULL};
+
+    combobox = gsb_combo_box_new_with_index ( text_duration,
+                        G_CALLBACK ( bet_finance_duration_button_changed ),
+                        parent );
+    gsb_combo_box_set_index ( combobox, 0 );
+
+    return combobox;
+}
+
+
+/**
+ *
+ *
+ *
+ *
+ * */
+void bet_finance_activate_expander ( GtkWidget *expander, GtkWidget *widget )
+{
+    if ( gtk_expander_get_expanded ( GTK_EXPANDER ( expander ) ) )
+    {
+        gtk_widget_show ( widget );
+    }
+    else
+    {
+        gtk_widget_hide ( widget );
+    }
+}
+
+
+/**
+ *
+ *
+ *
+ *
+ * */
+GtkWidget *bet_finance_create_saisie_widget ( GtkWidget *parent )
+{
+    GtkWidget *vbox;
+    GtkWidget *hbox;
+    GtkWidget *align;
+    GtkWidget *label;
+    GtkWidget *spin_button = NULL;
+    GtkWidget *button_1, *button_2;
+
+    vbox = gtk_vbox_new ( FALSE, 5 );
+
+    /* Frais */
+    align = gtk_alignment_new (0.5, 0.0, 0.0, 0.0);
+    gtk_box_pack_start ( GTK_BOX ( vbox ), align, FALSE, FALSE, 0 );
+
+    hbox = gtk_hbox_new ( FALSE, 5 );
+    gtk_container_add ( GTK_CONTAINER ( align ), hbox );
+
+    label = gtk_label_new ( COLON( _("Frais") ) );
+    gtk_misc_set_alignment ( GTK_MISC ( label ), 0, 0.5);
+    gtk_label_set_justify ( GTK_LABEL ( label ), GTK_JUSTIFY_LEFT );
+    gtk_box_pack_start ( GTK_BOX ( hbox ), label, FALSE, FALSE, 5 );
+
+    spin_button = gtk_spin_button_new_with_range ( 0.0, 100, 0.01 );
+    //~ gtk_spin_button_set_value ( GTK_SPIN_BUTTON ( spin_button ), 0.35 );
+    g_object_set_data ( G_OBJECT ( parent ), "frais", spin_button );
+    gtk_box_pack_start ( GTK_BOX ( hbox ), spin_button, FALSE, FALSE, 0 );
+
+    label = gtk_label_new ( _("% du capital emprunté") );
+    gtk_label_set_justify ( GTK_LABEL ( label ), GTK_JUSTIFY_LEFT );
+    gtk_box_pack_start ( GTK_BOX ( hbox ), label, FALSE, FALSE, 5 );
+
+    /* Type de taux */
+    align = gtk_alignment_new (0.5, 0.0, 0.0, 0.0);
+    gtk_box_pack_start ( GTK_BOX ( vbox ), align, FALSE, FALSE, 0 );
+
+    hbox = gtk_hbox_new ( FALSE, 5 );
+    gtk_container_add ( GTK_CONTAINER ( align ), hbox );
+
+    label = gtk_label_new ( COLON( _("Type de taux") ) );
+    gtk_misc_set_alignment ( GTK_MISC ( label ), 0, 0.5);
+    gtk_label_set_justify ( GTK_LABEL ( label ), GTK_JUSTIFY_LEFT );
+    gtk_box_pack_start ( GTK_BOX ( hbox ), label, FALSE, FALSE, 5 );
+    button_1 = gtk_radio_button_new_with_label ( NULL, _("Taux actuariel") );
+    gtk_widget_set_sensitive ( button_1, FALSE );
+
+    button_2 = gtk_radio_button_new_with_label_from_widget ( GTK_RADIO_BUTTON ( button_1 ),
+                        _("Taux proportionnel") );
+    gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( button_2 ), TRUE );
+    g_object_set_data ( G_OBJECT ( parent ), "type_taux", button_2 );
+    gtk_widget_set_sensitive ( button_2, FALSE );
+
+    gtk_box_pack_start ( GTK_BOX ( hbox ), button_1, FALSE, FALSE, 5) ;
+    gtk_box_pack_start ( GTK_BOX ( hbox ), button_2, FALSE, FALSE, 5) ;
+    g_signal_connect ( button_1,
+                        "released",
+                        G_CALLBACK ( bet_finance_type_taux_changed ),
+                        parent );
+    g_signal_connect ( button_2,
+                        "released",
+                        G_CALLBACK ( bet_finance_type_taux_changed ),
+                        parent );
+
+    gtk_widget_show_all ( align );
+
+    return vbox;
+}
+
+
+/**
+ *
+ *
+ *
+ *
+ * */
+GtkWidget *bet_finance_create_data_tree_view ( GtkWidget *container )
+{
+    GtkWidget *scrolled_window;
+    GtkWidget *tree_view;
+    GtkTreeStore *tree_model;
+    GtkCellRenderer *cell;
+    GtkTreeViewColumn *column;
+    gchar *title;
+
+    tree_view = gtk_tree_view_new ( );
+    gtk_tree_view_set_rules_hint ( GTK_TREE_VIEW ( tree_view ), TRUE );
+
+    /* Create the tree store */
+    tree_model = gtk_tree_store_new ( BET_FINANCE_NBRE_COLUMNS,
+                        G_TYPE_STRING,      /* BET_FINANCE_DURATION_COLUMN        */
+                        G_TYPE_INT,         /* BET_FINANCE_NBRE_ECHEANCE_COLUMN   */
+                        G_TYPE_INT,         /* BET_FINANCE_DEVISE_COLUMN          */
+                        G_TYPE_STRING,      /* BET_FINANCE_CAPITAL_COLUMN         */
+                        G_TYPE_DOUBLE,      /* BET_FINANCE_CAPITAL_DOUBLE         */
+                        G_TYPE_STRING,      /* BET_FINANCE_TAUX_COLUMN            */
+                        G_TYPE_DOUBLE,      /* BET_FINANCE_TAUX_DOUBLE            */
+                        G_TYPE_STRING,      /* BET_FINANCE_HORS_FRAIS_COLUMN      */
+                        G_TYPE_DOUBLE,      /* BET_FINANCE_HORS_FRAIS_DOUBLE      */
+                        G_TYPE_STRING,      /* BET_FINANCE_FRAIS_COLUMN           */
+                        G_TYPE_DOUBLE,      /* BET_FINANCE_FRAIS_DOUBLE           */
+                        G_TYPE_STRING,      /* BET_FINANCE_ECHEANCE_COLUMN        */
+                        G_TYPE_DOUBLE,      /* BET_FINANCE_ECHEANCE_DOUBLE        */
+                        GDK_TYPE_COLOR );   /* BET_FINANCE_BACKGROUND_COLOR       */
+    gtk_tree_view_set_model ( GTK_TREE_VIEW ( tree_view ), GTK_TREE_MODEL ( tree_model ) );
+    g_object_unref ( G_OBJECT ( tree_model ) );
+
+    /* create columns */
+    /* durée */
+    title = g_strdup ( _("Durée") );
+    cell = gtk_cell_renderer_text_new ( );
+    g_object_set ( G_OBJECT ( cell ), "xalign", 0.5, NULL );
+
+    column = gtk_tree_view_column_new_with_attributes ( title,
+                        cell,
+                        "text", BET_FINANCE_DURATION_COLUMN,
+                        "cell-background-gdk", BET_FINANCE_BACKGROUND_COLOR,
+                        NULL);
+    gtk_tree_view_append_column ( GTK_TREE_VIEW ( tree_view ),
+                        GTK_TREE_VIEW_COLUMN ( column ) );
+    gtk_tree_view_column_set_expand ( GTK_TREE_VIEW_COLUMN ( column ), TRUE );
+    gtk_tree_view_column_set_resizable ( column, TRUE );
+    gtk_tree_view_column_set_alignment ( column, 0.5 );
+    g_free ( title );
+
+    /* Nombre d'échéances */
+    title = g_strdup ( _("Nombre\nd'échéances") );
+    cell = gtk_cell_renderer_text_new ( );
+    g_object_set ( G_OBJECT ( cell ), "xalign", 0.5, NULL );
+
+    column = gtk_tree_view_column_new_with_attributes ( title,
+                        cell,
+                        "text", BET_FINANCE_NBRE_ECHEANCE_COLUMN,
+                        "cell-background-gdk", BET_FINANCE_BACKGROUND_COLOR,
+                        NULL);
+    gtk_tree_view_append_column ( GTK_TREE_VIEW ( tree_view ),
+                        GTK_TREE_VIEW_COLUMN ( column ) );
+    gtk_tree_view_column_set_expand ( GTK_TREE_VIEW_COLUMN ( column ), TRUE );
+    gtk_tree_view_column_set_resizable ( column, TRUE );
+    gtk_tree_view_column_set_alignment ( column, 0.5 );
+    g_free ( title );
+
+    /* Capital emprunté */
+    title = g_strdup ( _("Capital\nemprunté") );
+    cell = gtk_cell_renderer_text_new ( );
+    g_object_set ( G_OBJECT ( cell ), "xalign", 0.5, NULL );
+
+    column = gtk_tree_view_column_new_with_attributes ( title,
+                        cell,
+                        "text", BET_FINANCE_CAPITAL_COLUMN,
+                        "cell-background-gdk", BET_FINANCE_BACKGROUND_COLOR,
+                        NULL);
+    gtk_tree_view_append_column ( GTK_TREE_VIEW ( tree_view ),
+                        GTK_TREE_VIEW_COLUMN ( column ) );
+    gtk_tree_view_column_set_expand ( GTK_TREE_VIEW_COLUMN ( column ), TRUE );
+    gtk_tree_view_column_set_resizable ( column, TRUE );
+    gtk_tree_view_column_set_alignment ( column, 0.5 );
+    g_free ( title );
+
+    /* Taux d'emprunt */
+    title = g_strdup ( _("Taux\nd'emprunt") );
+    cell = gtk_cell_renderer_text_new ( );
+    g_object_set ( G_OBJECT ( cell ), "xalign", 0.5, NULL );
+
+    column = gtk_tree_view_column_new_with_attributes ( title,
+                        cell,
+                        "text", BET_FINANCE_TAUX_COLUMN,
+                        "cell-background-gdk", BET_FINANCE_BACKGROUND_COLOR,
+                        NULL);
+    gtk_tree_view_append_column ( GTK_TREE_VIEW ( tree_view ),
+                        GTK_TREE_VIEW_COLUMN ( column ) );
+    gtk_tree_view_column_set_expand ( GTK_TREE_VIEW_COLUMN ( column ), TRUE );
+    gtk_tree_view_column_set_resizable ( column, TRUE );
+    gtk_tree_view_column_set_alignment ( column, 0.5 );
+    g_free ( title );
+
+    /* Echéance hors frais*/
+    title = g_strdup ( _("Echéance\nhors frais") );
+    cell = gtk_cell_renderer_text_new ( );
+    g_object_set ( G_OBJECT ( cell ), "xalign", 0.5, NULL );
+
+    column = gtk_tree_view_column_new_with_attributes ( title,
+                        cell,
+                        "text", BET_FINANCE_HORS_FRAIS_COLUMN,
+                        "cell-background-gdk", BET_FINANCE_BACKGROUND_COLOR,
+                        NULL);
+    gtk_tree_view_append_column ( GTK_TREE_VIEW ( tree_view ),
+                        GTK_TREE_VIEW_COLUMN ( column ) );
+    gtk_tree_view_column_set_expand ( GTK_TREE_VIEW_COLUMN ( column ), TRUE );
+    gtk_tree_view_column_set_resizable ( column, TRUE );
+    gtk_tree_view_column_set_alignment ( column, 0.5 );
+    g_free ( title );
+
+    /* Frais */
+    title = g_strdup ( _("Frais") );
+    cell = gtk_cell_renderer_text_new ( );
+    g_object_set ( G_OBJECT ( cell ), "xalign", 0.5, NULL );
+
+    column = gtk_tree_view_column_new_with_attributes ( title,
+                        cell,
+                        "text", BET_FINANCE_FRAIS_COLUMN,
+                        "cell-background-gdk", BET_FINANCE_BACKGROUND_COLOR,
+                        NULL);
+    gtk_tree_view_append_column ( GTK_TREE_VIEW ( tree_view ),
+                        GTK_TREE_VIEW_COLUMN ( column ) );
+    gtk_tree_view_column_set_expand ( GTK_TREE_VIEW_COLUMN ( column ), TRUE );
+    gtk_tree_view_column_set_resizable ( column, TRUE );
+    gtk_tree_view_column_set_alignment ( column, 0.5 );
+    g_free ( title );
+
+    /* Montant de l'échéance */
+    title = g_strdup ( _("Echéance\ntotale") );
+    cell = gtk_cell_renderer_text_new ( );
+    g_object_set ( G_OBJECT ( cell ), "xalign", 0.5, NULL );
+
+    column = gtk_tree_view_column_new_with_attributes ( title,
+                        cell,
+                        "text", BET_FINANCE_ECHEANCE_COLUMN,
+                        "cell-background-gdk", BET_FINANCE_BACKGROUND_COLOR,
+                        NULL);
+    gtk_tree_view_append_column ( GTK_TREE_VIEW ( tree_view ),
+                        GTK_TREE_VIEW_COLUMN ( column ) );
+    gtk_tree_view_column_set_expand ( GTK_TREE_VIEW_COLUMN ( column ), TRUE );
+    gtk_tree_view_column_set_resizable ( column, TRUE );
+    gtk_tree_view_column_set_alignment ( column, 0.5 );
+    g_free ( title );
+
+    g_signal_connect ( G_OBJECT ( tree_view ),
+                        "button-press-event",
+                        G_CALLBACK ( bet_finance_data_list_button_press ),
+                        container );
+
+    scrolled_window = gtk_scrolled_window_new ( NULL, NULL );
+    gtk_scrolled_window_set_policy ( GTK_SCROLLED_WINDOW ( scrolled_window ),
+                        GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC );
+    gtk_widget_set_size_request ( scrolled_window, -1, 250 );
+    gtk_container_add ( GTK_CONTAINER ( scrolled_window ), tree_view );
+    gtk_box_pack_start ( GTK_BOX ( container ), scrolled_window, TRUE, TRUE, 15 );
+
+    gtk_widget_show_all ( scrolled_window );
+
+    return tree_view;
+}
+
+
+/**
+ *
+ *
+ *
+ *
+ * */
+void bet_finance_calculer_clicked ( GtkButton *button, GtkWidget *widget )
+{
+    GtkWidget *combobox;
+    GtkWidget *bouton;
+    GtkWidget *tree_view;
+    GtkTreeModel *model;
+    gdouble taux_frais;
+    gint duree_min, duree_max;
+    gint type_taux;
+    gint index = 0;
+    struct_echeance *s_echeance;
+
+    tree_view = g_object_get_data ( G_OBJECT ( widget ), "tree_view" );
+    if ( !GTK_IS_TREE_VIEW ( tree_view ) )
+        return;
+
+    s_echeance = g_malloc0 ( sizeof ( struct_echeance ) );
+
+    /* devise */
+    combobox = g_object_get_data ( G_OBJECT ( widget ), "devise" );
+    if ( combobox )
+        s_echeance -> devise = gsb_currency_get_currency_from_combobox ( combobox );
+
+    /* capital */
+    s_echeance -> capital = bet_finance_get_number_from_string ( widget, "capital" );
+
+    if ( s_echeance -> capital == 0 )
+    {
+        gchar *tmp_str;
+
+        tmp_str = g_strdup ( _(" Vous devez au moins entrer une valeur pour le capital") );
+        dialogue_error ( tmp_str );
+        g_free ( tmp_str );
+        return;
+    }
+
+    /* taux */
+    s_echeance -> taux = bet_finance_get_number_from_string ( widget, "taux" );
+
+    /* durée */
+    combobox = g_object_get_data ( G_OBJECT ( widget ), "duree" );
+    if ( combobox )
+        index = gsb_combo_box_get_index ( combobox );
+
+    switch ( index )
+    {
+        case 0:
+            duree_min = 1;
+            duree_max = 15;
+            break;
+        case 1:
+            duree_min = 15;
+            duree_max = 30;
+            break;
+        default :
+            duree_min = 1;
+            duree_max = 15;
+            break;
+    }
+
+    /* frais */
+    taux_frais = bet_finance_get_number_from_string ( widget, "frais" );
+
+    /* type de taux */
+    bouton = g_object_get_data ( G_OBJECT ( widget ), "type_taux" );
+    type_taux = gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( bouton ) );
+
+    /* taux periodique */
+    s_echeance -> taux_periodique = bet_data_finance_get_taux_periodique (
+                        s_echeance -> taux,
+                        type_taux );
+
+    /* réinitialisation du model */
+    model = gtk_tree_view_get_model ( GTK_TREE_VIEW ( tree_view ) );
+    gtk_tree_store_clear ( GTK_TREE_STORE ( model ) );
+
+    for ( index = duree_min; index <= duree_max; index++ )
+    {
+        s_echeance -> duree = index;
+        s_echeance -> nbre_echeances = index * 12;
+        s_echeance -> frais = bet_data_finance_get_frais_par_echeance ( s_echeance -> capital,
+                        taux_frais,
+                        s_echeance -> nbre_echeances );
+
+        s_echeance -> echeance = bet_data_finance_get_echeance ( s_echeance -> capital,
+                        s_echeance -> taux_periodique,
+                        s_echeance -> nbre_echeances );
+
+        bet_finance_fill_data_ligne ( model, s_echeance );
+
+        s_echeance -> duree = 0;
+        s_echeance -> nbre_echeances = 0;
+        s_echeance -> echeance = 0;
+    }
+
+    bet_finance_list_set_background_color ( tree_view, BET_FINANCE_BACKGROUND_COLOR );
+
+    g_free ( s_echeance );
+}
+
+
+/**
+ *
+ *
+ *
+ *
+ * */
+gdouble bet_finance_get_number_from_string ( GtkWidget *parent, const gchar *name )
+{
+    GtkWidget *widget;
+    gdouble number = 0;
+
+    widget = g_object_get_data ( G_OBJECT ( parent ), name );
+    if ( GTK_IS_ENTRY ( widget ) )
+    {
+        GtkWidget *combobox;
+        const gchar *entry;
+        gchar *tmp_str;
+        gint devise = 0;
+
+        entry = gtk_entry_get_text ( GTK_ENTRY ( widget ) );
+        if ( entry && strlen ( entry ) > 0 )
+        {
+            number = my_strtod ( entry, NULL );
+            number = bet_data_finance_troncate_number ( number, 2 );
+
+            combobox = g_object_get_data ( G_OBJECT ( parent ), "devise" );
+            if ( combobox )
+                devise = gsb_currency_get_currency_from_combobox ( combobox );
+            tmp_str = gsb_real_get_string_with_currency (
+                        gsb_real_double_to_real ( number ), devise, FALSE );
+            gtk_entry_set_text ( GTK_ENTRY ( widget ), tmp_str );
+            g_free ( tmp_str );
+        }
+    }
+    else if ( GTK_IS_SPIN_BUTTON  ( widget ) )
+        number = gtk_spin_button_get_value ( GTK_SPIN_BUTTON ( widget ) );
+
+    return number;
+}
+
+
+/**
+ *
+ *
+ *
+ *
+ * */
+void bet_finance_fill_data_ligne ( GtkTreeModel *model, struct_echeance *s_echeance )
+{
+    GtkTreeIter iter;
+    gchar *str_duree;
+    gchar *str_capital;
+    gchar *str_taux;
+    gchar *str_frais;
+    gchar *str_echeance;
+    gchar *str_totale;
+    gchar buffer[256];
+    gdouble echeance_totale;
+    gint nbre_char;
+
+    if ( s_echeance -> duree == 1 )
+        str_duree = g_strconcat ( utils_str_itoa ( s_echeance -> duree ), " an", NULL );
+    else
+        str_duree = g_strconcat ( utils_str_itoa ( s_echeance -> duree ), " ans", NULL );
+
+    str_capital = gsb_real_get_string_with_currency (
+                        gsb_real_double_to_real ( s_echeance -> capital ),
+                        s_echeance -> devise, TRUE );
+
+    nbre_char = g_sprintf ( buffer, "%.2f", s_echeance -> taux );
+    str_taux =  g_strndup ( buffer, nbre_char + 1 );
+
+    str_frais = gsb_real_get_string_with_currency (
+                        gsb_real_double_to_real ( s_echeance -> frais ),
+                        s_echeance -> devise, TRUE );
+
+    str_echeance = gsb_real_get_string_with_currency (
+                        gsb_real_double_to_real ( s_echeance -> echeance ),
+                        s_echeance -> devise, TRUE );
+
+    echeance_totale = s_echeance -> echeance + s_echeance -> frais;
+    str_totale = gsb_real_get_string_with_currency (
+                        gsb_real_double_to_real ( echeance_totale ),
+                        s_echeance -> devise, TRUE );
+
+
+    gtk_tree_store_append ( GTK_TREE_STORE ( model ), &iter, NULL );
+    gtk_tree_store_set ( GTK_TREE_STORE ( model ),
+                        &iter,
+                        BET_FINANCE_DURATION_COLUMN, str_duree,
+                        BET_FINANCE_NBRE_ECHEANCE_COLUMN, s_echeance -> nbre_echeances,
+                        BET_FINANCE_DEVISE_COLUMN, s_echeance -> devise,
+                        BET_FINANCE_CAPITAL_COLUMN, str_capital,
+                        BET_FINANCE_CAPITAL_DOUBLE, s_echeance -> capital,
+                        BET_FINANCE_TAUX_COLUMN, str_taux,
+                        BET_FINANCE_TAUX_PERIODIQUE_DOUBLE, s_echeance -> taux_periodique,
+                        BET_FINANCE_HORS_FRAIS_COLUMN, str_echeance,
+                        BET_FINANCE_HORS_FRAIS_DOUBLE, s_echeance -> echeance,
+                        BET_FINANCE_FRAIS_COLUMN, str_frais,
+                        BET_FINANCE_FRAIS_DOUBLE, s_echeance -> frais,
+                        BET_FINANCE_ECHEANCE_COLUMN, str_totale,
+                        BET_FINANCE_ECHEANCE_DOUBLE, echeance_totale,
+                        - 1 );
+
+    g_free ( str_duree );
+    g_free ( str_capital );
+    g_free ( str_taux );
+    g_free ( str_frais );
+    g_free ( str_echeance );
+    g_free ( str_totale );
+}
+
+
+/**
+ * set the background colors of the list
+ *
+ * \param tree_view
+ *
+ * \return FALSE
+ * */
+gboolean bet_finance_list_set_background_color ( GtkWidget *tree_view, gint color_column )
+{
+    GtkTreeModel *model;
+    GtkTreeIter iter;
+
+    if ( !tree_view )
+        return FALSE;
+
+    model = gtk_tree_view_get_model ( GTK_TREE_VIEW ( tree_view ));
+
+    if ( gtk_tree_model_get_iter_first ( GTK_TREE_MODEL ( model ), &iter ) )
+    {
+        gint current_color = 0;
+
+        do
+        {
+            gtk_tree_store_set ( GTK_TREE_STORE ( model ),
+                        &iter,
+                        color_column, &couleur_fond[current_color],
+                        -1 );
+
+            current_color = !current_color;
+        }
+        while ( gtk_tree_model_iter_next ( GTK_TREE_MODEL ( model ), &iter ) );
+    }
+
+    return FALSE;
+}
+
+
+/**
+ *
+ *
+ *
+ *
+ * */
+gboolean bet_finance_duration_button_changed ( GtkWidget *combobox, GtkWidget *widget )
+{
+    bet_finance_calculer_clicked ( NULL, widget );
+
+    return FALSE;
+}
+
+
+/**
+ *
+ *
+ *
+ *
+ * */
+void bet_finance_type_taux_changed ( GtkWidget *togglebutton, GtkWidget *widget )
+{
+    bet_finance_calculer_clicked ( NULL, widget );
+}
+
+
+/**
+ * called when we press a button on the list
+ *
+ * \param tree_view
+ * \param ev
+ *
+ * \return FALSE
+ * */
+gboolean bet_finance_data_list_button_press ( GtkWidget *tree_view,
+                        GdkEventButton *ev,
+                        GtkWidget *page )
+{
+    /* show the popup */
+    if ( ev -> button == RIGHT_BUTTON )
+    {
+        gint page_num;
+
+        page_num = gtk_notebook_page_num ( GTK_NOTEBOOK ( finance_notebook ), page );
+        bet_finance_data_list_context_menu ( tree_view, page_num );
+    }
+
+    return FALSE;
+}
+
+
+/**
+ * Pop up a menu with several actions to apply to data_list.
+ *
+ * \param tree_view
+ *
+ */
+void bet_finance_data_list_context_menu ( GtkWidget *tree_view, gint page_num )
+{
+    GtkWidget *menu, *menu_item;
+    GtkWidget *image;
+    GtkTreeModel *model;
+    GtkTreeSelection *tree_selection;
+    GtkTreeIter iter;
+    gchar *tmp_str;
+
+    tree_selection = gtk_tree_view_get_selection ( GTK_TREE_VIEW ( tree_view ) );
+
+    if ( !gtk_tree_selection_get_selected ( GTK_TREE_SELECTION ( tree_selection ),
+     &model, &iter ) )
+        return;
+
+    menu = gtk_menu_new ();
+
+    tmp_str = g_build_filename ( PIXMAPS_DIR, "ac_liability_16.png", NULL);
+    image = gtk_image_new_from_file ( tmp_str );
+    gtk_image_set_pixel_size ( GTK_IMAGE ( image ), GTK_ICON_SIZE_MENU );
+    g_free ( tmp_str );
+
+    if ( page_num == 0 )
+    {
+        menu_item = gtk_image_menu_item_new_with_label ( _("Afficher le tableau d'amortissement") );
+        g_signal_connect ( G_OBJECT ( menu_item ),
+                        "activate",
+                        G_CALLBACK ( bet_finance_fill_amortization_array ),
+                        tree_selection );
+    }
+    else
+    {
+        menu_item = gtk_image_menu_item_new_with_label ( _("Afficher le simulateur de crédits") );
+        g_signal_connect ( G_OBJECT ( menu_item ),
+                        "activate",
+                        G_CALLBACK ( bet_finance_switch_simulator_page ),
+                        NULL );
+    }
+    
+    gtk_image_menu_item_set_image ( GTK_IMAGE_MENU_ITEM ( menu_item ), image );
+    gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), menu_item );
+
+    /* Finish all. */
+    gtk_widget_show_all ( menu );
+    gtk_menu_popup ( GTK_MENU( menu ), NULL, NULL, NULL, NULL, 3,
+                        gtk_get_current_event_time ( ) );
+}
+
+
+/**
+ * Create the array page
+ *
+ *
+ *
+ * */
+GtkWidget *bet_finance_create_amortization_page ( void )
+{
+    GtkWidget *page;
+    GtkWidget *hbox;
+    GtkWidget *align;
+    GtkWidget *label;
+    GtkWidget *tree_view;
+
+    devel_debug (NULL);
+
+    page = gtk_vbox_new ( FALSE, 5 );
+
+    /* titre de la page */
+    align = gtk_alignment_new (0.5, 0.0, 0.0, 0.0);
+    gtk_box_pack_start ( GTK_BOX ( page ), align, FALSE, FALSE, 5);
+ 
+    label = gtk_label_new ( _("Tableau d'ammortissement") );
+    gtk_container_add ( GTK_CONTAINER ( align ), label );
+
+    /* Choix des données sources */
+    align = gtk_alignment_new (0.5, 0.0, 0.0, 0.0);
+    gtk_box_pack_start ( GTK_BOX ( page ), align, FALSE, FALSE, 5);
+
+    hbox = gtk_hbox_new ( FALSE, 5 );
+    gtk_container_add ( GTK_CONTAINER ( align ), hbox );
+
+    /* capital */
+    label = gtk_label_new ( COLON( _("Montant emprunté") ) );
+    gtk_misc_set_alignment ( GTK_MISC ( label ), 0, 0.5);
+    gtk_label_set_justify ( GTK_LABEL ( label ), GTK_JUSTIFY_LEFT );
+    gtk_box_pack_start ( GTK_BOX ( hbox ), label, FALSE, FALSE, 5 );
+
+    label = gtk_label_new ( NULL );
+    g_object_set_data ( G_OBJECT ( page ), "capital", label );
+    gtk_box_pack_start ( GTK_BOX ( hbox ), label, FALSE, FALSE, 5 );
+
+    /* taux */
+    label = gtk_label_new ( COLON( _("Taux d'intérêt annuel") ) );
+    gtk_misc_set_alignment ( GTK_MISC ( label ), 0, 0.5);
+    gtk_label_set_justify ( GTK_LABEL ( label ), GTK_JUSTIFY_LEFT );
+    gtk_box_pack_start ( GTK_BOX ( hbox ), label, FALSE, FALSE, 5 );
+
+    label = gtk_label_new ( NULL );
+    g_object_set_data ( G_OBJECT ( page ), "taux", label );
+    gtk_box_pack_start ( GTK_BOX ( hbox ), label, FALSE, FALSE, 0 );
+
+    label = gtk_label_new ( COLON( _("%") ) );
+    gtk_label_set_justify ( GTK_LABEL ( label ), GTK_JUSTIFY_LEFT );
+    gtk_box_pack_start ( GTK_BOX ( hbox ), label, FALSE, FALSE, 5 );
+
+    /* durée */
+    label = gtk_label_new ( COLON( _("Durée") ) );
+    gtk_misc_set_alignment ( GTK_MISC ( label ), 0, 0.5);
+    gtk_label_set_justify ( GTK_LABEL ( label ), GTK_JUSTIFY_LEFT );
+    gtk_box_pack_start ( GTK_BOX ( hbox ), label, FALSE, FALSE, 5 );
+
+    label = gtk_label_new ( NULL );
+    g_object_set_data ( G_OBJECT ( page ), "duree", label );
+    gtk_box_pack_start ( GTK_BOX ( hbox ), label, FALSE, FALSE, 0 );
+
+    /* création de la liste des données */
+    tree_view = bet_finance_create_amortization_tree_view ( page );
+    g_object_set_data ( G_OBJECT ( page ), "tree_view", tree_view );
+
+    gtk_widget_show_all ( page );
+
+    return page;
+}
+
+
+/**
+ *
+ *
+ *
+ *
+ * */
+GtkWidget *bet_finance_create_amortization_tree_view ( GtkWidget *container )
+{
+    GtkWidget *scrolled_window;
+    GtkWidget *tree_view;
+    GtkTreeStore *tree_model;
+    GtkCellRenderer *cell;
+    GtkTreeViewColumn *column;
+    gchar *title;
+
+    devel_debug ( NULL);
+    tree_view = gtk_tree_view_new ( );
+    gtk_tree_view_set_rules_hint ( GTK_TREE_VIEW ( tree_view ), TRUE );
+
+    /* Create the tree store */
+    tree_model = gtk_tree_store_new ( BET_AMORTIZATION_NBRE_COLUMNS,
+                        G_TYPE_INT,         /* BET_AMORTIZATION_NUMBER_COLUMN          */
+                        G_TYPE_STRING,      /* BET_AMORTIZATION_CAPITAL_DU_COLUMN,     */
+                        G_TYPE_STRING,      /* BET_AMORTIZATION_INTERETS_COLUMN        */
+                        G_TYPE_STRING,      /* BET_AMORTIZATION_PRINCIPAL_COLUMN       */
+                        G_TYPE_STRING,      /* BET_AMORTIZATION_FRAIS_COLUMN           */
+                        G_TYPE_STRING,      /* BET_AMORTIZATION_ECHEANCE_COLUMN        */
+                        GDK_TYPE_COLOR );   /* BET_AMORTIZATION_BACKGROUND_COLOR       */
+    gtk_tree_view_set_model ( GTK_TREE_VIEW ( tree_view ), GTK_TREE_MODEL ( tree_model ) );
+    g_object_unref ( G_OBJECT ( tree_model ) );
+
+    /* create columns */
+    /* numéro de l'échéance */
+    title = g_strdup ( _("Numéro") );
+    cell = gtk_cell_renderer_text_new ( );
+    g_object_set ( G_OBJECT ( cell ), "xalign", 0.5, NULL );
+
+    column = gtk_tree_view_column_new_with_attributes ( title,
+                        cell,
+                        "text", BET_AMORTIZATION_NUMBER_COLUMN,
+                        "cell-background-gdk", BET_AMORTIZATION_BACKGROUND_COLOR,
+                        NULL);
+    gtk_tree_view_append_column ( GTK_TREE_VIEW ( tree_view ),
+                        GTK_TREE_VIEW_COLUMN ( column ) );
+    gtk_tree_view_column_set_expand ( GTK_TREE_VIEW_COLUMN ( column ), TRUE );
+    gtk_tree_view_column_set_resizable ( column, TRUE );
+    gtk_tree_view_column_set_alignment ( column, 0.5 );
+    g_free ( title );
+
+    /* Capital restant dû */
+    title = g_strdup ( _("Capital restant dû") );
+    cell = gtk_cell_renderer_text_new ( );
+    g_object_set ( G_OBJECT ( cell ), "xalign", 0.5, NULL );
+
+    column = gtk_tree_view_column_new_with_attributes ( title,
+                        cell,
+                        "text", BET_AMORTIZATION_CAPITAL_DU_COLUMN,
+                        "cell-background-gdk", BET_AMORTIZATION_BACKGROUND_COLOR,
+                        NULL);
+    gtk_tree_view_append_column ( GTK_TREE_VIEW ( tree_view ),
+                        GTK_TREE_VIEW_COLUMN ( column ) );
+    gtk_tree_view_column_set_expand ( GTK_TREE_VIEW_COLUMN ( column ), TRUE );
+    gtk_tree_view_column_set_resizable ( column, TRUE );
+    gtk_tree_view_column_set_alignment ( column, 0.5 );
+    g_free ( title );
+
+    /* Capital emprunté */
+    title = g_strdup ( _("Intérêts") );
+    cell = gtk_cell_renderer_text_new ( );
+    g_object_set ( G_OBJECT ( cell ), "xalign", 0.5, NULL );
+
+    column = gtk_tree_view_column_new_with_attributes ( title,
+                        cell,
+                        "text", BET_AMORTIZATION_INTERETS_COLUMN,
+                        "cell-background-gdk", BET_AMORTIZATION_BACKGROUND_COLOR,
+                        NULL);
+    gtk_tree_view_append_column ( GTK_TREE_VIEW ( tree_view ),
+                        GTK_TREE_VIEW_COLUMN ( column ) );
+    gtk_tree_view_column_set_expand ( GTK_TREE_VIEW_COLUMN ( column ), TRUE );
+    gtk_tree_view_column_set_resizable ( column, TRUE );
+    gtk_tree_view_column_set_alignment ( column, 0.5 );
+    g_free ( title );
+
+    /* Capital remboursé */
+    title = g_strdup ( _("Principal") );
+    cell = gtk_cell_renderer_text_new ( );
+    g_object_set ( G_OBJECT ( cell ), "xalign", 0.5, NULL );
+
+    column = gtk_tree_view_column_new_with_attributes ( title,
+                        cell,
+                        "text", BET_AMORTIZATION_PRINCIPAL_COLUMN,
+                        "cell-background-gdk", BET_AMORTIZATION_BACKGROUND_COLOR,
+                        NULL);
+    gtk_tree_view_append_column ( GTK_TREE_VIEW ( tree_view ),
+                        GTK_TREE_VIEW_COLUMN ( column ) );
+    gtk_tree_view_column_set_expand ( GTK_TREE_VIEW_COLUMN ( column ), TRUE );
+    gtk_tree_view_column_set_resizable ( column, TRUE );
+    gtk_tree_view_column_set_alignment ( column, 0.5 );
+    g_free ( title );
+
+    /* Frais*/
+    title = g_strdup ( _("Frais") );
+    cell = gtk_cell_renderer_text_new ( );
+    g_object_set ( G_OBJECT ( cell ), "xalign", 0.5, NULL );
+
+    column = gtk_tree_view_column_new_with_attributes ( title,
+                        cell,
+                        "text", BET_AMORTIZATION_FRAIS_COLUMN,
+                        "cell-background-gdk", BET_AMORTIZATION_BACKGROUND_COLOR,
+                        NULL);
+    gtk_tree_view_append_column ( GTK_TREE_VIEW ( tree_view ),
+                        GTK_TREE_VIEW_COLUMN ( column ) );
+    gtk_tree_view_column_set_expand ( GTK_TREE_VIEW_COLUMN ( column ), TRUE );
+    gtk_tree_view_column_set_resizable ( column, TRUE );
+    gtk_tree_view_column_set_alignment ( column, 0.5 );
+    g_free ( title );
+
+    /* Montant de l'échéance */
+    title = g_strdup ( _("Echéance") );
+    cell = gtk_cell_renderer_text_new ( );
+    g_object_set ( G_OBJECT ( cell ), "xalign", 0.5, NULL );
+
+    column = gtk_tree_view_column_new_with_attributes ( title,
+                        cell,
+                        "text", BET_AMORTIZATION_ECHEANCE_COLUMN,
+                        "cell-background-gdk", BET_AMORTIZATION_BACKGROUND_COLOR,
+                        NULL);
+    gtk_tree_view_append_column ( GTK_TREE_VIEW ( tree_view ),
+                        GTK_TREE_VIEW_COLUMN ( column ) );
+    gtk_tree_view_column_set_expand ( GTK_TREE_VIEW_COLUMN ( column ), TRUE );
+    gtk_tree_view_column_set_resizable ( column, TRUE );
+    gtk_tree_view_column_set_alignment ( column, 0.5 );
+    g_free ( title );
+
+    g_signal_connect ( G_OBJECT ( tree_view ),
+                        "button-press-event",
+                        G_CALLBACK ( bet_finance_data_list_button_press ),
+                        container );
+
+    /* create the scrolled window */
+    scrolled_window = gtk_scrolled_window_new ( NULL, NULL );
+    gtk_scrolled_window_set_policy ( GTK_SCROLLED_WINDOW ( scrolled_window ),
+                        GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC );
+    gtk_widget_set_size_request ( scrolled_window, -1, 250 );
+    gtk_container_add ( GTK_CONTAINER ( scrolled_window ), tree_view );
+    gtk_box_pack_start ( GTK_BOX ( container ), scrolled_window, TRUE, TRUE, 15 );
+
+    gtk_widget_show_all ( scrolled_window );
+
+    return tree_view;
+}
+
+
+/**
+ * remplit le tableau d'amortissement
+ *
+ * /param menu item
+ * /param row selected
+ *
+ * */
+void bet_finance_fill_amortization_array ( GtkWidget *menu_item,
+                        GtkTreeSelection *tree_selection )
+{
+    GtkWidget *page;
+    GtkWidget *label;
+    GtkWidget *tree_view;
+    GtkTreeModel *store;
+    GtkTreeModel *model;
+    GtkTreeIter iter;
+    gchar *str_duree;
+    gchar *str_capital;
+    gchar *str_taux;
+    gint index = 0;
+    gint nbre_echeances;
+    gdouble taux_periodique;
+    struct_amortissement *s_amortissement;
+
+    devel_debug ( NULL );
+    if ( !gtk_tree_selection_get_selected ( GTK_TREE_SELECTION ( tree_selection ),
+     &model, &iter ) )
+        return;
+
+    gtk_notebook_next_page ( GTK_NOTEBOOK ( finance_notebook ) );
+
+    /* initialise les données utiles */
+    s_amortissement = g_malloc0 ( sizeof ( struct_amortissement ) );
+    gtk_tree_model_get ( model,
+                        &iter,
+                        BET_FINANCE_DURATION_COLUMN, &str_duree,
+                        BET_FINANCE_NBRE_ECHEANCE_COLUMN, &nbre_echeances,
+                        BET_FINANCE_DEVISE_COLUMN, &s_amortissement -> devise,
+                        BET_FINANCE_CAPITAL_COLUMN, &str_capital,
+                        BET_FINANCE_CAPITAL_DOUBLE, &s_amortissement -> capital_du,
+                        BET_FINANCE_TAUX_COLUMN, &str_taux,
+                        BET_FINANCE_TAUX_PERIODIQUE_DOUBLE, &taux_periodique,
+                        BET_FINANCE_FRAIS_DOUBLE, &s_amortissement -> frais,
+                        BET_FINANCE_ECHEANCE_DOUBLE, &s_amortissement -> echeance,
+                        -1 );
+
+    /* met à jour le titre du tableau d'amortissement */
+    page = gtk_notebook_get_nth_page ( GTK_NOTEBOOK ( finance_notebook ), 1 );
+    label = g_object_get_data ( G_OBJECT ( page ), "capital" );
+    gtk_label_set_label ( GTK_LABEL ( label ), str_capital );
+    label = g_object_get_data ( G_OBJECT ( page ), "taux" );
+    gtk_label_set_label ( GTK_LABEL ( label ), str_taux );
+    label = g_object_get_data ( G_OBJECT ( page ), "duree" );
+    gtk_label_set_label ( GTK_LABEL ( label ), str_duree );
+
+    g_free ( str_duree );
+    g_free ( str_capital );
+    g_free ( str_taux );
+
+    /* remplit le tableau d'amortissement */
+    tree_view = g_object_get_data ( G_OBJECT ( page ), "tree_view" );
+    store = gtk_tree_view_get_model ( GTK_TREE_VIEW ( tree_view ) );
+    gtk_tree_store_clear ( GTK_TREE_STORE ( store ) );
+
+    for ( index = 1; index <= nbre_echeances; index++ )
+    {
+        s_amortissement -> num_echeance = index;
+        s_amortissement -> interets = bet_data_finance_get_interets ( s_amortissement -> capital_du,
+                        taux_periodique );
+
+        if ( index == nbre_echeances )
+        {
+            s_amortissement -> echeance = bet_data_finance_get_last_echeance (
+                        s_amortissement -> capital_du,
+                        s_amortissement -> interets,
+                        s_amortissement -> frais );
+            s_amortissement -> principal = s_amortissement -> capital_du;
+        }
+        else
+            s_amortissement -> principal = bet_data_finance_get_principal (
+                        s_amortissement -> echeance,
+                        s_amortissement -> interets,
+                        s_amortissement -> frais );
+
+        bet_finance_fill_amortization_ligne ( store, s_amortissement );
+        s_amortissement -> capital_du -= s_amortissement -> principal;
+    }
+
+    g_free ( s_amortissement );
+    bet_finance_list_set_background_color ( tree_view, BET_AMORTIZATION_BACKGROUND_COLOR );
+}
+
+
+/**
+ *
+ *
+ *
+ *
+ * */
+void bet_finance_fill_amortization_ligne ( GtkTreeModel *model,
+                        struct_amortissement *s_amortissement )
+{
+    GtkTreeIter iter;
+    gchar *str_capital_du = NULL;
+    gchar *str_interets = NULL;
+    gchar *str_principal = NULL;
+    gchar *str_frais = NULL;
+    gchar *str_echeance = NULL;
+
+    str_capital_du = gsb_real_get_string_with_currency (
+                        gsb_real_double_to_real ( s_amortissement -> capital_du ),
+                        s_amortissement -> devise, TRUE );
+
+    str_interets = gsb_real_get_string_with_currency (
+                        gsb_real_double_to_real ( s_amortissement -> interets ),
+                        s_amortissement ->  devise, TRUE );
+
+    str_principal = gsb_real_get_string_with_currency (
+                        gsb_real_double_to_real ( s_amortissement -> principal ),
+                        s_amortissement ->  devise, TRUE );
+
+    str_frais = gsb_real_get_string_with_currency (
+                        gsb_real_double_to_real ( s_amortissement -> frais ),
+                        s_amortissement ->  devise, TRUE );
+
+    str_echeance = gsb_real_get_string_with_currency (
+                        gsb_real_double_to_real ( s_amortissement -> echeance ),
+                        s_amortissement ->  devise, TRUE );
+
+    gtk_tree_store_append ( GTK_TREE_STORE ( model ), &iter, NULL );
+    gtk_tree_store_set ( GTK_TREE_STORE ( model ),
+                        &iter,
+                        BET_AMORTIZATION_NUMBER_COLUMN, s_amortissement -> num_echeance,
+                        BET_AMORTIZATION_CAPITAL_DU_COLUMN, str_capital_du,
+                        BET_AMORTIZATION_INTERETS_COLUMN, str_interets,
+                        BET_AMORTIZATION_PRINCIPAL_COLUMN, str_principal,
+                        BET_AMORTIZATION_FRAIS_COLUMN, str_frais,
+                        BET_AMORTIZATION_ECHEANCE_COLUMN, str_echeance,
+                        - 1 );
+
+    g_free ( str_capital_du );
+    g_free ( str_interets );
+    g_free ( str_principal );
+}
+
+
+/**
+ *
+ *
+ *
+ *
+ * */
+/* Local Variables: */
+/* c-basic-offset: 4 */
+/* End: */
diff --git a/src/bet_finance_ui.h b/src/bet_finance_ui.h
new file mode 100644
index 0000000..0ddaaf4
--- /dev/null
+++ b/src/bet_finance_ui.h
@@ -0,0 +1,17 @@
+#ifndef _BET_FINANCE_UI_H
+#define _BET_FINANCE_UI_H
+
+#include <gtk/gtk.h>
+
+/* START_INCLUDE_H */
+/* END_INCLUDE_H */
+
+
+
+/* START_DECLARATION */
+GtkWidget *bet_finance_create_page ( void );
+void bet_finance_switch_simulator_page ( void );
+/* END_DECLARATION */
+
+
+#endif /*_BET_FINANCE_UI_H*/
diff --git a/src/bet_future.c b/src/bet_future.c
index 5652747..a71969f 100644
--- a/src/bet_future.c
+++ b/src/bet_future.c
@@ -31,6 +31,7 @@
 #include "bet_data.h"
 #include "bet_tab.h"
 #include "dialog.h"
+#include "fenetre_principale.h"
 #include "utils_dates.h"
 #include "gsb_calendar_entry.h"
 #include "gsb_combo_box.h"
diff --git a/src/bet_hist.c b/src/bet_hist.c
index e21a31d..6cc6b0e 100644
--- a/src/bet_hist.c
+++ b/src/bet_hist.c
@@ -31,6 +31,7 @@
 #include "bet_tab.h"
 #include "bet_config.h"
 #include "bet_data.h"
+#include "fenetre_principale.h"
 #include "utils_dates.h"
 #include "gsb_data_account.h"
 #include "gsb_data_fyear.h"
@@ -966,7 +967,7 @@ gboolean bet_historical_fyear_create_combobox_store ( void )
     /* the fyear list store, contains 3 columns :
      * FYEAR_COL_NAME : the name of the fyear
      * FYEAR_COL_NUMBER : the number of the fyear
-     * FYEAR_COL_VIEW : it tha fyear should be showed */
+     * FYEAR_COL_VIEW : it the fyear should be showed */
 
     titre = g_strdup ( _("12 months rolling") );
     bet_fyear_model = GTK_TREE_MODEL ( gtk_list_store_new ( 3,
diff --git a/src/fenetre_principale.c b/src/fenetre_principale.c
index 70d5d6e..47afbd4 100644
--- a/src/fenetre_principale.c
+++ b/src/fenetre_principale.c
@@ -27,6 +27,7 @@
 #include "fenetre_principale.h"
 #include "bet_tab.h"
 #include "bet_data.h"
+#include "bet_finance_ui.h"
 #include "bet_hist.h"
 #include "navigation.h"
 #include "gsb_transactions_list.h"
@@ -261,9 +262,15 @@ gboolean gsb_gui_fill_main_notebook ( GtkWidget *notebook )
 
     /* append the payee page */
     gtk_notebook_append_page ( GTK_NOTEBOOK ( notebook ),
-			       onglet_tiers(),
+			       onglet_tiers (),
 			       gtk_label_new (SPACIFY(_("Payee"))) );
 
+
+    /* append the financial page */
+    gtk_notebook_append_page ( GTK_NOTEBOOK ( notebook ),
+                        bet_finance_create_page (),
+                        gtk_label_new (SPACIFY(_("Credits simulator"))) );
+
     /* append the categories page */
     gtk_notebook_append_page ( GTK_NOTEBOOK ( notebook ),
 			       onglet_categories (),
diff --git a/src/fenetre_principale.h b/src/fenetre_principale.h
index b1ce5fc..38963dd 100644
--- a/src/fenetre_principale.h
+++ b/src/fenetre_principale.h
@@ -6,6 +6,7 @@ typedef enum GSB_GENERAL_NOTEBOOK_PAGES {
     GSB_ACCOUNT_PAGE,
     GSB_SCHEDULER_PAGE,
     GSB_PAYEES_PAGE,
+    GSB_GENERAL_FINANCIAL_PAGE, 
     GSB_CATEGORIES_PAGE,
     GSB_BUDGETARY_LINES_PAGE,
     GSB_REPORTS_PAGE,
diff --git a/src/gsb_assistant.c b/src/gsb_assistant.c
index 322fe4f..b1c7fa4 100644
--- a/src/gsb_assistant.c
+++ b/src/gsb_assistant.c
@@ -107,7 +107,7 @@ GtkWidget * gsb_assistant_new ( const gchar * title, const gchar * explanation,
     gtk_box_pack_start ( GTK_BOX(hbox), label, TRUE, TRUE, 0 );
 
     if (!image_filename)
-	image_filename = "grisbi.png";
+        image_filename = "grisbi-logo.png";
 
     tmpstr = g_build_filename ( PIXMAPS_DIR, image_filename, NULL);
     image = gtk_image_new_from_file ( tmpstr );
diff --git a/src/gsb_assistant_file.c b/src/gsb_assistant_file.c
index a21aad4..ff25806 100644
--- a/src/gsb_assistant_file.c
+++ b/src/gsb_assistant_file.c
@@ -147,7 +147,7 @@ GtkResponseType gsb_assistant_file_run ( gboolean first_opening,
     }
 
     assistant = gsb_assistant_new (text_1, text_2,
-				   "grisbi.png", NULL);
+				   "grisbi-logo.png", NULL);
 
     gsb_assistant_add_page ( assistant,
 			     gsb_assistant_file_page_2 (assistant),
diff --git a/src/gsb_assistant_first.c b/src/gsb_assistant_first.c
index 330f25d..bc5e323 100644
--- a/src/gsb_assistant_first.c
+++ b/src/gsb_assistant_first.c
@@ -84,7 +84,7 @@ GtkResponseType gsb_assistant_first_run ( void )
 				      "You can change any option later in the configuration window, "
 				      "where many other options are available.\n\n"
 				      "Thanks for using Grisbi, enjoy!" ),
-				    "grisbi.png",
+				    "grisbi-logo.png",
 				    NULL );
     gsb_assistant_add_page ( assistant,
 			     gsb_assistant_first_page_2 (assistant),
@@ -149,7 +149,7 @@ GtkResponseType gsb_assistant_first_come_to_0_6 ( void )
 				      "If you want to make backups of your Grisbi file in case you want to revert "
 				      "to old version of Grisbi, we would advise you to do that right now.\n\n"
 				      "You can find out other improvements on http://www.grisbi.org/."),
-				    "grisbi.png",
+				    "grisbi-logo.png",
 				    NULL );
     gsb_assistant_add_page ( assistant,
 			     gsb_assistant_first_page_2 (assistant),
diff --git a/src/gsb_data_account.c b/src/gsb_data_account.c
index 60409cb..2ea80c0 100644
--- a/src/gsb_data_account.c
+++ b/src/gsb_data_account.c
@@ -62,19 +62,22 @@ typedef struct
     kind_account account_kind;
     gchar 	*account_name;
     gint 	currency;
-    gchar   *name_icon;                         /* path for not standard icon ajout pbiava 31/12/2008 */
     gint 	closed_account;                     /**< if 1 => closed */
     gchar 	*comment;
     gchar 	*holder_name;
     gchar 	*holder_address;
 
+    /** @name account_icon */
+    gchar   *name_icon;                 /* path for not standard icon */
+    GdkPixbuf *pixbuf;                  /* pixbuf for the account */
+
     /** @name method of payment */
     gint 	default_debit;
     gint 	default_credit;
 
     /** @name showed list stuff */
-    gint 	show_r;                      /**< 1 : reconciled transactions are showed */
-    gint 	nb_rows_by_transaction;      /**< 1, 2, 3, 4  */
+    gint 	show_r;                     /**< 1 : reconciled transactions are showed */
+    gint 	nb_rows_by_transaction;     /**< 1, 2, 3, 4  */
     gint    show_l;                     /** 1 archived lines are showed */
 
     /** @name remaining of the balances */
@@ -134,6 +137,7 @@ typedef struct
 /*START_STATIC*/
 static void _gsb_data_account_free ( struct_account* account );
 static void gsb_data_account_delete_all_accounts (void);
+static gchar *gsb_data_account_get_account_standard_pixbuf_filename ( kind_account account_kind );
 static struct_account *gsb_data_account_get_structure ( gint no );
 static gint gsb_data_account_max_number ( void );
 static gboolean gsb_data_account_set_default_sort_values ( gint account_number );
@@ -186,7 +190,9 @@ void gsb_data_account_delete_all_accounts (void)
  * */
 gboolean gsb_data_account_init_variables ( void )
 {
-    gsb_data_account_delete_all_accounts();
+    gsb_data_account_delete_all_accounts ();
+    gsb_select_icon_init_account_variables ();
+
     return FALSE;
 }
 
@@ -312,9 +318,11 @@ static void _gsb_data_account_free ( struct_account* account )
         g_free ( account -> form_organization );
     if ( account -> bet_start_date )
         g_date_free ( account -> bet_start_date );
+    if ( account -> pixbuf )
+        g_object_unref ( account -> pixbuf );
     g_free ( account );
     if ( account_buffer == account )
-	account_buffer = NULL;
+        account_buffer = NULL;
 }
 
 
@@ -2509,8 +2517,8 @@ gchar *gsb_data_account_get_name_icon (gint account_number)
 
     account = gsb_data_account_get_structure ( account_number );
 
-    if (!account )
-	return NULL;
+    if ( !account )
+        return NULL;
 
     return account -> name_icon;
 }
@@ -2532,8 +2540,8 @@ gboolean gsb_data_account_set_name_icon ( gint account_number,
 
     account = gsb_data_account_get_structure ( account_number );
 
-    if (!account )
-    return FALSE;
+    if ( !account )
+        return FALSE;
 
     if ( account -> name_icon )
         g_free ( account -> name_icon );
@@ -2551,6 +2559,7 @@ gboolean gsb_data_account_set_name_icon ( gint account_number,
     return TRUE;
 }
 
+
 /**
  * get the image icon of the account
  * 
@@ -2578,33 +2587,45 @@ GtkWidget *gsb_data_account_get_account_icon_image ( gint account_number )
  * */
 GdkPixbuf *gsb_data_account_get_account_icon_pixbuf ( gint account_number )
 {
-    GdkPixbuf * pixbuf = NULL;
-    gchar * account_icon;
-    GError *error = NULL;
+    struct_account *account;
 
-    account_icon = gsb_data_account_get_name_icon ( account_number );
-    if ( account_icon && strlen ( account_icon ) > 0 )
-    {
-        pixbuf = gdk_pixbuf_new_from_file_at_size ( account_icon , 32, 32, &error );
-        g_object_set_data ( G_OBJECT ( pixbuf ), "name_icon", account_icon );
-    }
+    account = gsb_data_account_get_structure ( account_number );
+
+    if ( !account )
+        return NULL;
 
-    if ( ! pixbuf )
+    if ( account -> pixbuf )
+        return account -> pixbuf;
+    else
     {
-        if ( account_icon && strlen ( account_icon ) > 0 )
-        {
-            gchar* tmpstr = g_strconcat( "Erreur de pixbuf : " , 
-                 error -> message, " image ",
-                 account_icon, NULL );
-            devel_debug (tmpstr);
-            dialogue_error ( tmpstr );
-            g_free ( tmpstr );
-        }        
-        pixbuf = gsb_data_account_get_account_standard_pixbuf ( 
-                    gsb_data_account_get_kind ( account_number ) );
+        GdkPixbuf *pixbuf = NULL;
+
+        pixbuf = gsb_data_account_get_account_standard_pixbuf ( account -> account_kind );
+
+        return pixbuf;
     }
+}
 
-    return pixbuf;
+
+gboolean gsb_data_account_set_account_icon_pixbuf ( gint account_number,
+                        GdkPixbuf *pixbuf )
+{
+    struct_account *account;
+
+    account = gsb_data_account_get_structure ( account_number );
+
+    if ( !account )
+        return FALSE;
+
+    if ( account -> pixbuf )
+        g_object_unref ( account -> pixbuf );
+
+    if ( pixbuf )
+        account -> pixbuf = g_object_ref ( pixbuf );
+    else
+        account -> pixbuf = NULL;
+
+    return TRUE;
 }
 
 
@@ -2619,9 +2640,37 @@ GdkPixbuf *gsb_data_account_get_account_icon_pixbuf ( gint account_number )
 GdkPixbuf *gsb_data_account_get_account_standard_pixbuf ( kind_account account_kind )
 {
     GdkPixbuf * pixbuf = NULL;
-    gchar * account_icon;
+    gchar *filename;
     GError *error = NULL;
 
+    filename = gsb_data_account_get_account_standard_pixbuf_filename ( account_kind );
+
+    pixbuf = gdk_pixbuf_new_from_file ( filename, &error );
+    if ( pixbuf )
+        g_object_set_data ( G_OBJECT ( pixbuf ), "name_icon", filename );
+    else
+        devel_debug ( error -> message );
+
+    if ( filename )
+        g_free ( filename );
+
+    return pixbuf;
+}
+
+
+/**
+ * get the filename of the default pixbuf icon for the kind_account
+ * 
+ * \param kind_account
+ * 
+ * \return filename 
+ * */
+
+gchar *gsb_data_account_get_account_standard_pixbuf_filename ( kind_account account_kind )
+{
+    gchar *account_icon;
+    gchar *filename;
+
     switch ( account_kind )
     {
     case GSB_TYPE_BANK:
@@ -2640,16 +2689,10 @@ GdkPixbuf *gsb_data_account_get_account_standard_pixbuf ( kind_account account_k
         account_icon = "ac_bank.png";
         break;
     }
-    pixbuf = gdk_pixbuf_new_from_file ( g_build_filename (PIXMAPS_DIR,
-                           account_icon, NULL), &error );
-    if ( pixbuf )
-        g_object_set_data ( G_OBJECT ( pixbuf ), "name_icon",  
-                               g_build_filename (PIXMAPS_DIR,
-                               account_icon, NULL) );
-    else
-        devel_debug ( error -> message );
 
-    return pixbuf;
+    filename = g_build_filename ( PIXMAPS_DIR, account_icon, NULL );
+
+    return filename;
 }
 
 
@@ -2661,29 +2704,47 @@ GdkPixbuf *gsb_data_account_get_account_standard_pixbuf ( kind_account account_k
  * */
 void gsb_data_account_change_account_icon ( GtkWidget *button, gpointer data )
 {
-    GdkPixbuf * pixbuf;
+    GdkPixbuf *pixbuf;
     GtkWidget *image;
-    gchar * name_icon;
-    gchar * new_icon;
+    gchar *name_icon;
+    gchar *new_icon;
     gint current_account;
 
     devel_debug ( NULL );
 
-    image = gtk_button_get_image ( GTK_BUTTON ( button ) );
-    pixbuf = gtk_image_get_pixbuf ( GTK_IMAGE ( image ) );
-    if ( pixbuf )
-        name_icon = g_object_get_data ( G_OBJECT ( pixbuf ), "name_icon" );
-    else
-        name_icon = g_build_filename (PIXMAPS_DIR, "ac_bank.png", NULL);
+    current_account = gsb_gui_navigation_get_current_account ();
+
+    name_icon = gsb_data_account_get_name_icon ( current_account );
+    if ( name_icon == NULL || g_file_test ( name_icon, G_FILE_TEST_EXISTS ) == FALSE )
+        name_icon = gsb_data_account_get_account_standard_pixbuf_filename (
+                        gsb_data_account_get_kind ( current_account ) );
 
     new_icon = gsb_select_icon_create_window ( name_icon );
     if 
( new_icon )
     {
-        current_account = gsb_gui_navigation_get_current_account ();
-        gsb_data_account_set_name_icon ( current_account, new_icon );
+        if ( strcmp ( new_icon, name_icon ) == 0 )
+            return;
+        else if ( strcmp ( new_icon, gsb_data_account_get_account_standard_pixbuf_filename (
+         gsb_data_account_get_kind ( current_account ) ) ) == 0 )
+        {
+            printf ("new_icon est une icone standard\n");
+            gsb_data_account_set_name_icon ( current_account, NULL );
+            gsb_data_account_set_account_icon_pixbuf ( current_account, NULL );
+            gsb_select_icon_remove_account_pixbuf ( current_account );
+        }
+        else
+        {
+            gsb_data_account_set_name_icon ( current_account, new_icon );
+            pixbuf = gsb_select_icon_change_account_pixbuf ( current_account, new_icon );
+            gsb_data_account_set_account_icon_pixbuf ( current_account, pixbuf );
+        }
+
         image = gsb_data_account_get_account_icon_image ( current_account );
         gtk_button_set_image ( GTK_BUTTON ( button ), image );
         gsb_gui_navigation_update_account ( current_account );
+
+        if ( etat.modification_fichier == 0 )
+            modification_fichier ( TRUE );
     }
 }
 
@@ -3203,9 +3264,11 @@ gint gsb_data_account_get_bet_use_budget ( gint account_number )
     {
         case GSB_TYPE_BANK:
         case GSB_TYPE_CASH:
-        case GSB_TYPE_LIABILITIES:
             return account -> bet_use_budget;
             break;
+        case GSB_TYPE_LIABILITIES:
+            return -1;
+            break;
         case GSB_TYPE_ASSET:
             return -1;
             break;
diff --git a/src/gsb_data_account.h b/src/gsb_data_account.h
index 53ca84c..4efb0e5 100644
--- a/src/gsb_data_account.h
+++ b/src/gsb_data_account.h
@@ -92,6 +92,8 @@ gboolean gsb_data_account_move_account ( gint account_number,
                         gint dest_account_number );
 gint gsb_data_account_new ( kind_account account_kind );
 gboolean gsb_data_account_reorder ( GSList *new_order );
+gboolean gsb_data_account_set_account_icon_pixbuf ( gint account_number,
+                        GdkPixbuf * pixbuf );
 gint gsb_data_account_set_account_number ( gint account_number,
 					   gint new_no );
 gboolean gsb_data_account_set_balances_are_dirty ( gint account_number );
diff --git a/src/gsb_file_load.c b/src/gsb_file_load.c
index a4c87b5..58a9cba 100644
--- a/src/gsb_file_load.c
+++ b/src/gsb_file_load.c
@@ -82,6 +82,8 @@
 /*END_INCLUDE*/
 
 /*START_STATIC*/
+static void gsb_file_load_account_icon_part ( const gchar **attribute_names,
+                        const gchar **attribute_values );
 static void gsb_file_load_account_part ( const gchar **attribute_names,
                         const gchar **attribute_values );
 static void gsb_file_load_account_part_before_0_6 ( GMarkupParseContext *context,
@@ -679,20 +681,21 @@ void gsb_file_load_start_element ( GMarkupParseContext *context,
                         attribute_values);
     return;
     }
-    if ( !strcmp ( element_name,
-                        "Logo" ))
+    if ( !strcmp ( element_name, "Logo" ) )
     {
         if ( etat.utilise_logo )
-            gsb_file_load_logo_accueil ( attribute_names,
-                        attribute_values );
-    return;
+            gsb_file_load_logo_accueil ( attribute_names, attribute_values );
+        return;
+    }
+    if ( !strcmp ( element_name, "Account_icon" ) )
+    {
+        gsb_file_load_account_icon_part ( attribute_names, attribute_values );
+        return;
     }
     /* the first time we come here, we check if it's a grisbi file */
 }
 
 
-
-
 void gsb_file_load_error ( GMarkupParseContext *context,
                         GError *error,
                         gpointer user_data )
@@ -856,21 +859,35 @@ void gsb_file_load_general_part ( const gchar **attribute_names,
         etat.utilise_logo = utils_str_atoi ( attribute_values[i]);
     }
 
-    else if ( !strcmp ( attribute_names[i],
-                        "Path_logo" ))
+    else if ( !strcmp ( attribute_names[i], "Is_pixmaps_dir" ) )
     {
-        GdkPixbuf *pixbuf;
-        gchar *chemin_logo;
+        etat.is_pixmaps_dir = utils_str_atoi ( attribute_values[i] );
+    }
 
-        chemin_logo = my_strdup (attribute_values[i]);
-        pixbuf = gdk_pixbuf_new_from_file ( chemin_logo, NULL );
+    else if ( !strcmp ( attribute_names[i], "Name_logo" ) )
+    {
+        GdkPixbuf *pixbuf = NULL;
+
+        etat.name_logo = my_strdup ( attribute_values[i] );
+        if ( etat.is_pixmaps_dir )
+        {
+            gchar *chemin_logo = NULL;
+
+            if ( etat.name_logo )
+                chemin_logo = g_build_filename  ( PIXMAPS_DIR, etat.name_logo, NULL );
+            else
+                chemin_logo = g_build_filename  ( PIXMAPS_DIR, "grisbi-logo.png", NULL );
+            if ( chemin_logo )
+                pixbuf = gdk_pixbuf_new_from_file ( chemin_logo, NULL );
+            if ( chemin_logo && strlen ( chemin_logo ) > 0 )
+                g_free ( chemin_logo );
+
+        }
         if ( pixbuf )
         {
             gtk_window_set_default_icon ( pixbuf );
             gsb_select_icon_set_logo_pixbuf ( pixbuf );
         }
-        if ( chemin_logo && strlen (chemin_logo) > 0 )
-            g_free ( chemin_logo );
     }
 
     else if ( !strcmp ( attribute_names[i],
@@ -916,14 +933,6 @@ void gsb_file_load_general_part ( const gchar **attribute_names,
     }
 
     else if ( !strcmp ( attribute_names[i],
-                        "Remind_form_per_account" ))
-    {
-        //~ etat.formulaire_distinct_par_compte = utils_str_atoi( attribute_values[i]);
-        etat.formulaire_distinct_par_compte = 0;
-
-    }
-
-    else if ( !strcmp ( attribute_names[i],
                         "Transaction_column_width" ))
     {
         gchar **pointeur_char;
@@ -975,12 +984,6 @@ void gsb_file_load_general_part ( const gchar **attribute_names,
         etat.combofix_case_sensitive = utils_str_atoi( attribute_values[i]);
     }
 
-    //~ else if ( !strcmp ( attribute_names[i],
-                        //~ "Combofix_enter_select_completion" ))
-    //~ {
-        //~ etat.combofix_enter_select_completion = utils_str_atoi( attribute_values[i]);
-    //~ }
-
     else if ( !strcmp ( attribute_names[i],
                         "Combofix_force_payee" ))
     {
@@ -1506,11 +1509,10 @@ void gsb_file_load_account_part ( const gchar **attribute_names,
         continue;
     }
 
-    if ( !strcmp ( attribute_names[i],
-                        "Path_icon" ))
+    if ( !strcmp ( attribute_names[i], "Path_icon" ) )
     {
         gsb_data_account_set_name_icon ( account_number,
-                        attribute_values[i]);
+                        attribute_values[i] );
         i++;
         continue;
     }
@@ -5260,13 +5262,14 @@ void gsb_file_load_logo_accueil ( const gchar **attribute_names,
             i++;
             continue;
         }
-        if ( !strcmp ( attribute_names[i],
-                   "Image" ))
+        if ( !strcmp ( attribute_names[i], "Image" ) )
         {
             GdkPixbuf *pixbuf = NULL;
 
             pixbuf = gsb_select_icon_create_pixbuf_from_chaine_base64 ( 
                                 (gchar *) attribute_values[i] );
+            etat.is_pixmaps_dir = FALSE;
+
             gtk_window_set_default_icon ( pixbuf );
             gsb_select_icon_set_logo_pixbuf ( pixbuf );
             i++;
@@ -5275,6 +5278,57 @@ void gsb_file_load_logo_accueil ( const gchar **attribute_names,
     }
     while ( attribute_names[i] );
 }
+
+
+/**
+ * charge les icones pour les comptes
+ *
+ * \param attribute_names
+ * \param attribute_values
+ *
+ * */
+void gsb_file_load_account_icon_part ( const gchar **attribute_names,
+                        const gchar **attribute_values )
+{
+    gint i=0;
+    gint account_number = -1;
+    GdkPixbuf *pixbuf = NULL;
+
+    do
+    {
+        /*     we test at the beginning if the attribute_value is NULL, if yes, */
+        /*        go to the next */
+
+        if ( !strcmp (attribute_values[i], "(null)"))
+        {
+            i++;
+            continue;
+        }
+        if ( !strcmp ( attribute_names[i], "Account_number" ) )
+        {
+            account_number = utils_str_atoi ( attribute_values[i] );
+            i++;
+            continue;
+        }
+        
+        if ( !strcmp ( attribute_names[i], "Image" ) )
+        {
+            pixbuf = gsb_select_icon_create_pixbuf_from_chaine_base64 ( 
+                                (gchar *) attribute_values[i] );
+            i++;
+            continue;
+        }
+    }
+    while ( attribute_names[i] );
+
+    if ( account_number != -1 && pixbuf )
+    {
+        gsb_select_icon_new_account_icon ( account_number, pixbuf );
+        gsb_data_account_set_account_icon_pixbuf ( account_number, pixbuf );
+    }
+}
+
+
 void gsb_file_load_start_element_before_0_6 ( GMarkupParseContext *context,
                         const gchar *element_name,
                         const gchar **attribute_names,
@@ -6635,14 +6689,6 @@ void gsb_file_load_general_part_before_0_6 ( GMarkupParseContext *context,
     }
 
     if ( !strcmp ( element_name,
-           "Formulaire_distinct_par_compte" ))
-    {
-    //~ etat.formulaire_distinct_par_compte = utils_str_atoi( text);
-    etat.formulaire_distinct_par_compte = 0;
-    return;
-    }
-
-    if ( !strcmp ( element_name,
            "Rapport_largeur_col_echeancier" ))
     {
     /* here do nothing because it was a ration before, and now it's fixed width,
diff --git a/src/gsb_file_save.c b/src/gsb_file_save.c
index b5895fd..6d1a71c 100644
--- a/src/gsb_file_save.c
+++ b/src/gsb_file_save.c
@@ -75,6 +75,9 @@
 /*END_INCLUDE*/
 
 /*START_STATIC*/
+static gulong gsb_file_save_account_icon_part ( gulong iterator,
+                        gulong *length_calculated,
+                        gchar **file_content );
 static gulong gsb_file_save_account_part ( gulong iterator,
                         gulong *length_calculated,
                         gchar **file_content );
@@ -205,6 +208,7 @@ gboolean gsb_file_save_save_file ( const gchar *filename,
     gint import_rule_part;
     gint partial_balance_part;
     gint logo_part;
+    gint account_icon_part;
     gint bet_part;
 
     struct stat buf;
@@ -252,6 +256,7 @@ gboolean gsb_file_save_save_file ( const gchar *filename,
     import_rule_part = 50;
     partial_balance_part = 50;
     logo_part = 65536;
+    account_icon_part = 4048;
     bet_part = 250;
     
     length_calculated = general_part
@@ -270,6 +275,7 @@ gboolean gsb_file_save_save_file ( const gchar *filename,
 	+ import_rule_part * g_slist_length ( gsb_data_import_rule_get_list ())
     + partial_balance_part * g_slist_length ( gsb_data_partial_balance_get_list ())
     + logo_part
+    + account_icon_part * g_slist_length ( gsb_select_icon_list_accounts_icon () )
     + bet_part;
 
     iterator = 0;
@@ -370,8 +376,13 @@ gboolean gsb_file_save_save_file ( const gchar *filename,
 					   &file_content,
 					   FALSE );
 
-    if ( etat.utilise_logo )
-    iterator = gsb_file_save_logo_part ( iterator,
+    if ( etat.utilise_logo && etat.is_pixmaps_dir == FALSE )
+        iterator = gsb_file_save_logo_part ( iterator,
+					   &length_calculated,
+					   &file_content );
+
+    if ( g_slist_length ( gsb_select_icon_list_accounts_icon () ) > 0 )
+        iterator = gsb_file_save_account_icon_part ( iterator,
 					   &length_calculated,
 					   &file_content );
 
@@ -672,6 +683,8 @@ gulong gsb_file_save_general_part ( gulong iterator,
                        "\t\tImport_categorie_for_payee=\"%d\"\n"
 					   "\t\tImport_fyear_by_value_date=\"%d\"\n"
 					   "\t\tUse_logo=\"%d\"\n"
+                       "\t\tIs_pixmaps_dir=\"%d\"\n"
+                       "\t\tName_logo=\"%s\"\n"
 					   "\t\tRemind_display_per_account=\"%d\"\n"
 					   "\t\tTransactions_view=\"%s\"\n"
 					   "\t\tOne_line_showed=\"%d\"\n"
@@ -683,7 +696,6 @@ gulong gsb_file_save_general_part ( gulong iterator,
 					   "\t\tCombofix_mixed_sort=\"%d\"\n"
 					   "\t\tCombofix_max_item=\"%d\"\n"
 					   "\t\tCombofix_case_sensitive=\"%d\"\n"
-					   //~ "\t\tCombofix_enter_select_completion=\"%d\"\n"
 					   "\t\tCombofix_force_payee=\"%d\"\n"
 					   "\t\tCombofix_force_category=\"%d\"\n"
 					   "\t\tAutomatic_amount_separator=\"%d\"\n"
@@ -710,19 +722,19 @@ gulong gsb_file_save_general_part ( gulong iterator,
 	etat.get_categorie_for_payee,
 	etat.get_fyear_by_value_date,
 	etat.utilise_logo,
+    etat.is_pixmaps_dir,
+    my_safe_null_str( etat.name_logo ),
 	etat.retient_affichage_par_compte,
 	my_safe_null_str(transactions_view),
 	display_one_line,
 	display_two_lines,
 	display_three_lines,
-	//~ etat.formulaire_distinct_par_compte,
     0,
 	my_safe_null_str(transaction_column_width_write),
 	my_safe_null_str(scheduler_column_width_write),
 	etat.combofix_mixed_sort,
 	etat.combofix_max_item,
 	etat.combofix_case_sensitive,
-	//~ etat.combofix_enter_select_completion,
 	etat.combofix_force_payee,
 	etat.combofix_force_category,
 	etat.automatic_separator,
@@ -2648,22 +2660,72 @@ gulong gsb_file_save_logo_part ( gulong iterator,
     gchar * str64;
 
     pixbuf = gsb_select_icon_get_logo_pixbuf ( );
-    if ( ! pixbuf )
-        pixbuf = gsb_select_icon_get_default_logo_pixbuf ( );
+    if ( !pixbuf )
+        return 0;
+
+    str64 = gsb_select_icon_create_chaine_base64_from_pixbuf ( pixbuf );
+
+    new_string = g_markup_printf_escaped ( "\t<Logo\n"
+                        "\t\tImage=\"%s\" />\n", 
+                        my_safe_null_str(str64) );
+
+    iterator = gsb_file_save_append_part ( iterator,
+                        length_calculated,
+                        file_content,
+                        new_string );
+
+    return iterator;
+}
+
+
+/**
+ * save the accounts_icon
+ *
+ * \param iterator the current iterator
+ * \param length_calculated a pointer to the variable lengh_calculated
+ * \param file_content a pointer to the variable file_content
+ *
+ * \return the new iterator
+ * */
+gulong gsb_file_save_account_icon_part ( gulong iterator,
+                        gulong *length_calculated,
+                        gchar **file_content )
+{
+    GSList *list_tmp;
+
+    list_tmp = gsb_select_icon_list_accounts_icon ();
 
-    if ( pixbuf )
+    while ( list_tmp )
     {
+        GdkPixbuf *pixbuf = NULL;
+        gchar *new_string = NULL;
+        gchar *str64;
+        gint account_number;
+
+        account_number = gsb_select_icon_get_no_account_by_ptr ( list_tmp -> data );
+
+        if ( account_number == -1 )
+        {
+            list_tmp = list_tmp -> next;
+            continue;
+        }
+        
+        pixbuf = gsb_select_icon_get_account_pixbuf_by_ptr ( list_tmp -> data );
         str64 = gsb_select_icon_create_chaine_base64_from_pixbuf ( pixbuf );
 
-        new_string = g_markup_printf_escaped ( "\t<Logo\n"
-                            "\t\tImage=\"%s\" />\n", 
+        new_string = g_markup_printf_escaped ( "\t<Account_icon\n"
+                            "\t\tAccount_number=\"%d\"\n"
+                            "\t\tImage=\"%s\" />\n",
+                            account_number,
                             my_safe_null_str(str64) );
-    }    
 
-    iterator = gsb_file_save_append_part ( iterator,
-					       length_calculated,
-					       file_content,
-					       new_string );
+        iterator = gsb_file_save_append_part ( iterator,
+                        length_calculated,
+                        file_content,
+                        new_string );
+
+        list_tmp = list_tmp -> next;
+    }
 
     return iterator;
 }
diff --git a/src/gsb_form_config.c b/src/gsb_form_config.c
index 885c4e0..5b66c99 100644
--- a/src/gsb_form_config.c
+++ b/src/gsb_form_config.c
@@ -154,32 +154,8 @@ void gsb_form_config_make_configuration_box ( GtkWidget *vbox_parent )
     hbox = gtk_hbox_new ( FALSE, 5 );
     gtk_box_pack_start ( GTK_BOX (paddingbox), hbox, FALSE, FALSE, 0 );
 
-    /* the button to choose the configuration for all/one account */
-    //~ button = gsb_automem_checkbutton_new ( _("Each account has his own form"),
-                        //~ &etat.formulaire_distinct_par_compte,
-                        //~ G_CALLBACK ( gsb_form_config_switch_general_to_several_form ),
-                        //~ NULL);
-    //~ gtk_box_pack_start ( GTK_BOX (hbox ), button, FALSE, FALSE, 0 );
-
     /* the accounts option_menu */
     accounts_combobox = gsb_account_create_combo_list ((GtkSignalFunc) gsb_form_config_change_account_choice, NULL, FALSE );
-    //~ gtk_widget_set_sensitive ( accounts_combobox, etat.formulaire_distinct_par_compte );
-    //~ gtk_box_pack_start ( GTK_BOX (hbox ), accounts_combobox, FALSE, FALSE, 0 );
-
-    /* add the update-form button */
-    //~ hbox = gtk_hbox_new ( FALSE, 5 );
-    //~ gtk_box_pack_start ( GTK_BOX (paddingbox), hbox, FALSE, FALSE, 0 );
-
-    //~ update_button = gtk_button_new_with_label (_("Update"));
-    //~ gtk_widget_set_sensitive ( update_button, etat.formulaire_distinct_par_compte );
-    //~ g_signal_connect ( G_OBJECT (update_button),
-                        //~ "clicked",
-                        //~ G_CALLBACK (gsb_form_config_update_accounts),
-                        //~ accounts_combobox );
-    //~ gtk_box_pack_start ( GTK_BOX (hbox), update_button, FALSE, FALSE, 0 );
-
-    //~ label = gtk_label_new ( _(" : Duplicate the selected form for all accounts") );
-    //~ gtk_box_pack_start ( GTK_BOX (hbox), label, FALSE, FALSE, 0 );
 
     /*create the scolled window for tree_view */
     sw = gtk_scrolled_window_new ( NULL, NULL);
@@ -548,39 +524,6 @@ gboolean gsb_form_config_update_form_config ( gint account_number )
 
 
 /**
- * called when click on the button "each account has his form",
- * unsensitive/sensitive the accounts option_menu,
- * if unsensitive, set the menu to the first account
- *
- * \param
- *
- * \return FALSE*/
-//~ gboolean gsb_form_config_switch_general_to_several_form ( void )
-//~ {
-    //~ if ( etat.formulaire_distinct_par_compte )
-    //~ {
-	//~ gtk_widget_set_sensitive ( accounts_combobox,
-				   //~ TRUE );
-	//~ gtk_widget_set_sensitive ( update_button,
-				   //~ TRUE );
-    //~ }
-    //~ else
-    //~ {
-	//~ gtk_combo_box_set_active ( GTK_COMBO_BOX (accounts_combobox),
-				   //~ 0 );
-	//~ /* just in case we were already on the first choice */
-	//~ gsb_form_config_change_account_choice (accounts_combobox, NULL);
-
-	//~ gtk_widget_set_sensitive ( accounts_combobox,
-				   //~ FALSE );
-	//~ gtk_widget_set_sensitive ( update_button,
-				   //~ FALSE );
-    //~ }
-    //~ return FALSE;
-//~ }
-
-						       
-/**
  * called if we change the account in the option menu of the accounts
  *
  * \param combobox the combobox of the list of accounts
@@ -908,9 +851,6 @@ gboolean gsb_form_config_change_column_size ( GtkWidget *tree_view,
 
     for (i=0 ; i<gsb_data_account_get_accounts_amount () ; i++)
     {
-	if (!etat.formulaire_distinct_par_compte
-	    ||
-	    i == account_number)
 	    for ( column=0 ; column < gsb_data_form_get_nb_columns (i) ; column++ )
 	    {
 		gint size_column;
@@ -927,13 +867,8 @@ gboolean gsb_form_config_change_column_size ( GtkWidget *tree_view,
         modification_fichier ( TRUE );
 
     /* update the form if needed */
-    if ( !etat.formulaire_distinct_par_compte
-	 ||
-	 gsb_account_get_combo_account_number ( accounts_combobox ) == gsb_gui_navigation_get_current_account ())
-    {
 	saved_allocation_size = 0;
 	gsb_form_allocate_size ( NULL, &(form_transaction_part -> allocation), NULL );
-    }
 
     return FALSE;
 }
diff --git a/src/gsb_select_icon.c b/src/gsb_select_icon.c
index 7112f16..53e1e26 100644
--- a/src/gsb_select_icon.c
+++ b/src/gsb_select_icon.c
@@ -61,6 +61,17 @@ static GtkListStore *store = NULL;
 static gchar * path_icon;
 static gchar * new_icon;
 
+/* variables for account_icon */
+static GSList *list_accounts_icon = NULL;
+
+typedef struct
+{
+    gint account_number;
+    GdkPixbuf *pixbuf;
+}  struct_account_icon;
+
+static struct_account_icon *icon_buffer;
+
 
 enum { 
         PIXBUF_COLUMN,
@@ -70,13 +81,61 @@ enum {
 
 
 /**
+ *
+ *
+ *
+ *
+ * */
+gboolean gsb_select_icon_init_account_variables ( void )
+{
+    if ( list_accounts_icon )
+    {
+        GSList* tmp_list = list_accounts_icon;
+
+        while ( tmp_list )
+        {
+            struct_account_icon *icon;
+
+            icon = tmp_list -> data;
+            tmp_list = tmp_list -> next;
+            if ( icon -> pixbuf )
+                g_object_unref ( icon -> pixbuf );
+
+            g_free ( icon );
+        }
+        g_slist_free ( list_accounts_icon );
+    }
+    list_accounts_icon = NULL;
+    icon_buffer = NULL;
+
+    return FALSE;
+}
+
+
+/**
+ *
+ *
+ *
+ *
+ * */
+gboolean gsb_select_icon_init_logo_variables ( void )
+{
+    if ( pixbuf_logo )
+                g_object_unref ( pixbuf_logo );
+    pixbuf_logo = NULL;
+
+    return FALSE;
+}
+
+
+/**
  * crée la boite de dialogue initiale avec le  GtkIconView
  *
  * \param nom de l'icône
  *
  * \return le nouveau nom de l'icône ou NULL
  * */
-gchar * gsb_select_icon_create_window ( gchar * name_icon )
+gchar * gsb_select_icon_create_window ( gchar *name_icon )
 {
     GtkWidget *content_area;
     GtkWidget *hbox;
@@ -86,6 +145,12 @@ gchar * gsb_select_icon_create_window ( gchar * name_icon )
 	gint result;
 
     devel_debug ( name_icon );
+
+    if ( new_icon && strlen ( new_icon ) > 0 )
+        g_free ( new_icon );
+
+    new_icon = g_strdup ( name_icon );
+
     path_icon = g_path_get_dirname ( name_icon );
     dialog = gtk_dialog_new_with_buttons ( _("Browse icons"),
                             GTK_WINDOW ( window ),
@@ -127,19 +192,19 @@ gchar * gsb_select_icon_create_window ( gchar * name_icon )
 
     /* gestion des signaux */
     g_signal_connect ( G_OBJECT ( icon_view ), 
-                       "selection-changed", 
-                            G_CALLBACK( gsb_select_icon_selection_changed ), 
-                            NULL );
+                        "selection-changed", 
+                        G_CALLBACK( gsb_select_icon_selection_changed ), 
+                        NULL );
 
     g_signal_connect ( G_OBJECT ( chooser_button ), 
-                            "pressed", 
-                            G_CALLBACK(gsb_select_icon_create_file_chooser), 
-                            NULL );
+                        "pressed", 
+                        G_CALLBACK(gsb_select_icon_create_file_chooser), 
+                        NULL );
 
     g_signal_connect ( G_OBJECT( entry_text ), 
-                       "changed", 
-                            G_CALLBACK( gsb_select_icon_entry_text_changed ), 
-                            NULL );
+                        "changed", 
+                        G_CALLBACK( gsb_select_icon_entry_text_changed ), 
+                        NULL );
 
     gtk_widget_show_all ( dialog );
 
@@ -147,10 +212,10 @@ gchar * gsb_select_icon_create_window ( gchar * name_icon )
     switch (result)
     {
       case GTK_RESPONSE_ACCEPT:
-         devel_debug ( "réponse OK\n" );
+         devel_debug ( "réponse OK" );
          break;
       default:
-         devel_debug ( "réponse Non OK\n" );
+         devel_debug ( "réponse Non OK" );
          if ( new_icon && strlen ( new_icon ) > 0 )
             g_free ( new_icon );
          new_icon = NULL;
@@ -543,6 +608,7 @@ gchar * gsb_select_icon_create_chaine_base64_from_pixbuf ( GdkPixbuf *pixbuf )
  *
  * \param str_base64
  *
+ * return a new pixbuf
 * */
 GdkPixbuf *gsb_select_icon_create_pixbuf_from_chaine_base64 ( gchar *str_base64 )
 {
@@ -552,19 +618,31 @@ GdkPixbuf *gsb_select_icon_create_pixbuf_from_chaine_base64 ( gchar *str_base64
     GdkPixbuf *pixbuf = NULL;
 
     data = g_base64_decode ( str_base64, &longueur );
-    gdk_pixdata_deserialize( &pixdata, longueur, data, NULL );
-    pixbuf = gdk_pixbuf_from_pixdata( &pixdata, TRUE, NULL );
+    gdk_pixdata_deserialize ( &pixdata, longueur, data, NULL );
+    pixbuf = gdk_pixbuf_from_pixdata ( &pixdata, TRUE, NULL );
 
     return pixbuf;
 }
 
 
+/**
+ *
+ *
+ *
+ *
+ * */
 GdkPixbuf *gsb_select_icon_get_logo_pixbuf ( void )
 {
     return pixbuf_logo;
 }
 
 
+/**
+ * retourne le logo par défaut de grisbi
+ *
+ *
+ * return a new pixbuf
+ * */
 GdkPixbuf *gsb_select_icon_get_default_logo_pixbuf ( void )
 {
     GdkPixbuf *pixbuf = NULL;
@@ -586,6 +664,12 @@ GdkPixbuf *gsb_select_icon_get_default_logo_pixbuf ( void )
 }
 
 
+/**
+ *
+ *
+ * \param pixbuf
+ *
+ * */
 void gsb_select_icon_set_logo_pixbuf ( GdkPixbuf *pixbuf )
 {
     if ( pixbuf_logo != NULL )
@@ -601,6 +685,13 @@ void gsb_select_icon_set_logo_pixbuf ( GdkPixbuf *pixbuf )
 }
 
 
+/**
+ * redimmensionne le logo
+ *
+ * \param pixbuf à redimmensionner
+ *
+ * return a new pixbuf
+ * */
 GdkPixbuf *gsb_select_icon_resize_logo_pixbuf ( GdkPixbuf *pixbuf )
 {
     GdkPixbuf * tmp;
@@ -627,3 +718,282 @@ GdkPixbuf *gsb_select_icon_resize_logo_pixbuf ( GdkPixbuf *pixbuf )
 
     return tmp;
 }
+
+
+/**
+ * retourne la liste des icones pour les comptes
+ *
+ *
+ * return list_accounts_icon
+ * */
+GSList *gsb_select_icon_list_accounts_icon ( void )
+{
+    return list_accounts_icon;
+}
+
+
+/**
+ * find and return the number of the account which the struct account_icon is the param 
+ * 
+ * \param the struct of the account_icon
+ * 
+ * \return the number of account, -1 if pb
+ * */
+gint gsb_select_icon_get_no_account_by_ptr ( gpointer account_icon_ptr )
+{
+    struct_account_icon *icon;
+
+    if ( !account_icon_ptr )
+        return -1;
+
+    icon = account_icon_ptr;
+    icon_buffer = icon;
+
+    return  icon -> account_number;
+}
+
+
+/**
+ *
+ *
+ *
+ *
+ * */
+GdkPixbuf *gsb_select_icon_get_account_pixbuf ( gint account_number )
+{
+    GSList *list_tmp;
+
+     if ( icon_buffer
+	 &&
+	 icon_buffer -> account_number == account_number )
+        return icon_buffer -> pixbuf;
+
+    list_tmp = list_accounts_icon;
+
+    while ( list_tmp )
+    {
+        struct_account_icon *icon;
+
+        icon = list_tmp -> data;
+
+        if ( icon -> account_number == account_number )
+            return icon -> pixbuf;
+
+        list_tmp = list_tmp -> next;
+    }
+
+    return NULL;
+}
+
+
+/**
+ *
+ *
+ *
+ *
+ * */
+GdkPixbuf *gsb_select_icon_get_account_pixbuf_by_ptr ( gpointer account_icon_ptr )
+{
+    struct_account_icon *icon;
+
+    if ( !account_icon_ptr )
+        return NULL;
+
+    icon = account_icon_ptr;
+    icon_buffer = icon;
+
+    return  icon -> pixbuf;
+}
+
+
+/**
+ * ajoute une nouvelle icone pour le compte passé en paramètre
+ *
+ *
+ * return TRUE if OK else FALSE
+ * */
+gboolean gsb_select_icon_new_account_icon ( gint account_number,
+                        GdkPixbuf *pixbuf )
+{
+    struct_account_icon *icon;
+
+    icon = g_malloc0 ( sizeof ( struct_account_icon ) );
+    icon_buffer = icon;
+
+    if ( !icon )
+    {
+        dialogue_error_memory ();
+        return FALSE;
+    }
+
+    icon -> account_number = account_number;
+    icon -> pixbuf = pixbuf;
+
+    list_accounts_icon = g_slist_prepend ( list_accounts_icon, icon );
+
+    return TRUE;
+}
+
+/**
+ * ajoute une nouvelle icone pour le compte passé en paramètre
+ *
+ * /param la chaine codée de l'icone
+ * return TRUE if OK else FALSE
+ * */
+gboolean gsb_select_icon_new_account_icon_from_file ( gint account_number,
+                        const gchar *filename )
+{
+    struct_account_icon *icon;
+    GdkPixbuf *pixbuf;
+    GError *error = NULL;
+
+    if ( !filename || !strlen ( filename ) )
+        return FALSE;
+    else
+    {
+        if ( !g_file_test ( filename, G_FILE_TEST_EXISTS ) )
+            return FALSE;
+    }
+
+    icon = g_malloc0 ( sizeof ( struct_account_icon ) );
+    icon_buffer = icon;
+
+    if ( !icon )
+    {
+        dialogue_error_memory ();
+
+        return FALSE;
+    }
+
+    icon -> account_number = account_number;
+
+    pixbuf = gdk_pixbuf_new_from_file_at_size ( filename , 32, 32, &error );
+
+    if ( pixbuf )
+    {
+        icon -> pixbuf = pixbuf;
+        list_accounts_icon = g_slist_prepend ( list_accounts_icon, icon );
+
+        return TRUE;
+    }
+    else
+    {
+        gchar* tmp_str;
+
+        tmp_str = g_strconcat( "Erreur de pixbuf : ",
+                        error -> message, " image ",
+                        filename, NULL );
+        devel_debug ( tmp_str );
+        dialogue_error ( tmp_str );
+        g_free ( tmp_str );
+        g_free ( icon );
+
+        return FALSE;
+    }        
+}
+
+
+/**
+ *
+ *
+ *
+ *
+ * */
+GdkPixbuf *gsb_select_icon_change_account_pixbuf ( gint account_number,
+                        gchar *filename )
+{
+    GSList *list_tmp;
+    GdkPixbuf *pixbuf;
+    GError *error = NULL;
+
+    if ( icon_buffer
+	 &&
+	 icon_buffer -> account_number == account_number )
+    {
+        pixbuf = gdk_pixbuf_new_from_file_at_size ( filename , 32, 32, &error );
+        if ( pixbuf )
+        {
+            g_object_unref ( icon_buffer -> pixbuf );
+            icon_buffer -> pixbuf = pixbuf;
+
+            return icon_buffer -> pixbuf;
+        }
+        else
+            return NULL;
+    }
+
+    list_tmp = list_accounts_icon;
+
+    while ( list_tmp )
+    {
+        struct_account_icon *icon;
+
+        icon = list_tmp -> data;
+
+        if ( icon -> account_number == account_number )
+        {
+            pixbuf = gdk_pixbuf_new_from_file_at_size ( filename , 32, 32, &error );
+            if ( pixbuf )
+            {
+                g_object_unref ( icon -> pixbuf );
+                icon -> pixbuf = pixbuf;
+
+                return icon -> pixbuf;
+            }
+            else
+                return NULL;
+        }
+
+        list_tmp = list_tmp -> next;
+    }
+
+    if ( gsb_select_icon_new_account_icon_from_file ( account_number, filename ) )
+        return gsb_select_icon_get_account_pixbuf ( account_number );
+    else
+        return NULL;
+}
+
+
+/**
+ *
+ *
+ *
+ *
+ * */
+gboolean gsb_select_icon_remove_account_pixbuf ( gint account_number )
+{
+    GSList *list_tmp;
+    GdkPixbuf *pixbuf;
+    GError *error = NULL;
+
+    list_tmp = list_accounts_icon;
+
+    while ( list_tmp )
+    {
+        struct_account_icon *icon;
+
+        icon = list_tmp -> data;
+
+        if ( icon -> account_number == account_number )
+        {
+            
+            if ( icon -> pixbuf )
+            {
+                g_object_unref ( icon -> pixbuf );
+                list_tmp = g_slist_remove ( list_accounts_icon, icon );
+                g_free ( icon );
+                icon_buffer = NULL;
+
+                return TRUE;
+            }
+        }
+
+        list_tmp = list_tmp -> next;
+    }
+
+    return FALSE;
+}
+
+/* Local Variables: */
+/* c-basic-offset: 4 */
+/* End: */
diff --git a/src/gsb_select_icon.h b/src/gsb_select_icon.h
index 42dc10d..789ea3f 100644
--- a/src/gsb_select_icon.h
+++ b/src/gsb_select_icon.h
@@ -9,11 +9,24 @@
 #define LOGO_HEIGHT 100
 
 /* START_DECLARATION */
+GdkPixbuf *gsb_select_icon_change_account_pixbuf ( gint account_number,
+                        gchar *filename );
 gchar * gsb_select_icon_create_chaine_base64_from_pixbuf ( GdkPixbuf *pixbuf );
 GdkPixbuf *gsb_select_icon_create_pixbuf_from_chaine_base64 ( gchar *str_base64 );
-gchar * gsb_select_icon_create_window ( gchar * name_icon );
+gchar * gsb_select_icon_create_window ( gchar *name_icon );
+GdkPixbuf *gsb_select_icon_get_account_pixbuf ( gint account_number );
+GdkPixbuf *gsb_select_icon_get_account_pixbuf_by_ptr ( gpointer account_icon_ptr );
 GdkPixbuf *gsb_select_icon_get_default_logo_pixbuf ( void );
 GdkPixbuf *gsb_select_icon_get_logo_pixbuf ( void );
+gboolean gsb_select_icon_init_account_variables ( void );
+gint gsb_select_icon_get_no_account_by_ptr ( gpointer account_icon_ptr );
+GSList *gsb_select_icon_list_accounts_icon ( void );
+gboolean gsb_select_icon_init_logo_variables ( void );
+gboolean gsb_select_icon_new_account_icon ( gint account_number,
+                        GdkPixbuf *pixbuf );
+gboolean gsb_select_icon_new_account_icon_from_file ( gint account_number,
+                        const gchar *filename );
+gboolean gsb_select_icon_remove_account_pixbuf ( gint account_number );
 void gsb_select_icon_set_logo_pixbuf ( GdkPixbuf *pixbuf );
 /* END_DECLARATION */
 #endif
diff --git a/src/main.c b/src/main.c
index 7eac3e7..45c79f1 100644
--- a/src/main.c
+++ b/src/main.c
@@ -175,7 +175,7 @@ int main (int argc, char **argv)
 #endif
 
     /* create the icon of grisbi (set in the panel of gnome or other) */
-    string = g_build_filename ( PIXMAPS_DIR, "grisbi.png", NULL );
+    string = g_build_filename ( PIXMAPS_DIR, "grisbi-logo.png", NULL );
     if ( g_file_test ( string, G_FILE_TEST_EXISTS ) )
     gtk_window_set_default_icon_from_file ( string, NULL );
     g_free (string);
diff --git a/src/navigation.c b/src/navigation.c
index 604c136..d570322 100644
--- a/src/navigation.c
+++ b/src/navigation.c
@@ -37,6 +37,7 @@
 #include "gsb_form.h"
 #include "gsb_form_scheduler.h"
 #include "fenetre_principale.h"
+#include "bet_finance_ui.h"
 #include "menu.h"
 #include "etats_onglet.h"
 #include "accueil.h"
@@ -241,8 +242,7 @@ GtkWidget * create_navigation_pane ( void )
     gtk_tree_view_append_column ( GTK_TREE_VIEW ( navigation_tree_view ), 
 				  GTK_TREE_VIEW_COLUMN ( column ) );
     /* Account list */
-    tmpstr = g_build_filename ( PIXMAPS_DIR,
-				       "ac_home.png", NULL );
+    tmpstr = g_build_filename ( PIXMAPS_DIR, "ac_home.png", NULL );
     pixbuf = gdk_pixbuf_new_from_file ( tmpstr , NULL );
     g_free ( tmpstr );
     gtk_tree_store_append(GTK_TREE_STORE(navigation_model), &account_iter, NULL);
@@ -259,8 +259,7 @@ GtkWidget * create_navigation_pane ( void )
     create_account_list ( GTK_TREE_MODEL(navigation_model) );
 
     /* Scheduler */
-    tmpstr = g_build_filename( PIXMAPS_DIR,
-			       "scheduler.png", NULL );
+    tmpstr = g_build_filename( PIXMAPS_DIR, "scheduler.png", NULL );
     pixbuf = gdk_pixbuf_new_from_file ( tmpstr , NULL );
     g_free ( tmpstr );
     gtk_tree_store_append(GTK_TREE_STORE(navigation_model), &iter, NULL);
@@ -276,8 +275,7 @@ GtkWidget * create_navigation_pane ( void )
 		       -1 );
 
     /* Payees */
-    tmpstr =  g_build_filename( PIXMAPS_DIR,
-				"payees.png", NULL );
+    tmpstr =  g_build_filename( PIXMAPS_DIR, "payees.png", NULL );
     pixbuf = gdk_pixbuf_new_from_file ( tmpstr , NULL );
     g_free ( tmpstr );
     gtk_tree_store_append(GTK_TREE_STORE(navigation_model), &iter, NULL);
@@ -292,9 +290,24 @@ GtkWidget * create_navigation_pane ( void )
 		       NAVIGATION_SENSITIVE, 1,
 		       -1 );
 
+    /* Balance estimate */
+    tmpstr = g_build_filename( PIXMAPS_DIR, "ac_liability.png", NULL );
+    pixbuf = gdk_pixbuf_new_from_file ( tmpstr , NULL );
+    g_free ( tmpstr );
+    gtk_tree_store_append(GTK_TREE_STORE(navigation_model), &iter, NULL);
+    gtk_tree_store_set(GTK_TREE_STORE(navigation_model), &iter, 
+		       NAVIGATION_PIX, pixbuf,
+		       NAVIGATION_TEXT, _("Credits simulator"), 
+		       NAVIGATION_PIX_VISIBLE, TRUE, 
+		       NAVIGATION_FONT, 800,
+		       NAVIGATION_PAGE, GSB_GENERAL_FINANCIAL_PAGE,
+		       NAVIGATION_ACCOUNT, -1,
+		       NAVIGATION_REPORT, -1,
+		       NAVIGATION_SENSITIVE, 1,
+		       -1 );
+
     /* Categories */
-    tmpstr = g_build_filename( PIXMAPS_DIR,
-			       "categories.png", NULL );
+    tmpstr = g_build_filename( PIXMAPS_DIR, "categories.png", NULL );
     pixbuf = gdk_pixbuf_new_from_file ( tmpstr , NULL );
     g_free ( tmpstr );
     gtk_tree_store_append(GTK_TREE_STORE(navigation_model), &iter, NULL);
@@ -310,8 +323,7 @@ GtkWidget * create_navigation_pane ( void )
 		       -1 );
 
     /* Budgetary lines */
-    tmpstr = g_build_filename( PIXMAPS_DIR,
-			       "budgetary_lines.png", NULL );
+    tmpstr = g_build_filename( PIXMAPS_DIR, "budgetary_lines.png", NULL );
     pixbuf = gdk_pixbuf_new_from_file ( tmpstr , NULL );
     g_free ( tmpstr );
     gtk_tree_store_append(GTK_TREE_STORE(navigation_model), &iter, NULL);
@@ -327,8 +339,7 @@ GtkWidget * create_navigation_pane ( void )
 		       -1 );
 
     /* Reports */
-    tmpstr = g_build_filename( PIXMAPS_DIR,
-			       "reports.png", NULL );
+    tmpstr = g_build_filename( PIXMAPS_DIR, "reports.png", NULL );
     pixbuf = gdk_pixbuf_new_from_file ( tmpstr , NULL );
     g_free ( tmpstr );
     gtk_tree_store_append(GTK_TREE_STORE(navigation_model), &reports_iter, NULL);
@@ -1017,14 +1028,15 @@ void gsb_navigation_update_statement_label ( gint account_number )
     gchar* tmp_str;
     gchar* tmp_str1;
     gchar* tmp_str2;
+    gsb_real amount;
 
     reconcile_number = gsb_data_reconcile_get_account_last_number ( account_number );
+    amount = gsb_data_account_get_marked_balance ( account_number );
     if ( reconcile_number )
     {
         tmp_str1 = gsb_format_gdate ( gsb_data_reconcile_get_final_date (
                                             reconcile_number ) );
-        tmp_str2 = gsb_real_get_string_with_currency (
-                        gsb_data_account_get_marked_balance ( account_number ),
+        tmp_str2 = gsb_real_get_string_with_currency ( amount,
                         gsb_data_account_get_currency ( account_number ), TRUE );
         
         tmp_str = g_strconcat ( _("Last statement: "), tmp_str1, " - ",
@@ -1034,6 +1046,17 @@ void gsb_navigation_update_statement_label ( gint account_number )
         g_free ( tmp_str1 );
         g_free ( tmp_str2 );
     }
+    else if ( amount.mantissa != 0 )
+    {
+        tmp_str2 = gsb_real_get_string_with_currency (amount,
+                        gsb_data_account_get_currency ( account_number ), TRUE );
+        
+        tmp_str = g_strconcat ( _("Last statement: none"), " - ",
+                               _("Reconciled balance: "), tmp_str2, NULL );
+        gtk_label_set_text ( GTK_LABEL ( label_last_statement ), tmp_str);
+        g_free ( tmp_str );
+        g_free ( tmp_str2 );
+    }
     else
         gtk_label_set_text ( GTK_LABEL ( label_last_statement ),
                                             _("Last statement: none") );
@@ -1203,6 +1226,17 @@ gboolean gsb_gui_navigation_select_line ( GtkTreeSelection *selection,
 		payee_fill_tree ();
 	    break;
 
+	case GSB_GENERAL_FINANCIAL_PAGE:
+	    notice_debug ("Credits simulator page selected");
+
+	    /* set the title */
+	    title = g_strdup(_("Credits simulator"));
+
+	    /* what to be done if switch to that page */
+        gsb_form_set_expander_visible (FALSE, FALSE);
+        bet_finance_switch_simulator_page ( );
+	    break;
+
 	case GSB_CATEGORIES_PAGE:
 	    notice_debug ("Category page selected");
 
diff --git a/src/structures.h b/src/structures.h
index 745f028..0641f90 100644
--- a/src/structures.h
+++ b/src/structures.h
@@ -53,13 +53,16 @@ struct gsb_etat_t
     gint affichage_exercice_automatique;            /* automatic fyear :0 to set according to the date, 2 according to value date */
     gint automatic_completion_payee;                /* 1 pour autoriser la completion automatique des opérations */
     gboolean limit_completion_to_current_account;   /* Limit payee completion to current account or do a full search. */
-    gint formulaire_distinct_par_compte;            /* à 1 si le formulaire est différent pour chaque compte */
     gint affiche_nb_ecritures_listes;
     gint largeur_auto_colonnes;
     gint retient_affichage_par_compte;      /* à 1 si les caractéristiques de l'affichage (R, non R ...) diffèrent par compte */
     gint en_train_de_sauvegarder;
     gint en_train_de_charger;
+
+    /* Fonts & logo */
     gint utilise_logo;
+    gboolean is_pixmaps_dir;        /* TRUE if path_icon == PIXMAPS_DIR */
+    gchar *name_logo;
     gint display_grisbi_title;      /* selection du titre principal de grisbi */
     
     gint display_toolbar;           /** Display mode of toolbar. */
diff --git a/src/traitement_variables.c b/src/traitement_variables.c
index df54c39..6b87abf 100644
--- a/src/traitement_variables.c
+++ b/src/traitement_variables.c
@@ -30,6 +30,7 @@
 /*START_INCLUDE*/
 #include "traitement_variables.h"
 #include "bet_data.h"
+#include "bet_future.h"
 #include "gsb_currency.h"
 #include "gsb_data_account.h"
 #include "gsb_data_archive.h"
@@ -52,6 +53,7 @@
 #include "gsb_data_scheduled.h"
 #include "gsb_data_transaction.h"
 #include "gsb_form_scheduler.h"
+#include "gsb_select_icon.h"
 #include "gsb_form_widget.h"
 #include "gsb_fyear.h"
 #include "menu.h"
@@ -295,12 +297,11 @@ void init_variables ( void )
     affichage_echeances_perso_nb_libre = 0;
     affichage_echeances_perso_j_m_a = PERIODICITY_DAYS;
 
-
     no_devise_totaux_tiers = 1;
     no_devise_totaux_categ = 1;
     no_devise_totaux_ib = 1;
 
-    /* initialization of titles */
+    /* initialization of titles and logo part */
     titre_fichier = g_strdup( _("My accounts") );
     if ( initial_file_title && strlen ( initial_file_title ) )
         g_free ( initial_file_title );
@@ -310,6 +311,13 @@ void init_variables ( void )
         g_free ( initial_holder_title );
     initial_holder_title = NULL;
 
+    etat.is_pixmaps_dir = TRUE;
+    if ( etat.name_logo && strlen ( etat.name_logo ) )
+        g_free ( etat.name_logo );
+    etat.name_logo = NULL;
+    gsb_select_icon_init_logo_variables ();
+
+
     adresse_commune = NULL;
     adresse_secondaire = NULL;
 


hooks/post-receive
-- 
grisbi


More information about the cvs mailing list