[grisbi-cvs] [SCM] grisbi branch, grisbi-gtk3, updated. grisbi_gtk3_1_3_0-72-ge5e01c7

julien fallou nobody at users.sourceforge.net
Sat Feb 4 23:52:55 CET 2012


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, grisbi-gtk3 has been updated
       via  e5e01c7a9dc665896fe3675c73751d4ef8e31956 (commit)
       via  dd5ea60c33c9320109753334855b40fca5818398 (commit)
       via  2b212bbefd80cae48ed467c08e00744abb71a421 (commit)
      from  d5b1bc3f4ad2013c2fee2e54608a8d686b8cb099 (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 e5e01c7a9dc665896fe3675c73751d4ef8e31956
Merge: dd5ea60 d5b1bc3
Author: jfallou <freak917 at users.sourceforge.net>
Date:   Sat Feb 4 23:52:29 2012 +0100

    Merge branch 'grisbi-gtk3' of
    ssh://freak917@grisbi.git.sourceforge.net/gitroot/grisbi/grisbi into
    grisbi-gtk3
    
    Conflicts:
    	src/categories_onglet.c

commit dd5ea60c33c9320109753334855b40fca5818398
Author: jfallou <freak917 at users.sourceforge.net>
Date:   Sat Feb 4 23:30:03 2012 +0100

    add dialogs edit UI

commit 2b212bbefd80cae48ed467c08e00744abb71a421
Author: jfallou <freak917 at users.sourceforge.net>
Date:   Sat Feb 4 23:22:23 2012 +0100

    Update code to manage dialogs edit category and budgetary
    line UI

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

Changes:
diff --git a/src/accueil.c b/src/accueil.c
index ca1e514..12d7032 100644
--- a/src/accueil.c
+++ b/src/accueil.c
@@ -295,29 +295,24 @@ gboolean saisie_echeance_accueil ( GtkWidget *event_box,
     GtkWidget *parent_save, *dialog, *hbox;
     GtkWidget *button;
     gint result;
+    static GtkBuilder *dialog_builder = NULL;
 
     parent_save = gtk_widget_get_parent ( form_transaction_part );
 
-    /* Create the dialog */
-    dialog = gtk_dialog_new_with_buttons ( _("Enter a scheduled transaction"),
-					   GTK_WINDOW ( run.window ),
-					   GTK_DIALOG_MODAL,
-					   GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-					   GTK_STOCK_OK, GTK_RESPONSE_OK,
-					   NULL );
+    /* New GtkBuilder Creation*/
+    dialog_builder = gtk_builder_new ( );
 
-    gtk_window_set_position ( GTK_WINDOW ( dialog ), GTK_WIN_POS_CENTER_ON_PARENT );
-    gtk_widget_set_size_request ( dialog, 700, -1 );
-    gtk_window_set_resizable ( GTK_WINDOW ( dialog ), TRUE );
-    gtk_dialog_set_default_response ( GTK_DIALOG (dialog), GTK_RESPONSE_OK );
+    if ( dialog_builder == NULL )
+    	return FALSE;
 
+    /* Chargement du XML dans etats_config_builder */
+    if ( !utils_gtkbuilder_merge_ui_data_in_builder ( dialog_builder, "dlg_schdler_trans.ui" ) )
+    	return FALSE;
+
+    dialog = GTK_WIDGET ( gtk_builder_get_object ( dialog_builder, "dialog_scheduler_transaction" ) );
+    hbox = GTK_WIDGET ( gtk_builder_get_object ( dialog_builder, "hbox" ) );
 
-	/* first we reparent the form in the dialog */
-	hbox = gtk_hbox_new ( FALSE, 0 );
-    gtk_box_pack_start ( GTK_BOX ( dialog_get_content_area ( dialog ) ), hbox, TRUE, TRUE, 0 );
-	gtk_container_set_border_width ( GTK_CONTAINER(hbox), 12 );
 	gtk_widget_reparent ( form_transaction_part, hbox );
-    gtk_widget_show_all ( hbox );
 
     /* next we fill the form,
      * don't use gsb_form_show because we are neither on transactions list, neither scheduled list */
@@ -335,6 +330,8 @@ gboolean saisie_echeance_accueil ( GtkWidget *event_box,
                         G_CALLBACK (gsb_form_scheduler_change_account),
                         NULL );
 
+    gtk_widget_show ( dialog );
+
 	result = gtk_dialog_run ( GTK_DIALOG ( dialog ));
 
     if ( result == GTK_RESPONSE_OK )
diff --git a/src/bet_future.c b/src/bet_future.c
index 32c4de8..fadf321 100644
--- a/src/bet_future.c
+++ b/src/bet_future.c
@@ -256,8 +256,22 @@ GtkWidget *bet_future_create_dialog ( gint account_number )
     GtkWidget *vbox;
     GtkWidget *table;
 
-    /* Create the dialog */
-    dialog = gtk_dialog_new_with_buttons ( _("Enter a budget line"),
+    static GtkBuilder *dialog_builder = NULL;
+
+    /* New GtkBuilder Creation*/
+    dialog_builder = gtk_builder_new ( );
+
+    if ( dialog_builder == NULL )
+    	return FALSE;
+
+    /* Chargement du XML dans etats_config_builder */
+    if ( !utils_gtkbuilder_merge_ui_data_in_builder ( dialog_builder, "dlg_bet_future.ui" ) )
+    	return FALSE;
+
+    dialog = GTK_WIDGET ( gtk_builder_get_object ( dialog_builder, "dialog_bet_future_create" ) );
+    table = GTK_WIDGET ( gtk_builder_get_object ( dialog_builder, "table" ) );
+
+    /*dialog = gtk_dialog_new_with_buttons ( _("Enter a budget line"),
 					   GTK_WINDOW ( run.window ),
 					   GTK_DIALOG_MODAL,
 					   GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
@@ -272,16 +286,16 @@ GtkWidget *bet_future_create_dialog ( gint account_number )
 	gtk_box_pack_start ( GTK_BOX ( dialog_get_content_area ( dialog ) ), vbox, TRUE, TRUE, 0 );
 	gtk_container_set_border_width ( GTK_CONTAINER ( vbox ), 12 );
 
-    /* next we fill the bet_form */
+
     table = gtk_table_new ( BET_SCHEDULED_HEIGHT, BET_SCHEDULED_WIDTH, FALSE );
     gtk_table_set_col_spacings ( GTK_TABLE ( table ), 6 );
     gtk_widget_show ( table );
-    gtk_box_pack_start ( GTK_BOX ( vbox ), table, FALSE, FALSE, 5 );
+    gtk_box_pack_start ( GTK_BOX ( vbox ), table, FALSE, FALSE, 5 );*/
 
     bet_form_create_scheduler_part ( dialog, table );
     bet_form_create_current_form ( dialog, table, account_number );
 
-	gtk_widget_show ( vbox );
+	//gtk_widget_show ( vbox );
 
     return dialog;
  }
@@ -1498,6 +1512,7 @@ gboolean bet_future_take_data_from_form (  struct_futur_data *scheduled )
             }
             else
                 return FALSE;
+            break;
     }
 
     /* On traite les données de transaction */
diff --git a/src/bet_graph.c b/src/bet_graph.c
index f8e8263..65762c2 100644
--- a/src/bet_graph.c
+++ b/src/bet_graph.c
@@ -872,6 +872,7 @@ gboolean bet_graph_affiche_XY_line ( struct_bet_graph_data *self )
         break;
     default :
         position = "cross";
+        break;
     }
     g_object_set ( G_OBJECT ( axis ),
                         "pos-str", position,
diff --git a/src/bet_tab.c b/src/bet_tab.c
index c9ab4d7..c9ec8f2 100644
--- a/src/bet_tab.c
+++ b/src/bet_tab.c
@@ -600,155 +600,155 @@ GtkWidget *bet_array_create_tree_view ( GtkWidget *container )
     /* create the estimate treeview */
     tree_view = gtk_tree_view_new ( );
     gtk_tree_view_set_rules_hint ( GTK_TREE_VIEW ( tree_view ), FALSE );
-    g_object_set_data ( G_OBJECT ( account_page ), "bet_estimate_treeview", tree_view );
-    g_object_set_data ( G_OBJECT ( tree_view ), "origin_data_model",
-                        GINT_TO_POINTER ( SPP_ESTIMATE_TREE_ORIGIN_DATA ) );
-    g_object_set_data ( G_OBJECT ( tree_view ), "color_data_model",
-                        GINT_TO_POINTER ( SPP_ESTIMATE_TREE_COLOR_STRING ) );
-
-    /* set the color of selected row */
-    utils_set_tree_view_selection_and_text_color ( tree_view );
-
-    /* create the model */
-    tree_model = gtk_tree_store_new ( SPP_ESTIMATE_TREE_NUM_COLUMNS,
-                    G_TYPE_BOOLEAN,     /* SPP_ESTIMATE_TREE_SELECT_COLUMN */
-                    G_TYPE_INT,         /* SPP_ESTIMATE_TREE_ORIGIN_DATA */
-                    G_TYPE_INT,         /* SPP_ESTIMATE_TREE_DIVISION_COLUMN */
-                    G_TYPE_INT,         /* SPP_ESTIMATE_TREE_SUB_DIV_COLUMN */
-                    G_TYPE_STRING,      /* SPP_ESTIMATE_TREE_DATE_COLUMN */
-                    G_TYPE_STRING,      /* SPP_ESTIMATE_TREE_DESC_COLUMN */
-                    G_TYPE_STRING,      /* SPP_ESTIMATE_TREE_DEBIT_COLUMN */
-                    G_TYPE_STRING,      /* SPP_ESTIMATE_TREE_CREDIT_COLUMN */
-                    G_TYPE_STRING,      /* SPP_ESTIMATE_TREE_BALANCE_COLUMN */
-                    G_TYPE_DATE,        /* SPP_ESTIMATE_TREE_SORT_DATE_COLUMN */
-                    G_TYPE_STRING,      /* SPP_ESTIMATE_TREE_AMOUNT_COLUMN */
-                    G_TYPE_STRING,      /* SPP_ESTIMATE_TREE_BALANCE_COLOR */
-                    GDK_TYPE_COLOR,     /* SPP_ESTIMATE_TREE_BACKGROUND_COLOR */
-                    G_TYPE_STRING );    /* SPP_ESTIMATE_TREE_COLOR_STRING */
-
-    gtk_tree_view_set_model ( GTK_TREE_VIEW ( tree_view ), GTK_TREE_MODEL ( tree_model ) );
-    g_object_unref ( G_OBJECT ( tree_model ) );
-
-    /* sort by date */
-    sortable = gtk_tree_model_sort_new_with_model ( GTK_TREE_MODEL ( tree_model ) );
-    gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE ( tree_model ),
-                        SPP_ESTIMATE_TREE_SORT_DATE_COLUMN,
-                        (GtkTreeIterCompareFunc) bet_array_date_sort_function,
-                        NULL,
-                        NULL );
-    gtk_tree_sortable_set_sort_column_id ( GTK_TREE_SORTABLE ( tree_model ),
-                        SPP_ESTIMATE_TREE_SORT_DATE_COLUMN,
-                        GTK_SORT_DESCENDING );
-
-    scrolled_window = gtk_scrolled_window_new ( NULL, NULL );
-    gtk_widget_show ( scrolled_window );
-    gtk_scrolled_window_set_policy ( GTK_SCROLLED_WINDOW ( scrolled_window ),
-                        GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC );
-    gtk_container_add ( GTK_CONTAINER ( scrolled_window ), tree_view );
-    gtk_box_pack_start ( GTK_BOX ( container ), scrolled_window, TRUE, TRUE, 5 );
-
-    /* create columns */
-    i = 0;
-    /* Date column */
-    cell = gtk_cell_renderer_text_new ();
-    g_object_set ( G_OBJECT ( GTK_CELL_RENDERER ( cell ) ), "xalign", 0.5, NULL );
-
-    bet_array_tree_view_columns[i] = gtk_tree_view_column_new_with_attributes (
-                        _("Date"), cell,
-                        "text", SPP_ESTIMATE_TREE_DATE_COLUMN,
-                        "cell-background-gdk", SPP_ESTIMATE_TREE_BACKGROUND_COLOR,
-                        NULL);
-
-    gtk_tree_view_column_set_alignment ( bet_array_tree_view_columns[i], 0.5 );
-    gtk_tree_view_append_column( GTK_TREE_VIEW ( tree_view ), bet_array_tree_view_columns[i] );
-    gtk_tree_view_column_set_sizing ( bet_array_tree_view_columns[i], GTK_TREE_VIEW_COLUMN_FIXED );
-    gtk_tree_view_column_set_resizable ( bet_array_tree_view_columns[i], TRUE );
-    g_object_set_data ( G_OBJECT ( bet_array_tree_view_columns[i] ), "num_col_model",
-                        GINT_TO_POINTER ( SPP_ESTIMATE_TREE_DATE_COLUMN ) );
-
-    i++;
-    /* Description column */
-    cell = gtk_cell_renderer_text_new ();
-
-    bet_array_tree_view_columns[i] = gtk_tree_view_column_new_with_attributes (
-					    _("Description"), cell,
-					    "text", SPP_ESTIMATE_TREE_DESC_COLUMN,
-                        "cell-background-gdk", SPP_ESTIMATE_TREE_BACKGROUND_COLOR,
-					    NULL);
-
-    gtk_tree_view_append_column (GTK_TREE_VIEW ( tree_view ), bet_array_tree_view_columns[i] );
-    gtk_tree_view_column_set_sizing ( bet_array_tree_view_columns[i], GTK_TREE_VIEW_COLUMN_FIXED );
-    gtk_tree_view_column_set_resizable ( bet_array_tree_view_columns[i], TRUE );
-    g_object_set_data ( G_OBJECT ( bet_array_tree_view_columns[i] ), "num_col_model",
-                        GINT_TO_POINTER ( SPP_ESTIMATE_TREE_DESC_COLUMN ) );
-
-    i++;
-    /* Debit column */
-    cell = gtk_cell_renderer_text_new ();
-    g_object_set ( G_OBJECT ( GTK_CELL_RENDERER ( cell ) ), "xalign", 1.0, NULL );
-
-    bet_array_tree_view_columns[i] = gtk_tree_view_column_new_with_attributes (
-						_("Debit"), cell,
-					    "text", SPP_ESTIMATE_TREE_DEBIT_COLUMN,
-                        "cell-background-gdk", SPP_ESTIMATE_TREE_BACKGROUND_COLOR,
-					    NULL);
-
-    gtk_tree_view_column_set_alignment ( bet_array_tree_view_columns[i], 1 );
-    gtk_tree_view_append_column (GTK_TREE_VIEW ( tree_view ), bet_array_tree_view_columns[i] );
-    gtk_tree_view_column_set_sizing ( bet_array_tree_view_columns[i], GTK_TREE_VIEW_COLUMN_GROW_ONLY );
-    gtk_tree_view_column_set_resizable ( bet_array_tree_view_columns[i], TRUE );
-    g_object_set_data ( G_OBJECT ( bet_array_tree_view_columns[i] ), "num_col_model",
-                        GINT_TO_POINTER ( SPP_ESTIMATE_TREE_DEBIT_COLUMN ) );
-
-    i++;
-    /* Credit column */
-    cell = gtk_cell_renderer_text_new ();
-    g_object_set ( G_OBJECT ( GTK_CELL_RENDERER ( cell ) ), "xalign", 1.0, NULL );
-
-    bet_array_tree_view_columns[i] = gtk_tree_view_column_new_with_attributes (
-					    _("Credit"), cell,
-					    "text", SPP_ESTIMATE_TREE_CREDIT_COLUMN,
-                        "cell-background-gdk", SPP_ESTIMATE_TREE_BACKGROUND_COLOR,
-						NULL);
-
-    gtk_tree_view_column_set_alignment ( bet_array_tree_view_columns[i], 1 );
-    gtk_tree_view_append_column (GTK_TREE_VIEW ( tree_view ), bet_array_tree_view_columns[i] );
-    gtk_tree_view_column_set_sizing ( bet_array_tree_view_columns[i], GTK_TREE_VIEW_COLUMN_GROW_ONLY );
-    gtk_tree_view_column_set_resizable ( bet_array_tree_view_columns[i], TRUE );
-    g_object_set_data ( G_OBJECT ( bet_array_tree_view_columns[i] ), "num_col_model",
-                        GINT_TO_POINTER ( SPP_ESTIMATE_TREE_CREDIT_COLUMN ) );
-
-    i++;
-    /* Balance column */
-    cell = gtk_cell_renderer_text_new ();
-    g_object_set ( G_OBJECT ( GTK_CELL_RENDERER ( cell ) ), "xalign", 1.0, NULL );
-
-    bet_array_tree_view_columns[i] = gtk_tree_view_column_new_with_attributes (
-					    _("Balance"), cell,
-					    "text", SPP_ESTIMATE_TREE_BALANCE_COLUMN,
-                        "foreground", SPP_ESTIMATE_TREE_BALANCE_COLOR,
-                        "cell-background-gdk", SPP_ESTIMATE_TREE_BACKGROUND_COLOR,
-					    NULL);
-
-    gtk_tree_view_column_set_alignment ( bet_array_tree_view_columns[i], 1 );
-    gtk_tree_view_append_column (GTK_TREE_VIEW ( tree_view ), bet_array_tree_view_columns[i] );
-    gtk_tree_view_column_set_sizing ( bet_array_tree_view_columns[i], GTK_TREE_VIEW_COLUMN_GROW_ONLY );
-    gtk_tree_view_column_set_resizable ( bet_array_tree_view_columns[i], TRUE );
-    g_object_set_data ( G_OBJECT ( bet_array_tree_view_columns[i] ), "num_col_model",
-                        GINT_TO_POINTER ( SPP_ESTIMATE_TREE_BALANCE_COLUMN ) );
-
-    /* signals of tree_view */
-    g_signal_connect ( G_OBJECT ( tree_view ),
-		                "button-press-event",
-		                G_CALLBACK ( bet_array_list_button_press ),
-		                NULL );
-
-    g_signal_connect ( G_OBJECT ( tree_view ),
-		                "size_allocate",
-		                G_CALLBACK ( bet_array_list_size_allocate ),
-		                NULL );
-
-    gtk_widget_show_all ( scrolled_window );
+       g_object_set_data ( G_OBJECT ( account_page ), "bet_estimate_treeview", tree_view );
+       g_object_set_data ( G_OBJECT ( tree_view ), "origin_data_model",
+                           GINT_TO_POINTER ( SPP_ESTIMATE_TREE_ORIGIN_DATA ) );
+       g_object_set_data ( G_OBJECT ( tree_view ), "color_data_model",
+                           GINT_TO_POINTER ( SPP_ESTIMATE_TREE_COLOR_STRING ) );
+
+       /* set the color of selected row */
+       utils_set_tree_view_selection_and_text_color ( tree_view );
+
+       /* create the model */
+       tree_model = gtk_tree_store_new ( SPP_ESTIMATE_TREE_NUM_COLUMNS,
+                       G_TYPE_BOOLEAN,     /* SPP_ESTIMATE_TREE_SELECT_COLUMN */
+                       G_TYPE_INT,         /* SPP_ESTIMATE_TREE_ORIGIN_DATA */
+                       G_TYPE_INT,         /* SPP_ESTIMATE_TREE_DIVISION_COLUMN */
+                       G_TYPE_INT,         /* SPP_ESTIMATE_TREE_SUB_DIV_COLUMN */
+                       G_TYPE_STRING,      /* SPP_ESTIMATE_TREE_DATE_COLUMN */
+                       G_TYPE_STRING,      /* SPP_ESTIMATE_TREE_DESC_COLUMN */
+                       G_TYPE_STRING,      /* SPP_ESTIMATE_TREE_DEBIT_COLUMN */
+                       G_TYPE_STRING,      /* SPP_ESTIMATE_TREE_CREDIT_COLUMN */
+                       G_TYPE_STRING,      /* SPP_ESTIMATE_TREE_BALANCE_COLUMN */
+                       G_TYPE_DATE,        /* SPP_ESTIMATE_TREE_SORT_DATE_COLUMN */
+                       G_TYPE_STRING,      /* SPP_ESTIMATE_TREE_AMOUNT_COLUMN */
+                       G_TYPE_STRING,      /* SPP_ESTIMATE_TREE_BALANCE_COLOR */
+                       GDK_TYPE_COLOR,     /* SPP_ESTIMATE_TREE_BACKGROUND_COLOR */
+                       G_TYPE_STRING );    /* SPP_ESTIMATE_TREE_COLOR_STRING */
+
+       gtk_tree_view_set_model ( GTK_TREE_VIEW ( tree_view ), GTK_TREE_MODEL ( tree_model ) );
+       g_object_unref ( G_OBJECT ( tree_model ) );
+
+       /* sort by date */
+       sortable = gtk_tree_model_sort_new_with_model ( GTK_TREE_MODEL ( tree_model ) );
+       gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE ( tree_model ),
+                           SPP_ESTIMATE_TREE_SORT_DATE_COLUMN,
+                           (GtkTreeIterCompareFunc) bet_array_date_sort_function,
+                           NULL,
+                           NULL );
+       gtk_tree_sortable_set_sort_column_id ( GTK_TREE_SORTABLE ( tree_model ),
+                           SPP_ESTIMATE_TREE_SORT_DATE_COLUMN,
+                           GTK_SORT_DESCENDING );
+
+       scrolled_window = gtk_scrolled_window_new ( NULL, NULL );
+       gtk_widget_show ( scrolled_window );
+       gtk_scrolled_window_set_policy ( GTK_SCROLLED_WINDOW ( scrolled_window ),
+                           GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC );
+       gtk_container_add ( GTK_CONTAINER ( scrolled_window ), tree_view );
+       gtk_box_pack_start ( GTK_BOX ( container ), scrolled_window, TRUE, TRUE, 5 );
+
+       /* create columns */
+       i = 0;
+       /* Date column */
+       cell = gtk_cell_renderer_text_new ();
+       g_object_set ( G_OBJECT ( GTK_CELL_RENDERER ( cell ) ), "xalign", 0.5, NULL );
+
+       bet_array_tree_view_columns[i] = gtk_tree_view_column_new_with_attributes (
+                           _("Date"), cell,
+                           "text", SPP_ESTIMATE_TREE_DATE_COLUMN,
+                           "cell-background-gdk", SPP_ESTIMATE_TREE_BACKGROUND_COLOR,
+                           NULL);
+
+       gtk_tree_view_column_set_alignment ( bet_array_tree_view_columns[i], 0.5 );
+       gtk_tree_view_append_column( GTK_TREE_VIEW ( tree_view ), bet_array_tree_view_columns[i] );
+       gtk_tree_view_column_set_sizing ( bet_array_tree_view_columns[i], GTK_TREE_VIEW_COLUMN_FIXED );
+       gtk_tree_view_column_set_resizable ( bet_array_tree_view_columns[i], TRUE );
+       g_object_set_data ( G_OBJECT ( bet_array_tree_view_columns[i] ), "num_col_model",
+                           GINT_TO_POINTER ( SPP_ESTIMATE_TREE_DATE_COLUMN ) );
+
+       i++;
+       /* Description column */
+       cell = gtk_cell_renderer_text_new ();
+
+       bet_array_tree_view_columns[i] = gtk_tree_view_column_new_with_attributes (
+   					    _("Description"), cell,
+   					    "text", SPP_ESTIMATE_TREE_DESC_COLUMN,
+                           "cell-background-gdk", SPP_ESTIMATE_TREE_BACKGROUND_COLOR,
+   					    NULL);
+
+       gtk_tree_view_append_column (GTK_TREE_VIEW ( tree_view ), bet_array_tree_view_columns[i] );
+       gtk_tree_view_column_set_sizing ( bet_array_tree_view_columns[i], GTK_TREE_VIEW_COLUMN_FIXED );
+       gtk_tree_view_column_set_resizable ( bet_array_tree_view_columns[i], TRUE );
+       g_object_set_data ( G_OBJECT ( bet_array_tree_view_columns[i] ), "num_col_model",
+                           GINT_TO_POINTER ( SPP_ESTIMATE_TREE_DESC_COLUMN ) );
+
+       i++;
+       /* Debit column */
+       cell = gtk_cell_renderer_text_new ();
+       g_object_set ( G_OBJECT ( GTK_CELL_RENDERER ( cell ) ), "xalign", 1.0, NULL );
+
+       bet_array_tree_view_columns[i] = gtk_tree_view_column_new_with_attributes (
+   						_("Debit"), cell,
+   					    "text", SPP_ESTIMATE_TREE_DEBIT_COLUMN,
+                           "cell-background-gdk", SPP_ESTIMATE_TREE_BACKGROUND_COLOR,
+   					    NULL);
+
+       gtk_tree_view_column_set_alignment ( bet_array_tree_view_columns[i], 1 );
+       gtk_tree_view_append_column (GTK_TREE_VIEW ( tree_view ), bet_array_tree_view_columns[i] );
+       gtk_tree_view_column_set_sizing ( bet_array_tree_view_columns[i], GTK_TREE_VIEW_COLUMN_GROW_ONLY );
+       gtk_tree_view_column_set_resizable ( bet_array_tree_view_columns[i], TRUE );
+       g_object_set_data ( G_OBJECT ( bet_array_tree_view_columns[i] ), "num_col_model",
+                           GINT_TO_POINTER ( SPP_ESTIMATE_TREE_DEBIT_COLUMN ) );
+
+       i++;
+       /* Credit column */
+       cell = gtk_cell_renderer_text_new ();
+       g_object_set ( G_OBJECT ( GTK_CELL_RENDERER ( cell ) ), "xalign", 1.0, NULL );
+
+       bet_array_tree_view_columns[i] = gtk_tree_view_column_new_with_attributes (
+   					    _("Credit"), cell,
+   					    "text", SPP_ESTIMATE_TREE_CREDIT_COLUMN,
+                           "cell-background-gdk", SPP_ESTIMATE_TREE_BACKGROUND_COLOR,
+   						NULL);
+
+       gtk_tree_view_column_set_alignment ( bet_array_tree_view_columns[i], 1 );
+       gtk_tree_view_append_column (GTK_TREE_VIEW ( tree_view ), bet_array_tree_view_columns[i] );
+       gtk_tree_view_column_set_sizing ( bet_array_tree_view_columns[i], GTK_TREE_VIEW_COLUMN_GROW_ONLY );
+       gtk_tree_view_column_set_resizable ( bet_array_tree_view_columns[i], TRUE );
+       g_object_set_data ( G_OBJECT ( bet_array_tree_view_columns[i] ), "num_col_model",
+                           GINT_TO_POINTER ( SPP_ESTIMATE_TREE_CREDIT_COLUMN ) );
+
+       i++;
+       /* Balance column */
+       cell = gtk_cell_renderer_text_new ();
+       g_object_set ( G_OBJECT ( GTK_CELL_RENDERER ( cell ) ), "xalign", 1.0, NULL );
+
+       bet_array_tree_view_columns[i] = gtk_tree_view_column_new_with_attributes (
+   					    _("Balance"), cell,
+   					    "text", SPP_ESTIMATE_TREE_BALANCE_COLUMN,
+                           "foreground", SPP_ESTIMATE_TREE_BALANCE_COLOR,
+                           "cell-background-gdk", SPP_ESTIMATE_TREE_BACKGROUND_COLOR,
+   					    NULL);
+
+       gtk_tree_view_column_set_alignment ( bet_array_tree_view_columns[i], 1 );
+       gtk_tree_view_append_column (GTK_TREE_VIEW ( tree_view ), bet_array_tree_view_columns[i] );
+       gtk_tree_view_column_set_sizing ( bet_array_tree_view_columns[i], GTK_TREE_VIEW_COLUMN_GROW_ONLY );
+       gtk_tree_view_column_set_resizable ( bet_array_tree_view_columns[i], TRUE );
+       g_object_set_data ( G_OBJECT ( bet_array_tree_view_columns[i] ), "num_col_model",
+                           GINT_TO_POINTER ( SPP_ESTIMATE_TREE_BALANCE_COLUMN ) );
+
+       /* signals of tree_view */
+       g_signal_connect ( G_OBJECT ( tree_view ),
+   		                "button-press-event",
+   		                G_CALLBACK ( bet_array_list_button_press ),
+   		                NULL );
+
+       g_signal_connect ( G_OBJECT ( tree_view ),
+   		                "size_allocate",
+   		                G_CALLBACK ( bet_array_list_size_allocate ),
+   		                NULL );
+
+       gtk_widget_show_all ( scrolled_window );
 
     return tree_view;
 }
@@ -2107,6 +2107,7 @@ gboolean bet_array_list_set_background_color ( GtkWidget *tree_view )
                         SPP_ESTIMATE_TREE_BACKGROUND_COLOR, gsb_color_get_couleur ( "couleur_bet_solde" ),
                         SPP_ESTIMATE_TREE_COLOR_STRING, gsb_color_get_couleur_to_string ( "couleur_bet_solde" ),
                         -1 );
+                break;
             }
 
             /* gestion de la date du jour */
diff --git a/src/categories_onglet.c b/src/categories_onglet.c
index e4bd96e..e4bb225 100644
--- a/src/categories_onglet.c
+++ b/src/categories_onglet.c
@@ -719,15 +719,32 @@ gboolean edit_category ( GtkTreeView *tree_view )
     if ( sub_category_number > 0 )
     {
     	/* widget paddingbox XML loading */
-    	if ( !utils_gtkbuilder_merge_ui_data_in_builder ( widget_builder, "dlg_edit_category.ui" ) )
+    	if ( !utils_gtkbuilder_merge_ui_data_in_builder ( widget_builder, "dlg_edit_without_radio.ui" ) )
     		return NULL;
+
+    	entry = GTK_WIDGET (gtk_builder_get_object ( widget_builder, "entry" ));
+
+    	gtk_entry_set_text ( GTK_ENTRY ( entry ),
+    				     gsb_data_category_get_sub_category_name ( category_number,
+    									       sub_category_number,
+    									       NULL ) );
     }
     else
     {
     	/* widget paddingbox XML loading */
-    	if ( !utils_gtkbuilder_merge_ui_data_in_builder ( widget_builder, "dlg_edit_category_radio.ui" ) )
+    	if ( !utils_gtkbuilder_merge_ui_data_in_builder ( widget_builder, "dlg_edit_with_radio.ui" ) )
     		return NULL;
 
+    	entry = GTK_WIDGET (gtk_builder_get_object ( widget_builder, "entry" ));
+
+    	gtk_entry_set_text ( GTK_ENTRY ( entry ),
+    				     gsb_data_category_get_name ( category_number, 0, NULL ) );
+
+    	if (gsb_data_category_get_type (category_number))
+    		gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( gtk_builder_get_object ( widget_builder, "Debit_radiobutton" ) ), TRUE );
+    	else
+    		gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( gtk_builder_get_object ( widget_builder, "Credit_radiobutton" ) ), TRUE );
+
     	g_object_set_data (G_OBJECT (gtk_builder_get_object ( widget_builder, "Debit_radiobutton" )),
     			       "number_for_func", GINT_TO_POINTER (category_number));
 
@@ -738,7 +755,7 @@ gboolean edit_category ( GtkTreeView *tree_view )
     /* Get the needed widgets*/
     dialog = GTK_WIDGET (gtk_builder_get_object ( widget_builder, "dialog_edit_category" ));
     label = GTK_WIDGET (gtk_builder_get_object ( widget_builder, "label" ));
-    entry = GTK_WIDGET (gtk_builder_get_object ( widget_builder, "entry" ));
+
 
 
     //Set Title
diff --git a/src/etats_config_ui.c b/src/etats_config_ui.c
index ec10ff9..3b8f95c 100644
--- a/src/etats_config_ui.c
+++ b/src/etats_config_ui.c
@@ -1172,17 +1172,14 @@ void etats_config_ui_onglet_comptes_select_unselect ( GtkToggleButton *togglebut
     switch ( type_compte )
     {
     case -9:
-        {
-            utils_togglebutton_select_unselect_all_rows ( togglebutton, tree_view );
-            break;
-        }
+    	utils_togglebutton_select_unselect_all_rows ( togglebutton, tree_view );
+    	break;
     default:
-        {
-            gtk_tree_selection_unselect_all ( selection );
-            if ( toggle )
-                etats_config_onglet_select_partie_liste_comptes ( tree_view, type_compte );
-            utils_togglebutton_change_label_select_unselect ( GTK_TOGGLE_BUTTON ( togglebutton ), toggle );
-        }
+    	gtk_tree_selection_unselect_all ( selection );
+    	if ( toggle )
+    		etats_config_onglet_select_partie_liste_comptes ( tree_view, type_compte );
+    	utils_togglebutton_change_label_select_unselect ( GTK_TOGGLE_BUTTON ( togglebutton ), toggle );
+    	break;
     }
 }
 
diff --git a/src/gsb_form.c b/src/gsb_form.c
index 938038c..950ac17 100644
--- a/src/gsb_form.c
+++ b/src/gsb_form.c
@@ -89,23 +89,23 @@
 
 /*START_STATIC*/
 static gboolean gsb_form_activate_expander ( GtkWidget *expander,
-                        gpointer null );
+		gpointer null );
 static gboolean gsb_form_button_press ( GtkWidget *vbox,
-                        GdkEventButton *ev,
-                        gpointer null );
+		GdkEventButton *ev,
+		gpointer null );
 static gint gsb_form_check_for_transfer ( const gchar *entry_string );
 static gboolean gsb_form_get_categories ( gint transaction_number,
-                        gint new_transaction,
-                        gboolean is_transaction );
+		gint new_transaction,
+		gboolean is_transaction );
 static gboolean gsb_form_hide ( void );
 static gboolean gsb_form_initialise_transaction_form ( void );
 static gboolean gsb_form_size_allocate ( GtkWidget *widget,
-                        GtkAllocation *allocation,
-                        gpointer null );
+		GtkAllocation *allocation,
+		gpointer null );
 static void gsb_form_take_datas_from_form ( gint transaction_number,
-                        gboolean is_transaction );
+		gboolean is_transaction );
 static gboolean gsb_form_validate_form_transaction ( gint transaction_number,
-                        gboolean is_transaction );
+		gboolean is_transaction );
 /*END_STATIC*/
 
 /*START_EXTERN*/
@@ -162,7 +162,7 @@ static GDate *save_form_date;
  * */
 GtkWidget *gsb_form_get_form_widget ( void )
 {
-    return transaction_form;
+	return transaction_form;
 }
 
 /**
@@ -172,18 +172,18 @@ GtkWidget *gsb_form_get_form_widget ( void )
  * */
 GtkWidget *gsb_form_new ( void )
 {
-    /* Create the expander */
-    form_expander = gtk_expander_new ( "" );
-    gtk_expander_set_expanded ( GTK_EXPANDER ( form_expander ),
-				etat.formulaire_toujours_affiche );
-    g_signal_connect_after( G_OBJECT(form_expander),
-			    "activate",
-			    G_CALLBACK (gsb_form_activate_expander),
-			    NULL );
-
-    gsb_form_create_widgets ();
-
-    return form_expander;
+	/* Create the expander */
+	form_expander = gtk_expander_new ( "" );
+	gtk_expander_set_expanded ( GTK_EXPANDER ( form_expander ),
+			etat.formulaire_toujours_affiche );
+	g_signal_connect_after( G_OBJECT(form_expander),
+			"activate",
+			G_CALLBACK (gsb_form_activate_expander),
+			NULL );
+
+	gsb_form_create_widgets ();
+
+	return form_expander;
 }
 
 /**
@@ -195,7 +195,7 @@ GtkWidget *gsb_form_new ( void )
  * */
 GtkWidget *gsb_form_get_scheduler_part ( void )
 {
-    return form_scheduled_part;
+	return form_scheduled_part;
 }
 
 
@@ -207,149 +207,149 @@ GtkWidget *gsb_form_get_scheduler_part ( void )
  */
 void gsb_form_create_widgets ( void )
 {
-    GtkWidget * hbox, * label, * separator, * hbox_buttons, * hbox_buttons_inner;
-    GtkWidget * child = gtk_bin_get_child ( GTK_BIN ( form_expander ) );
-    GtkWidget *event_box;
+	GtkWidget * hbox, * label, * separator, * hbox_buttons, * hbox_buttons_inner;
+	GtkWidget * child = gtk_bin_get_child ( GTK_BIN ( form_expander ) );
+	GtkWidget *event_box;
 	gchar* tmpstr;
 
-    devel_debug (NULL);
-
-    if ( child && GTK_IS_WIDGET(child) )
-    {
-        gsb_form_widget_free_list ();
-	    gtk_container_remove ( GTK_CONTAINER ( form_expander ), child );
-    }
-
-    /* Expander has a composite label */
-    hbox = gtk_hbox_new ( FALSE, 0 );
-    gtk_expander_set_label_widget ( GTK_EXPANDER(form_expander), hbox );
-
-    /* set the label transaction form */
-    label = gtk_label_new ( NULL );
-    tmpstr = make_pango_attribut ( "weight=\"bold\"", _("Transaction/Scheduled _form") );
-    gtk_label_set_markup_with_mnemonic ( GTK_LABEL ( label ), tmpstr );
-    g_free ( tmpstr );
-    gtk_box_pack_start ( GTK_BOX ( hbox ),
-			 label,
-			 FALSE, FALSE, 0 );
-
-    /* set the last statement label */
-    label_last_statement = gtk_label_new ( NULL );
-    gtk_box_pack_end ( GTK_BOX ( hbox ),
-		       label_last_statement,
-		       FALSE, FALSE, 0 );
-
-    /* Create form inside the expander :
-     * the form is 3 parts :
-     * top : the values specific for the scheduled transactions
-     * middle : the values for transactions and scheduled transactions
-     * bottom : the buttons valid/cancel */
-    transaction_form = gtk_vbox_new ( FALSE, 5 );
-    gtk_container_add ( GTK_CONTAINER ( form_expander ),
+	devel_debug (NULL);
+
+	if ( child && GTK_IS_WIDGET(child) )
+	{
+		gsb_form_widget_free_list ();
+		gtk_container_remove ( GTK_CONTAINER ( form_expander ), child );
+	}
+
+	/* Expander has a composite label */
+	hbox = gtk_hbox_new ( FALSE, 0 );
+	gtk_expander_set_label_widget ( GTK_EXPANDER(form_expander), hbox );
+
+	/* set the label transaction form */
+	label = gtk_label_new ( NULL );
+	tmpstr = make_pango_attribut ( "weight=\"bold\"", _("Transaction/Scheduled _form") );
+	gtk_label_set_markup_with_mnemonic ( GTK_LABEL ( label ), tmpstr );
+	g_free ( tmpstr );
+	gtk_box_pack_start ( GTK_BOX ( hbox ),
+			label,
+			FALSE, FALSE, 0 );
+
+	/* set the last statement label */
+	label_last_statement = gtk_label_new ( NULL );
+	gtk_box_pack_end ( GTK_BOX ( hbox ),
+			label_last_statement,
+			FALSE, FALSE, 0 );
+
+	/* Create form inside the expander :
+	 * the form is 3 parts :
+	 * top : the values specific for the scheduled transactions
+	 * middle : the values for transactions and scheduled transactions
+	 * bottom : the buttons valid/cancel */
+	transaction_form = gtk_vbox_new ( FALSE, 5 );
+	gtk_container_add ( GTK_CONTAINER ( form_expander ),
 			transaction_form );
 
-    /* play with that widget to tell to the tree view to scroll to keep the selection visible */
-    g_signal_connect_after ( G_OBJECT (transaction_form),
-			     "size-allocate",
-			     G_CALLBACK (gsb_form_size_allocate),
-			     NULL );
-
-    /* the scheduled part is a table of SCHEDULED_WIDTH col x SCHEDULED_HEIGHT rows */
-
-    form_scheduled_part = gtk_table_new ( SCHEDULED_HEIGHT, 
-                      SCHEDULED_WIDTH,
-                      FALSE );
-    gtk_table_set_col_spacings ( GTK_TABLE (form_scheduled_part),
-                    6 );
-    gtk_box_pack_start ( GTK_BOX (transaction_form),
-                    form_scheduled_part,
-                    FALSE, FALSE,
-                    0 );
-
-    gsb_form_scheduler_create (form_scheduled_part);
-
-    /* add a separator between the scheduled and transaction part */
-    separator = gtk_hseparator_new ();
-    gtk_box_pack_start ( GTK_BOX (transaction_form),
-			 separator,
-			 FALSE, FALSE,
-			 0 );
-
-    /* the transactions part is a variable table,
-     * so set to 1x1 for now, it will change when we show it */
-    /* didn't find another way to get the button-press-event on the form_transaction_part,
-     * so use an event box */
-    event_box = gtk_event_box_new ();
-    gtk_event_box_set_above_child (GTK_EVENT_BOX (event_box),
-				   FALSE );
-    gtk_box_pack_start ( GTK_BOX (transaction_form),
-			 event_box ,
-			 FALSE, FALSE,
-			 0 );
-    g_signal_connect ( G_OBJECT (event_box),
-		       "button-press-event",
-		       G_CALLBACK (gsb_form_button_press),
-		       NULL );
-
-    form_transaction_part = gtk_table_new ( 1, 1, FALSE );
-    gtk_table_set_col_spacings ( GTK_TABLE (form_transaction_part), 6 );
-    g_signal_connect ( G_OBJECT (form_transaction_part),
-		       "size-allocate",
-		       G_CALLBACK (gsb_form_allocate_size),
-		       NULL );
-    gtk_container_add ( GTK_CONTAINER (event_box),
+	/* play with that widget to tell to the tree view to scroll to keep the selection visible */
+	g_signal_connect_after ( G_OBJECT (transaction_form),
+			"size-allocate",
+			G_CALLBACK (gsb_form_size_allocate),
+			NULL );
+
+	/* the scheduled part is a table of SCHEDULED_WIDTH col x SCHEDULED_HEIGHT rows */
+
+	form_scheduled_part = gtk_table_new ( SCHEDULED_HEIGHT,
+			SCHEDULED_WIDTH,
+			FALSE );
+	gtk_table_set_col_spacings ( GTK_TABLE (form_scheduled_part),
+			6 );
+	gtk_box_pack_start ( GTK_BOX (transaction_form),
+			form_scheduled_part,
+			FALSE, FALSE,
+			0 );
+
+	gsb_form_scheduler_create (form_scheduled_part);
+
+	/* add a separator between the scheduled and transaction part */
+	separator = gtk_hseparator_new ();
+	gtk_box_pack_start ( GTK_BOX (transaction_form),
+			separator,
+			FALSE, FALSE,
+			0 );
+
+	/* the transactions part is a variable table,
+	 * so set to 1x1 for now, it will change when we show it */
+	/* didn't find another way to get the button-press-event on the form_transaction_part,
+	 * so use an event box */
+	event_box = gtk_event_box_new ();
+	gtk_event_box_set_above_child (GTK_EVENT_BOX (event_box),
+			FALSE );
+	gtk_box_pack_start ( GTK_BOX (transaction_form),
+			event_box ,
+			FALSE, FALSE,
+			0 );
+	g_signal_connect ( G_OBJECT (event_box),
+			"button-press-event",
+			G_CALLBACK (gsb_form_button_press),
+			NULL );
+
+	form_transaction_part = gtk_table_new ( 1, 1, FALSE );
+	gtk_table_set_col_spacings ( GTK_TABLE (form_transaction_part), 6 );
+	g_signal_connect ( G_OBJECT (form_transaction_part),
+			"size-allocate",
+			G_CALLBACK (gsb_form_allocate_size),
+			NULL );
+	gtk_container_add ( GTK_CONTAINER (event_box),
 			form_transaction_part );
 
-    gsb_form_initialise_transaction_form ( );
-
-    /* the buttons part is a hbox, with the recuperate child split
-     * on the left and valid/cancel on the right */
-    form_button_part = gtk_vbox_new ( FALSE, 0 );
-    gtk_box_pack_start ( GTK_BOX (transaction_form), form_button_part, FALSE, FALSE, 0 );
-
-    /* add a separator between the transaction and button part */
-    separator = gtk_hseparator_new ();
-    gtk_box_pack_start ( GTK_BOX (form_button_part), separator, FALSE, FALSE, 0 );
-
-    /* Hbox containing buttons */
-    hbox_buttons = gtk_hbox_new ( FALSE, 0 );
-    gtk_box_pack_start ( GTK_BOX (form_button_part), hbox_buttons, FALSE, FALSE, 0 );
-
-    hbox_buttons_inner = gtk_hbox_new ( TRUE, 0 );
-    gtk_box_pack_end ( GTK_BOX (hbox_buttons), hbox_buttons_inner, FALSE, FALSE, 0 );
-
-    /* create the check button to recover the children of splits */
-    form_button_recover_split = gtk_check_button_new_with_label ( _("Recover the children"));
-    gtk_box_pack_start ( GTK_BOX (hbox_buttons_inner),
-			 form_button_recover_split,
-			 FALSE, FALSE,
-			 0 );
-
-    /* create the valid/cancel buttons */
-    form_button_valid = gtk_button_new_from_stock (GTK_STOCK_OK);
-    gtk_button_set_relief ( GTK_BUTTON (form_button_valid), GTK_RELIEF_NONE );
-    g_signal_connect ( G_OBJECT (form_button_valid), "clicked",
-		       G_CALLBACK (gsb_form_finish_edition), NULL );
-    gtk_box_pack_end ( GTK_BOX (hbox_buttons_inner), form_button_valid, FALSE, FALSE, 0 );
-
-    form_button_cancel = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
-    gtk_button_set_relief ( GTK_BUTTON (form_button_cancel), GTK_RELIEF_NONE );
-    g_signal_connect ( G_OBJECT (form_button_cancel), "clicked",
-		       G_CALLBACK (gsb_form_escape_form), NULL );
-    gtk_box_pack_end ( GTK_BOX (hbox_buttons_inner), form_button_cancel, FALSE, FALSE, 0 );
-
-    /* Kludge : otherwise, GtkExpander won't give us as many space
+	gsb_form_initialise_transaction_form ( );
+
+	/* the buttons part is a hbox, with the recuperate child split
+	 * on the left and valid/cancel on the right */
+	form_button_part = gtk_vbox_new ( FALSE, 0 );
+	gtk_box_pack_start ( GTK_BOX (transaction_form), form_button_part, FALSE, FALSE, 0 );
+
+	/* add a separator between the transaction and button part */
+	separator = gtk_hseparator_new ();
+	gtk_box_pack_start ( GTK_BOX (form_button_part), separator, FALSE, FALSE, 0 );
+
+	/* Hbox containing buttons */
+	hbox_buttons = gtk_hbox_new ( FALSE, 0 );
+	gtk_box_pack_start ( GTK_BOX (form_button_part), hbox_buttons, FALSE, FALSE, 0 );
+
+	hbox_buttons_inner = gtk_hbox_new ( TRUE, 0 );
+	gtk_box_pack_end ( GTK_BOX (hbox_buttons), hbox_buttons_inner, FALSE, FALSE, 0 );
+
+	/* create the check button to recover the children of splits */
+	form_button_recover_split = gtk_check_button_new_with_label ( _("Recover the children"));
+	gtk_box_pack_start ( GTK_BOX (hbox_buttons_inner),
+			form_button_recover_split,
+			FALSE, FALSE,
+			0 );
+
+	/* create the valid/cancel buttons */
+	form_button_valid = gtk_button_new_from_stock (GTK_STOCK_OK);
+	gtk_button_set_relief ( GTK_BUTTON (form_button_valid), GTK_RELIEF_NONE );
+	g_signal_connect ( G_OBJECT (form_button_valid), "clicked",
+			G_CALLBACK (gsb_form_finish_edition), NULL );
+	gtk_box_pack_end ( GTK_BOX (hbox_buttons_inner), form_button_valid, FALSE, FALSE, 0 );
+
+	form_button_cancel = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
+	gtk_button_set_relief ( GTK_BUTTON (form_button_cancel), GTK_RELIEF_NONE );
+	g_signal_connect ( G_OBJECT (form_button_cancel), "clicked",
+			G_CALLBACK (gsb_form_escape_form), NULL );
+	gtk_box_pack_end ( GTK_BOX (hbox_buttons_inner), form_button_cancel, FALSE, FALSE, 0 );
+
+	/* Kludge : otherwise, GtkExpander won't give us as many space
        as we need. */
-    gtk_widget_set_size_request ( hbox, 2048, -1 );
+	gtk_widget_set_size_request ( hbox, 2048, -1 );
 
-    gtk_widget_show_all ( hbox );
-    gtk_widget_show_all ( transaction_form );
-    gtk_widget_hide ( form_scheduled_part );
+	gtk_widget_show_all ( hbox );
+	gtk_widget_show_all ( transaction_form );
+	gtk_widget_hide ( form_scheduled_part );
 
-    gtk_widget_set_sensitive ( GTK_WIDGET ( form_button_valid ), FALSE );
-    gtk_widget_set_sensitive ( GTK_WIDGET ( form_button_cancel ), FALSE );
+	gtk_widget_set_sensitive ( GTK_WIDGET ( form_button_valid ), FALSE );
+	gtk_widget_set_sensitive ( GTK_WIDGET ( form_button_cancel ), FALSE );
 
-    gsb_form_show ( FALSE );
+	gsb_form_show ( FALSE );
 }
 
 
@@ -366,17 +366,17 @@ void gsb_form_create_widgets ( void )
  * \return FALSE
  * */
 static gboolean gsb_form_size_allocate ( GtkWidget *widget,
-                        GtkAllocation *allocation,
-                        gpointer null )
+		GtkAllocation *allocation,
+		gpointer null )
 {
-    if (gsb_form_is_visible () && !block_size_allocate)
-    {
-	block_size_allocate = TRUE;
-	gsb_transactions_list_set_row_align (-1.0);
-    }
-    else
-	block_size_allocate = FALSE;
-    return FALSE;
+	if (gsb_form_is_visible () && !block_size_allocate)
+	{
+		block_size_allocate = TRUE;
+		gsb_transactions_list_set_row_align (-1.0);
+	}
+	else
+		block_size_allocate = FALSE;
+	return FALSE;
 }
 
 
@@ -391,177 +391,177 @@ static gboolean gsb_form_size_allocate ( GtkWidget *widget,
  * \return FALSE
  * */
 gboolean gsb_form_fill_by_transaction ( gint transaction_number,
-                        gint is_transaction,
-                        gboolean grab_focus )
+		gint is_transaction,
+		gboolean grab_focus )
 {
-    gint mother_number;
-    gint account_number;
-    gint focus_to;
-    gint is_split;
-    GSList *tmp_list;
-
-    devel_debug_int (transaction_number);
-
-    if ( !transaction_number )
-        return FALSE;
-
-    /* get the account */
-    account_number = gsb_data_mix_get_account_number (transaction_number, is_transaction);
-    mother_number = gsb_data_mix_get_mother_transaction_number (transaction_number, is_transaction);
-    is_split = gsb_data_mix_get_split_of_transaction (transaction_number, is_transaction);
-
-    /* if here account number = -1, it's because it's a white line or there were a problem ; 
-     * in all case, get the current account number */
-    if (account_number == -1)
-        account_number = gsb_form_get_account_number ();
-
-    /* show and prepare the form */
-    gsb_form_show ( TRUE );
-
-    if ( !is_transaction )
-    {
-	/* we need to set up the part of scheduler form here because changing the account
-	 * button will change the form */
-    gsb_form_scheduler_set ( transaction_number );
-    }
-
-    /* if the transaction is the white line, we set the date and necessary stuff and go away
-     * for that use the button_press function, so clicking on a form's field or do enter/double click
-     * on white line will do the same */
-    if ( transaction_number == -1 )
-    {
-        GtkWidget *date_entry;
-
-        /* if we can't touch the focus, it's because we just select a transaction, and
-         * for now, select the white line, so keep the form blank */
-        if ( !grab_focus )
-            return FALSE;
-
-        date_entry = gsb_form_widget_get_widget (TRANSACTION_FORM_DATE);
-
-        if ( gsb_form_widget_check_empty (date_entry))
-            /* for now,  transaction_number_in_form is NULL so can call the next function
-             * wich will prepare the form for a new transaction */
-            gsb_form_button_press_event ( date_entry,
-                          NULL,
-                          GINT_TO_POINTER (TRANSACTION_FORM_DATE));
-
-        gtk_editable_select_region ( GTK_EDITABLE (date_entry), 0, -1);
-        gtk_widget_grab_focus ( GTK_WIDGET (date_entry));
-
-        return FALSE;
-    }
-
-    /* set the number of the transaction in the form, can be -2, -3...
-     * for white line split
-     * that must be defined before gsb_form_change_sensitive_buttons
-     * because without that number, others functions cannot get the account
-     * number for an execution of scheduled in the home page
-     * but after gsb_form_show because it will set that value to 0...*/
-    g_object_set_data ( G_OBJECT ( transaction_form ),
+	gint mother_number;
+	gint account_number;
+	gint focus_to;
+	gint is_split;
+	GSList *tmp_list;
+
+	devel_debug_int (transaction_number);
+
+	if ( !transaction_number )
+		return FALSE;
+
+	/* get the account */
+	account_number = gsb_data_mix_get_account_number (transaction_number, is_transaction);
+	mother_number = gsb_data_mix_get_mother_transaction_number (transaction_number, is_transaction);
+	is_split = gsb_data_mix_get_split_of_transaction (transaction_number, is_transaction);
+
+	/* if here account number = -1, it's because it's a white line or there were a problem ;
+	 * in all case, get the current account number */
+	if (account_number == -1)
+		account_number = gsb_form_get_account_number ();
+
+	/* show and prepare the form */
+	gsb_form_show ( TRUE );
+
+	if ( !is_transaction )
+	{
+		/* we need to set up the part of scheduler form here because changing the account
+		 * button will change the form */
+		gsb_form_scheduler_set ( transaction_number );
+	}
+
+	/* if the transaction is the white line, we set the date and necessary stuff and go away
+	 * for that use the button_press function, so clicking on a form's field or do enter/double click
+	 * on white line will do the same */
+	if ( transaction_number == -1 )
+	{
+		GtkWidget *date_entry;
+
+		/* if we can't touch the focus, it's because we just select a transaction, and
+		 * for now, select the white line, so keep the form blank */
+		if ( !grab_focus )
+			return FALSE;
+
+		date_entry = gsb_form_widget_get_widget (TRANSACTION_FORM_DATE);
+
+		if ( gsb_form_widget_check_empty (date_entry))
+			/* for now,  transaction_number_in_form is NULL so can call the next function
+			 * wich will prepare the form for a new transaction */
+			gsb_form_button_press_event ( date_entry,
+					NULL,
+					GINT_TO_POINTER (TRANSACTION_FORM_DATE));
+
+		gtk_editable_select_region ( GTK_EDITABLE (date_entry), 0, -1);
+		gtk_widget_grab_focus ( GTK_WIDGET (date_entry));
+
+		return FALSE;
+	}
+
+	/* set the number of the transaction in the form, can be -2, -3...
+	 * for white line split
+	 * that must be defined before gsb_form_change_sensitive_buttons
+	 * because without that number, others functions cannot get the account
+	 * number for an execution of scheduled in the home page
+	 * but after gsb_form_show because it will set that value to 0...*/
+	g_object_set_data ( G_OBJECT ( transaction_form ),
 			"transaction_number_in_form",
 			GINT_TO_POINTER (transaction_number));
 
-    gsb_form_change_sensitive_buttons (TRUE);
-
-    /* by default, a function before changed all the form from non sensitive to sensitive,
-     * but for split or split child, some widgets need to be unsensitive/hidden */
-    gsb_form_set_sensitive (is_split, mother_number);
-
-    /* fill what is necessary in the form */
-    tmp_list = gsb_form_widget_get_list ();
-
-    while (tmp_list)
-    {
-        struct_element *element;
-
-        element = tmp_list -> data;
-
-        if (mother_number
-            &&
-            transaction_number < 0)
-        {
-            /* we are on a split white line, we fill only few fields
-             * with the element_number of the mother */
-            switch (element -> element_number)
-            {
-            case TRANSACTION_FORM_DATE:
-            case TRANSACTION_FORM_VALUE_DATE:
-            case TRANSACTION_FORM_PARTY:
-            case TRANSACTION_FORM_TYPE:
-            case TRANSACTION_FORM_CHEQUE:
-            case TRANSACTION_FORM_DEVISE:
-            case TRANSACTION_FORM_BANK:
-                gsb_form_fill_element ( element -> element_number,
-                            account_number,
-                            mother_number,
-                            is_transaction );
-                break;
-            }
-        }
-        else
-            /* normal transaction */
-            gsb_form_fill_element ( element -> element_number,
-                        account_number,
-                        transaction_number,
-                        is_transaction );
-
-        tmp_list = tmp_list -> next;
-    }
-
-    /* for a transaction, need to check if marked R, and do some stuff with that */
-    if (is_transaction)
-    {
-        gint contra_transaction_number;
-
-        /* get the contra transaction */
-        contra_transaction_number = gsb_data_transaction_get_contra_transaction_number ( transaction_number );
-
-        /* if the transaction is marked R and splitted, cannot change the amounts */
-        if ( gsb_data_transaction_get_marked_transaction (transaction_number) == OPERATION_RAPPROCHEE
-         && mother_number == 0 )
-        {
-            gtk_widget_set_sensitive ( gsb_form_widget_get_widget (TRANSACTION_FORM_DEBIT), FALSE );
-            gtk_widget_set_sensitive ( gsb_form_widget_get_widget (TRANSACTION_FORM_CREDIT), FALSE );
-        }
-
-        /* if the contra transaction is marked R, cannot change category and amounts */
-        if ( contra_transaction_number > 0
-         &&
-         gsb_data_transaction_get_marked_transaction (contra_transaction_number) == OPERATION_RAPPROCHEE )
-        {
-            gtk_widget_set_sensitive ( gsb_form_widget_get_widget (TRANSACTION_FORM_DEBIT), FALSE );
-            gtk_widget_set_sensitive ( gsb_form_widget_get_widget (TRANSACTION_FORM_CREDIT), FALSE );
-
-            /* if it's a transfer, we cannot change too the category */
-            gtk_widget_set_sensitive ( gsb_form_widget_get_widget (TRANSACTION_FORM_CATEGORY), FALSE );
-        }
-    }
-
-    /* we take focus only if asked */
-    if (grab_focus)
-    {
-        GtkWidget *widget;
-
-        /* the form is full, if it's not a split, we give the focus to the date
-         * else, we give the focus to the first free form element */
-        if (mother_number)
-            focus_to = gsb_form_widget_next_element ( account_number,
-						      TRANSACTION_FORM_DATE,
-						      GSB_RIGHT );
-        else
-            focus_to = TRANSACTION_FORM_DATE;
-
-        widget = gsb_form_widget_get_widget ( focus_to );
-        gtk_editable_select_region ( GTK_EDITABLE ( widget ), 0, -1 );
-        if ( !is_transaction && gtk_widget_is_focus ( widget ) )
-            gsb_form_widget_entry_get_focus ( widget, NULL, GINT_TO_POINTER ( focus_to ) );
-        else
-            gtk_widget_grab_focus ( widget );
-
-    }
-
-    return FALSE;
+	gsb_form_change_sensitive_buttons (TRUE);
+
+	/* by default, a function before changed all the form from non sensitive to sensitive,
+	 * but for split or split child, some widgets need to be unsensitive/hidden */
+	gsb_form_set_sensitive (is_split, mother_number);
+
+	/* fill what is necessary in the form */
+	tmp_list = gsb_form_widget_get_list ();
+
+	while (tmp_list)
+	{
+		struct_element *element;
+
+		element = tmp_list -> data;
+
+		if (mother_number
+				&&
+				transaction_number < 0)
+		{
+			/* we are on a split white line, we fill only few fields
+			 * with the element_number of the mother */
+			switch (element -> element_number)
+			{
+			case TRANSACTION_FORM_DATE:
+			case TRANSACTION_FORM_VALUE_DATE:
+			case TRANSACTION_FORM_PARTY:
+			case TRANSACTION_FORM_TYPE:
+			case TRANSACTION_FORM_CHEQUE:
+			case TRANSACTION_FORM_DEVISE:
+			case TRANSACTION_FORM_BANK:
+				gsb_form_fill_element ( element -> element_number,
+						account_number,
+						mother_number,
+						is_transaction );
+				break;
+			}
+		}
+		else
+			/* normal transaction */
+			gsb_form_fill_element ( element -> element_number,
+					account_number,
+					transaction_number,
+					is_transaction );
+
+		tmp_list = tmp_list -> next;
+	}
+
+	/* for a transaction, need to check if marked R, and do some stuff with that */
+	if (is_transaction)
+	{
+		gint contra_transaction_number;
+
+		/* get the contra transaction */
+		contra_transaction_number = gsb_data_transaction_get_contra_transaction_number ( transaction_number );
+
+		/* if the transaction is marked R and splitted, cannot change the amounts */
+		if ( gsb_data_transaction_get_marked_transaction (transaction_number) == OPERATION_RAPPROCHEE
+				&& mother_number == 0 )
+		{
+			gtk_widget_set_sensitive ( gsb_form_widget_get_widget (TRANSACTION_FORM_DEBIT), FALSE );
+			gtk_widget_set_sensitive ( gsb_form_widget_get_widget (TRANSACTION_FORM_CREDIT), FALSE );
+		}
+
+		/* if the contra transaction is marked R, cannot change category and amounts */
+		if ( contra_transaction_number > 0
+				&&
+				gsb_data_transaction_get_marked_transaction (contra_transaction_number) == OPERATION_RAPPROCHEE )
+		{
+			gtk_widget_set_sensitive ( gsb_form_widget_get_widget (TRANSACTION_FORM_DEBIT), FALSE );
+			gtk_widget_set_sensitive ( gsb_form_widget_get_widget (TRANSACTION_FORM_CREDIT), FALSE );
+
+			/* if it's a transfer, we cannot change too the category */
+			gtk_widget_set_sensitive ( gsb_form_widget_get_widget (TRANSACTION_FORM_CATEGORY), FALSE );
+		}
+	}
+
+	/* we take focus only if asked */
+	if (grab_focus)
+	{
+		GtkWidget *widget;
+
+		/* the form is full, if it's not a split, we give the focus to the date
+		 * else, we give the focus to the first free form element */
+		if (mother_number)
+			focus_to = gsb_form_widget_next_element ( account_number,
+					TRANSACTION_FORM_DATE,
+					GSB_RIGHT );
+		else
+			focus_to = TRANSACTION_FORM_DATE;
+
+		widget = gsb_form_widget_get_widget ( focus_to );
+		gtk_editable_select_region ( GTK_EDITABLE ( widget ), 0, -1 );
+		if ( !is_transaction && gtk_widget_is_focus ( widget ) )
+			gsb_form_widget_entry_get_focus ( widget, NULL, GINT_TO_POINTER ( focus_to ) );
+		else
+			gtk_widget_grab_focus ( widget );
+
+	}
+
+	return FALSE;
 }
 
 
@@ -576,61 +576,61 @@ gboolean gsb_form_fill_by_transaction ( gint transaction_number,
  * \return FALSE
  * */
 gboolean gsb_form_set_sensitive ( gboolean split,
-                        gboolean split_child)
+		gboolean split_child)
 {
-    GSList *tmp_list;
+	GSList *tmp_list;
 
-    /* for now, come here only for split or split child */
-    if (!split
-	&&
-	!split_child)
-	return FALSE;
+	/* for now, come here only for split or split child */
+	if (!split
+			&&
+			!split_child)
+		return FALSE;
 
-    tmp_list = gsb_form_widget_get_list ();
+	tmp_list = gsb_form_widget_get_list ();
 
-    while (tmp_list)
-    {
-	struct_element *element;
+	while (tmp_list)
+	{
+		struct_element *element;
 
-	element = tmp_list -> data;
+		element = tmp_list -> data;
 
-	/* for a split, hide the exercice and the budget */
-	if (split)
-	{
-	    switch (element -> element_number)
-	    {
-		case TRANSACTION_FORM_BUDGET:
-		case TRANSACTION_FORM_VOUCHER:
-		    gtk_widget_set_sensitive ( element -> element_widget,
-					       FALSE );
-		    break;
-	    }
-	}
+		/* for a split, hide the exercice and the budget */
+		if (split)
+		{
+			switch (element -> element_number)
+			{
+			case TRANSACTION_FORM_BUDGET:
+			case TRANSACTION_FORM_VOUCHER:
+				gtk_widget_set_sensitive ( element -> element_widget,
+						FALSE );
+				break;
+			}
+		}
 
-	/* for a child of split, cannot change the date, payee... */
-	if ( split_child )
-	{
-	    /* mixed widgets for transactions and scheduled transactions */
-	    switch (element -> element_number)
-	    {
-		case TRANSACTION_FORM_DATE:
-		case TRANSACTION_FORM_VALUE_DATE:
-		case TRANSACTION_FORM_PARTY:
-		case TRANSACTION_FORM_DEVISE:
-		case TRANSACTION_FORM_CHANGE:
-		case TRANSACTION_FORM_TYPE:
-		case TRANSACTION_FORM_CHEQUE:
-		case TRANSACTION_FORM_BANK:
-		    gtk_widget_set_sensitive ( element -> element_widget,
-					       FALSE );
-		    break;
-	    }
-	    /* specific widgets for scheduled transactions */
-	    gtk_widget_hide (gsb_form_get_scheduler_part ());
+		/* for a child of split, cannot change the date, payee... */
+		if ( split_child )
+		{
+			/* mixed widgets for transactions and scheduled transactions */
+			switch (element -> element_number)
+			{
+			case TRANSACTION_FORM_DATE:
+			case TRANSACTION_FORM_VALUE_DATE:
+			case TRANSACTION_FORM_PARTY:
+			case TRANSACTION_FORM_DEVISE:
+			case TRANSACTION_FORM_CHANGE:
+			case TRANSACTION_FORM_TYPE:
+			case TRANSACTION_FORM_CHEQUE:
+			case TRANSACTION_FORM_BANK:
+				gtk_widget_set_sensitive ( element -> element_widget,
+						FALSE );
+				break;
+			}
+			/* specific widgets for scheduled transactions */
+			gtk_widget_hide (gsb_form_get_scheduler_part ());
+		}
+		tmp_list = tmp_list -> next;
 	}
-	tmp_list = tmp_list -> next;
-    }
-    return FALSE;
+	return FALSE;
 }
 
 
@@ -647,298 +647,298 @@ gboolean gsb_form_set_sensitive ( gboolean split,
  * \return
  * */
 void gsb_form_fill_element ( gint element_number,
-                        gint account_number,
-                        gint transaction_number,
-                        gboolean is_transaction )
+		gint account_number,
+		gint transaction_number,
+		gboolean is_transaction )
 {
-    GtkWidget *widget;
-    GtkWidget *tmp_widget;
-    gchar *char_tmp;
-    gint number;
+	GtkWidget *widget;
+	GtkWidget *tmp_widget;
+	gchar *char_tmp;
+	gint number;
 
-    widget = gsb_form_widget_get_widget (element_number);
-    if (!widget)
-	return;
+	widget = gsb_form_widget_get_widget (element_number);
+	if (!widget)
+		return;
 
-    switch (element_number)
-    {
+	switch (element_number)
+	{
 	case TRANSACTION_FORM_OP_NB:
-	    gtk_label_set_text ( GTK_LABEL ( widget ),
-				 char_tmp = utils_str_itoa (transaction_number));
-	    g_free (char_tmp);
-	    break;
+		gtk_label_set_text ( GTK_LABEL ( widget ),
+				char_tmp = utils_str_itoa (transaction_number));
+		g_free (char_tmp);
+		break;
 
 	case TRANSACTION_FORM_DATE:
-	    gsb_form_entry_get_focus (widget);
-	    gsb_calendar_entry_set_date ( widget, gsb_data_mix_get_date (transaction_number, is_transaction));
-	    break;
+		gsb_form_entry_get_focus (widget);
+		gsb_calendar_entry_set_date ( widget, gsb_data_mix_get_date (transaction_number, is_transaction));
+		break;
 
 	case TRANSACTION_FORM_VALUE_DATE:
-	    /* value_date only for transactions */
-	    if ( is_transaction
-		 &&
-		 gsb_data_transaction_get_value_date (transaction_number))
-	    {
-		gsb_form_entry_get_focus (widget);
-		gsb_calendar_entry_set_date ( widget, gsb_data_transaction_get_value_date (transaction_number));
-	    }
-	    break;
+		/* value_date only for transactions */
+		if ( is_transaction
+				&&
+				gsb_data_transaction_get_value_date (transaction_number))
+		{
+			gsb_form_entry_get_focus (widget);
+			gsb_calendar_entry_set_date ( widget, gsb_data_transaction_get_value_date (transaction_number));
+		}
+		break;
 
 	case TRANSACTION_FORM_EXERCICE:
-	    gsb_fyear_set_combobox_history ( widget,
-					     gsb_data_mix_get_financial_year_number (transaction_number, is_transaction));
-	    break;
+		gsb_fyear_set_combobox_history ( widget,
+				gsb_data_mix_get_financial_year_number (transaction_number, is_transaction));
+		break;
 
 	case TRANSACTION_FORM_PARTY:
-	    if ( gsb_data_mix_get_party_number (transaction_number, is_transaction))
-	    {
-		gsb_form_entry_get_focus (widget);
-		gtk_combofix_set_text ( GTK_COMBOFIX ( widget ),
+		if ( gsb_data_mix_get_party_number (transaction_number, is_transaction))
+		{
+			gsb_form_entry_get_focus (widget);
+			gtk_combofix_set_text ( GTK_COMBOFIX ( widget ),
 					gsb_data_payee_get_name ( gsb_data_mix_get_party_number (transaction_number, is_transaction), TRUE ));
-	    }
-	    break;
+		}
+		break;
 
 	case TRANSACTION_FORM_DEBIT:
-	    if (gsb_data_mix_get_amount (transaction_number, is_transaction).mantissa < 0)
-	    {
-		char_tmp = utils_real_get_string_with_currency (gsb_real_abs (gsb_data_mix_get_amount (transaction_number, is_transaction)),
-							      gsb_data_mix_get_currency_number (transaction_number, is_transaction),
-							      FALSE );
+		if (gsb_data_mix_get_amount (transaction_number, is_transaction).mantissa < 0)
+		{
+			char_tmp = utils_real_get_string_with_currency (gsb_real_abs (gsb_data_mix_get_amount (transaction_number, is_transaction)),
+					gsb_data_mix_get_currency_number (transaction_number, is_transaction),
+					FALSE );
 
-		gsb_form_entry_get_focus (widget);
-		gtk_entry_set_text ( GTK_ENTRY ( widget ),
-				     char_tmp );
-		g_free (char_tmp);
-	    }
-	    break;
+			gsb_form_entry_get_focus (widget);
+			gtk_entry_set_text ( GTK_ENTRY ( widget ),
+					char_tmp );
+			g_free (char_tmp);
+		}
+		break;
 
 	case TRANSACTION_FORM_CREDIT:
-	    if (gsb_data_mix_get_amount (transaction_number, is_transaction).mantissa >= 0)
-	    {
-		char_tmp = utils_real_get_string_with_currency (gsb_data_mix_get_amount (transaction_number, is_transaction),
-							      gsb_data_mix_get_currency_number (transaction_number, is_transaction),
-							      FALSE );
+		if (gsb_data_mix_get_amount (transaction_number, is_transaction).mantissa >= 0)
+		{
+			char_tmp = utils_real_get_string_with_currency (gsb_data_mix_get_amount (transaction_number, is_transaction),
+					gsb_data_mix_get_currency_number (transaction_number, is_transaction),
+					FALSE );
 
-		gsb_form_entry_get_focus (widget);
-		gtk_entry_set_text ( GTK_ENTRY ( widget ),
-				     char_tmp );
-		g_free (char_tmp);
-	    }
-	    break;
+			gsb_form_entry_get_focus (widget);
+			gtk_entry_set_text ( GTK_ENTRY ( widget ),
+					char_tmp );
+			g_free (char_tmp);
+		}
+		break;
 
 	case TRANSACTION_FORM_CATEGORY:
-	    if (gsb_data_mix_get_split_of_transaction (transaction_number, is_transaction))
-	    {
-		/* it's a split of transaction */
-		gsb_form_entry_get_focus (widget);
-		gtk_combofix_set_text ( GTK_COMBOFIX (widget),
-					_("Split of transaction") );
-	    }
-	    else
-	    {
-        gint contra_transaction_number;
-
-		contra_transaction_number = gsb_data_mix_get_transaction_number_transfer (transaction_number, is_transaction);
-		switch (contra_transaction_number)
+		if (gsb_data_mix_get_split_of_transaction (transaction_number, is_transaction))
 		{
-		    case -1:
-			/* transfer to deleted account, not possible with scheduled */
-			gsb_form_entry_get_focus (widget);
-			gtk_combofix_set_text ( GTK_COMBOFIX ( widget ),
-						_("Transfer : Deleted account") );
-			break;
-		    case 0:
-			/* normal category */
-			char_tmp = gsb_data_category_get_name ( gsb_data_mix_get_category_number (transaction_number, is_transaction),
-								gsb_data_mix_get_sub_category_number (transaction_number, is_transaction),
-								NULL );
-			if (char_tmp)
-			{
-			    gsb_form_entry_get_focus (widget);
-			    gtk_combofix_set_text ( GTK_COMBOFIX ( widget ),
-						    char_tmp );
-			    g_free (char_tmp);
-			}
-			break;
-		    default:
-			/* transfer */
+			/* it's a split of transaction */
 			gsb_form_entry_get_focus (widget);
 			gtk_combofix_set_text ( GTK_COMBOFIX (widget),
+					_("Split of transaction") );
+		}
+		else
+		{
+			gint contra_transaction_number;
+
+			contra_transaction_number = gsb_data_mix_get_transaction_number_transfer (transaction_number, is_transaction);
+			switch (contra_transaction_number)
+			{
+			case -1:
+				/* transfer to deleted account, not possible with scheduled */
+				gsb_form_entry_get_focus (widget);
+				gtk_combofix_set_text ( GTK_COMBOFIX ( widget ),
+						_("Transfer : Deleted account") );
+				break;
+			case 0:
+				/* normal category */
+				char_tmp = gsb_data_category_get_name ( gsb_data_mix_get_category_number (transaction_number, is_transaction),
+						gsb_data_mix_get_sub_category_number (transaction_number, is_transaction),
+						NULL );
+				if (char_tmp)
+				{
+					gsb_form_entry_get_focus (widget);
+					gtk_combofix_set_text ( GTK_COMBOFIX ( widget ),
+							char_tmp );
+					g_free (char_tmp);
+				}
+				break;
+			default:
+				/* transfer */
+				gsb_form_entry_get_focus (widget);
+				gtk_combofix_set_text ( GTK_COMBOFIX (widget),
 						char_tmp = g_strconcat ( _("Transfer : "),
-									 gsb_data_account_get_name (gsb_data_mix_get_account_number_transfer (transaction_number, is_transaction)), NULL ));
-			g_free (char_tmp);
+								gsb_data_account_get_name (gsb_data_mix_get_account_number_transfer (transaction_number, is_transaction)), NULL ));
+				g_free (char_tmp);
+			}
 		}
-	    }
-	    break;
+		break;
 
 	case TRANSACTION_FORM_BUDGET:
-	    char_tmp = gsb_data_budget_get_name ( gsb_data_mix_get_budgetary_number (transaction_number, is_transaction),
-						  gsb_data_mix_get_sub_budgetary_number (transaction_number, is_transaction),
-						  NULL );
-	    if (char_tmp)
-	    {
-		gsb_form_entry_get_focus (widget);
-		gtk_combofix_set_text ( GTK_COMBOFIX ( widget ),
+		char_tmp = gsb_data_budget_get_name ( gsb_data_mix_get_budgetary_number (transaction_number, is_transaction),
+				gsb_data_mix_get_sub_budgetary_number (transaction_number, is_transaction),
+				NULL );
+		if (char_tmp)
+		{
+			gsb_form_entry_get_focus (widget);
+			gtk_combofix_set_text ( GTK_COMBOFIX ( widget ),
 					char_tmp );
-		g_free (char_tmp);
-	    }
-	    break;
+			g_free (char_tmp);
+		}
+		break;
 
 	case TRANSACTION_FORM_NOTES:
-	    if (gsb_data_mix_get_notes (transaction_number, is_transaction))
-	    {
-		gsb_form_entry_get_focus (widget);
-		gtk_entry_set_text ( GTK_ENTRY ( widget ),
-				     gsb_data_mix_get_notes (transaction_number, is_transaction));
-	    }
-	    break;
+		if (gsb_data_mix_get_notes (transaction_number, is_transaction))
+		{
+			gsb_form_entry_get_focus (widget);
+			gtk_entry_set_text ( GTK_ENTRY ( widget ),
+					gsb_data_mix_get_notes (transaction_number, is_transaction));
+		}
+		break;
 
 	case TRANSACTION_FORM_TYPE:
-	    /* one small thing here : normally if the transaction is a debit, we set the
-	     * negative payment method. but the problem : if we are on a child of split,
-	     * that child contains the payment method of the mother, and if the child has not
-	     * the same sign of the mother (rare but possible), grisbi will not find the good payment
-	     * method for that child because it's not on the good sign... so for a child of split,
-	     * we set the payment box of the mother */
-	    number = gsb_data_mix_get_mother_transaction_number (transaction_number, is_transaction);
-	    if (!number)
-		/* it's not a child split, so set number to transaction_number */
-		number = transaction_number;
-
-	    /* ok, now number contains either the transaction_number, either the mother transaction number,
-	     * we can check the sign with it */
-	    if (gsb_data_mix_get_amount (number, is_transaction).mantissa < 0)
-        {
-            if ( gsb_payment_method_get_combo_sign ( widget ) != GSB_PAYMENT_DEBIT
-             ||
-             ( gsb_payment_method_get_selected_number ( widget )
-             !=
-             gsb_data_account_get_default_debit ( account_number ) ) )
-                gsb_payment_method_create_combo_list ( widget,
-                                GSB_PAYMENT_DEBIT,
-                                account_number, 0, FALSE );
-        }
-	    else
-        {
-            if ( gsb_payment_method_get_combo_sign ( widget ) != GSB_PAYMENT_CREDIT
-             ||
-             ( gsb_payment_method_get_selected_number ( widget )
-             !=
-             gsb_data_account_get_default_debit ( account_number ) ) )
-                gsb_payment_method_create_combo_list ( widget,
-                                GSB_PAYMENT_CREDIT,
-                                account_number, 0, FALSE );
-        }
-
-	    /* don't show the cheque entry for a child of split */
-        tmp_widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_CHEQUE );
-	    if ( gtk_widget_get_visible ( widget ) )
-	    {
-            gboolean check_entry = FALSE;
-
-            number = gsb_data_mix_get_method_of_payment_number (transaction_number, is_transaction);
-            if ( transaction_number == - 1 )
-                check_entry = TRUE;
-
-            /* we show the cheque entry only for transactions */
-            if (gsb_payment_method_set_combobox_history ( widget, number, check_entry )
-             &&
-             gsb_data_payment_get_show_entry (number)
-             &&
-             is_transaction
-              &&
-             !gsb_data_mix_get_mother_transaction_number (transaction_number, is_transaction) )
-            {
-                gsb_form_entry_get_focus ( tmp_widget );
-                if ( gsb_data_transaction_get_method_of_payment_content ( transaction_number ) )
-                    gtk_entry_set_text ( GTK_ENTRY ( tmp_widget ),
-                            gsb_data_transaction_get_method_of_payment_content ( transaction_number) );
-
-                gtk_widget_show ( tmp_widget );
-            }
-            else
-                gtk_widget_hide ( tmp_widget );
-	    }
-	    else
-            gtk_widget_hide ( tmp_widget );
-	    break;
+		/* one small thing here : normally if the transaction is a debit, we set the
+		 * negative payment method. but the problem : if we are on a child of split,
+		 * that child contains the payment method of the mother, and if the child has not
+		 * the same sign of the mother (rare but possible), grisbi will not find the good payment
+		 * method for that child because it's not on the good sign... so for a child of split,
+		 * we set the payment box of the mother */
+		number = gsb_data_mix_get_mother_transaction_number (transaction_number, is_transaction);
+		if (!number)
+			/* it's not a child split, so set number to transaction_number */
+			number = transaction_number;
+
+		/* ok, now number contains either the transaction_number, either the mother transaction number,
+		 * we can check the sign with it */
+		if (gsb_data_mix_get_amount (number, is_transaction).mantissa < 0)
+		{
+			if ( gsb_payment_method_get_combo_sign ( widget ) != GSB_PAYMENT_DEBIT
+					||
+					( gsb_payment_method_get_selected_number ( widget )
+							!=
+									gsb_data_account_get_default_debit ( account_number ) ) )
+				gsb_payment_method_create_combo_list ( widget,
+						GSB_PAYMENT_DEBIT,
+						account_number, 0, FALSE );
+		}
+		else
+		{
+			if ( gsb_payment_method_get_combo_sign ( widget ) != GSB_PAYMENT_CREDIT
+					||
+					( gsb_payment_method_get_selected_number ( widget )
+							!=
+									gsb_data_account_get_default_debit ( account_number ) ) )
+				gsb_payment_method_create_combo_list ( widget,
+						GSB_PAYMENT_CREDIT,
+						account_number, 0, FALSE );
+		}
+
+		/* don't show the cheque entry for a child of split */
+		tmp_widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_CHEQUE );
+		if ( gtk_widget_get_visible ( widget ) )
+		{
+			gboolean check_entry = FALSE;
+
+			number = gsb_data_mix_get_method_of_payment_number (transaction_number, is_transaction);
+			if ( transaction_number == - 1 )
+				check_entry = TRUE;
+
+			/* we show the cheque entry only for transactions */
+			if (gsb_payment_method_set_combobox_history ( widget, number, check_entry )
+					&&
+					gsb_data_payment_get_show_entry (number)
+					&&
+					is_transaction
+					&&
+					!gsb_data_mix_get_mother_transaction_number (transaction_number, is_transaction) )
+			{
+				gsb_form_entry_get_focus ( tmp_widget );
+				if ( gsb_data_transaction_get_method_of_payment_content ( transaction_number ) )
+					gtk_entry_set_text ( GTK_ENTRY ( tmp_widget ),
+							gsb_data_transaction_get_method_of_payment_content ( transaction_number) );
+
+				gtk_widget_show ( tmp_widget );
+			}
+			else
+				gtk_widget_hide ( tmp_widget );
+		}
+		else
+			gtk_widget_hide ( tmp_widget );
+		break;
 
 	case TRANSACTION_FORM_DEVISE:
-	    number = gsb_data_mix_get_currency_number (transaction_number, is_transaction);
-
-	    gsb_currency_set_combobox_history ( widget, number);
-        if ( transaction_number < 1 )
-            gsb_currency_init_exchanges ( );
-
-	    if (is_transaction)
-        {
-            if ( gsb_data_transaction_get_marked_transaction ( transaction_number ) == OPERATION_RAPPROCHEE )
-            {
-                gtk_widget_set_sensitive ( widget, FALSE );
-                gtk_widget_hide ( gsb_form_widget_get_widget (
-                            TRANSACTION_FORM_CHANGE ) );
-            }
-        }
-	    break;
+		number = gsb_data_mix_get_currency_number (transaction_number, is_transaction);
+
+		gsb_currency_set_combobox_history ( widget, number);
+		if ( transaction_number < 1 )
+			gsb_currency_init_exchanges ( );
+
+		if (is_transaction)
+		{
+			if ( gsb_data_transaction_get_marked_transaction ( transaction_number ) == OPERATION_RAPPROCHEE )
+			{
+				gtk_widget_set_sensitive ( widget, FALSE );
+				gtk_widget_hide ( gsb_form_widget_get_widget (
+						TRANSACTION_FORM_CHANGE ) );
+			}
+		}
+		break;
 
 	case TRANSACTION_FORM_BANK:
-	    if ( gsb_data_mix_get_bank_references (transaction_number, is_transaction))
-	    {
-		gsb_form_entry_get_focus (widget);
-		gtk_entry_set_text ( GTK_ENTRY ( widget ),
-				     gsb_data_mix_get_bank_references (transaction_number, is_transaction));
-	    }
-	    break;
+		if ( gsb_data_mix_get_bank_references (transaction_number, is_transaction))
+		{
+			gsb_form_entry_get_focus (widget);
+			gtk_entry_set_text ( GTK_ENTRY ( widget ),
+					gsb_data_mix_get_bank_references (transaction_number, is_transaction));
+		}
+		break;
 
 	case TRANSACTION_FORM_VOUCHER:
-	    if ( gsb_data_mix_get_voucher (transaction_number, is_transaction))
-	    {
-		gsb_form_entry_get_focus (widget);
-		gtk_entry_set_text ( GTK_ENTRY ( widget ),
-				     gsb_data_mix_get_voucher (transaction_number, is_transaction));
-	    }
-	    break;
+		if ( gsb_data_mix_get_voucher (transaction_number, is_transaction))
+		{
+			gsb_form_entry_get_focus (widget);
+			gtk_entry_set_text ( GTK_ENTRY ( widget ),
+					gsb_data_mix_get_voucher (transaction_number, is_transaction));
+		}
+		break;
 
 	case TRANSACTION_FORM_CONTRA:
-	    if (gsb_data_mix_get_transaction_number_transfer (transaction_number, is_transaction) > 0)
-	    {
-            number = gsb_data_mix_get_account_number_transfer (transaction_number, is_transaction);
-
-            if ( gsb_data_mix_get_amount (transaction_number, is_transaction).mantissa < 0 )
-                gsb_payment_method_create_combo_list ( widget,
-							   GSB_PAYMENT_CREDIT,
-							   number, 0, TRUE );
-            else
-                gsb_payment_method_create_combo_list ( widget,
-							   GSB_PAYMENT_DEBIT,
-							   number, 0, TRUE );
-
-            if (gtk_widget_get_visible (widget))
-            {
-                gint method;
-
-                if (is_transaction)
-                    method = gsb_data_transaction_get_method_of_payment_number (
-                                gsb_data_transaction_get_contra_transaction_number (transaction_number));
-                else
-                    method = gsb_data_scheduled_get_contra_method_of_payment_number (transaction_number);
-
-                gsb_payment_method_set_combobox_history ( widget, method, FALSE );
-            }
-	    }
-        else
-            gtk_widget_hide ( widget );
-	    break;
+		if (gsb_data_mix_get_transaction_number_transfer (transaction_number, is_transaction) > 0)
+		{
+			number = gsb_data_mix_get_account_number_transfer (transaction_number, is_transaction);
+
+			if ( gsb_data_mix_get_amount (transaction_number, is_transaction).mantissa < 0 )
+				gsb_payment_method_create_combo_list ( widget,
+						GSB_PAYMENT_CREDIT,
+						number, 0, TRUE );
+			else
+				gsb_payment_method_create_combo_list ( widget,
+						GSB_PAYMENT_DEBIT,
+						number, 0, TRUE );
+
+			if (gtk_widget_get_visible (widget))
+			{
+				gint method;
+
+				if (is_transaction)
+					method = gsb_data_transaction_get_method_of_payment_number (
+							gsb_data_transaction_get_contra_transaction_number (transaction_number));
+				else
+					method = gsb_data_scheduled_get_contra_method_of_payment_number (transaction_number);
+
+				gsb_payment_method_set_combobox_history ( widget, method, FALSE );
+			}
+		}
+		else
+			gtk_widget_hide ( widget );
+		break;
 
 	case TRANSACTION_FORM_MODE:
-	    if ( gsb_data_mix_get_automatic_transaction (transaction_number, is_transaction))
-		gtk_label_set_text ( GTK_LABEL ( widget ),
-				     _("Auto"));
-	    else
-		gtk_label_set_text ( GTK_LABEL ( widget ),
-				     _("Manual"));
-	    break;
-    }
+		if ( gsb_data_mix_get_automatic_transaction (transaction_number, is_transaction))
+			gtk_label_set_text ( GTK_LABEL ( widget ),
+					_("Auto"));
+		else
+			gtk_label_set_text ( GTK_LABEL ( widget ),
+					_("Manual"));
+		break;
+	}
 }
 
 
@@ -951,21 +951,21 @@ void gsb_form_fill_element ( gint element_number,
  * return FALSE
  * */
 gboolean gsb_form_set_expander_visible ( gboolean visible,
-                        gboolean transactions_list )
+		gboolean transactions_list )
 {
-    if ( visible )
-    {
-	gtk_widget_show (form_expander);
+	if ( visible )
+	{
+		gtk_widget_show (form_expander);
 
-	if (transactions_list)
-	    gtk_widget_show (label_last_statement);
+		if (transactions_list)
+			gtk_widget_show (label_last_statement);
+		else
+			gtk_widget_hide (label_last_statement);
+	}
 	else
-	    gtk_widget_hide (label_last_statement);
-    }
-    else
-	gtk_widget_hide (form_expander);
+		gtk_widget_hide (form_expander);
 
-    return FALSE;
+	return FALSE;
 }
 
 
@@ -980,10 +980,10 @@ gboolean gsb_form_set_expander_visible ( gboolean visible,
  * */
 gboolean gsb_form_switch_expander ( void )
 {
-    gtk_expander_set_expanded ( GTK_EXPANDER (form_expander),
-				!gsb_form_is_visible ());
+	gtk_expander_set_expanded ( GTK_EXPANDER (form_expander),
+			!gsb_form_is_visible ());
 
-    return FALSE;
+	return FALSE;
 }
 
 
@@ -997,33 +997,33 @@ gboolean gsb_form_switch_expander ( void )
  * \return FALSE
  * */
 gboolean gsb_form_activate_expander ( GtkWidget *expander,
-                        gpointer null )
+		gpointer null )
 {
-    devel_debug (NULL);
-
-    if ( gtk_expander_get_expanded (GTK_EXPANDER (expander)))
-    {
-        GtkWidget *date_entry;
-
-        gsb_form_show ( TRUE );
-        etat.formulaire_toujours_affiche = TRUE;
-        gsb_form_widget_set_focus ( TRANSACTION_FORM_DATE );
-        date_entry = gsb_form_widget_get_widget ( TRANSACTION_FORM_DATE );
-        gsb_form_widget_set_empty ( date_entry, TRUE );
-        gsb_form_button_press_event ( date_entry,
-                        NULL,
-                        GINT_TO_POINTER ( TRANSACTION_FORM_DATE ) );
-        gtk_widget_grab_focus ( GTK_WIDGET ( date_entry ) );
-        gtk_editable_set_position (GTK_EDITABLE ( date_entry ), -1 );
-    }
-    else
-    {
-	gsb_form_show ( FALSE );
-	etat.formulaire_toujours_affiche = FALSE;
-    }
-    gsb_menu_update_view_menu ( gsb_gui_navigation_get_current_account () );
+	devel_debug (NULL);
+
+	if ( gtk_expander_get_expanded (GTK_EXPANDER (expander)))
+	{
+		GtkWidget *date_entry;
+
+		gsb_form_show ( TRUE );
+		etat.formulaire_toujours_affiche = TRUE;
+		gsb_form_widget_set_focus ( TRANSACTION_FORM_DATE );
+		date_entry = gsb_form_widget_get_widget ( TRANSACTION_FORM_DATE );
+		gsb_form_widget_set_empty ( date_entry, TRUE );
+		gsb_form_button_press_event ( date_entry,
+				NULL,
+				GINT_TO_POINTER ( TRANSACTION_FORM_DATE ) );
+		gtk_widget_grab_focus ( GTK_WIDGET ( date_entry ) );
+		gtk_editable_set_position (GTK_EDITABLE ( date_entry ), -1 );
+	}
+	else
+	{
+		gsb_form_show ( FALSE );
+		etat.formulaire_toujours_affiche = FALSE;
+	}
+	gsb_menu_update_view_menu ( gsb_gui_navigation_get_current_account () );
 
-    return FALSE;
+	return FALSE;
 }
 
 
@@ -1039,36 +1039,37 @@ gboolean gsb_form_activate_expander ( GtkWidget *expander,
  * */
 gboolean gsb_form_show ( gboolean show )
 {
-    gint origin;
+	gint origin;
 
-    devel_debug_int (show);
+	devel_debug_int (show);
 
-    origin = gsb_form_get_origin ();
+	origin = gsb_form_get_origin ();
 
-    /* show or hide the scheduler part */
-    switch (origin)
-    {
+	/* show or hide the scheduler part */
+	switch (origin)
+	{
 	case ORIGIN_VALUE_OTHER:
 	case ORIGIN_VALUE_HOME:
-	    return FALSE;
-	    break;
+		return FALSE;
+		break;
 
 	case ORIGIN_VALUE_SCHEDULED:
-	    gsb_form_scheduler_set_frequency ( 2 );
-	    gtk_widget_show ( form_scheduled_part );
-	    break;
+		gsb_form_scheduler_set_frequency ( 2 );
+		gtk_widget_show ( form_scheduled_part );
+		break;
 
 	default:
-	    gtk_widget_hide ( form_scheduled_part );
-    }
+		gtk_widget_hide ( form_scheduled_part );
+		break;
+	}
 
-    gsb_form_fill_from_account ( origin );
-    gtk_widget_show ( form_transaction_part );
+	gsb_form_fill_from_account ( origin );
+	gtk_widget_show ( form_transaction_part );
 
-    if ( ! gsb_form_is_visible ( ) && show )
-        gtk_expander_set_expanded (GTK_EXPANDER (form_expander), TRUE );
+	if ( ! gsb_form_is_visible ( ) && show )
+		gtk_expander_set_expanded (GTK_EXPANDER (form_expander), TRUE );
 
-    return FALSE;
+	return FALSE;
 }
 
 
@@ -1080,7 +1081,7 @@ gboolean gsb_form_show ( gboolean show )
  */
 gboolean gsb_form_is_visible ( void )
 {
-    return gtk_expander_get_expanded ( GTK_EXPANDER ( form_expander ) );
+	return gtk_expander_get_expanded ( GTK_EXPANDER ( form_expander ) );
 }
 
 
@@ -1096,8 +1097,8 @@ gboolean gsb_form_is_visible ( void )
  * */
 gboolean gsb_form_hide ( void )
 {
-    gsb_form_escape_form ();
-    return FALSE;
+	gsb_form_escape_form ();
+	return FALSE;
 }
 
 
@@ -1113,42 +1114,43 @@ gboolean gsb_form_hide ( void )
  * */
 gint gsb_form_get_account_number ( void )
 {
-    gint account_number;
-    gint origin;
+	gint account_number;
+	gint origin;
 
-    origin = gsb_form_get_origin ();
+	origin = gsb_form_get_origin ();
 
-    switch (origin)
-    {
+	switch (origin)
+	{
 	case ORIGIN_VALUE_OTHER:
-	    return -2;
-	    break;
+		return -2;
+		break;
 
 	case ORIGIN_VALUE_HOME:
-	    /* we are on the home page, we need to check if the form is showed,
-	     * if yes, we get the account number of the scheduled showed in that form */
-	    if ( transaction_form && gtk_widget_get_visible (transaction_form))
-	    {
-		gint scheduled_number;
-
-		scheduled_number = GPOINTER_TO_INT ( g_object_get_data ( G_OBJECT (transaction_form),
-									 "transaction_number_in_form" ));
-		if (!scheduled_number)
-		    return -2;
-		account_number = gsb_data_scheduled_get_account_number (scheduled_number);
-	    }
-	    else
-		return -2;
-	    break;
+		/* we are on the home page, we need to check if the form is showed,
+		 * if yes, we get the account number of the scheduled showed in that form */
+		if ( transaction_form && gtk_widget_get_visible (transaction_form))
+		{
+			gint scheduled_number;
+
+			scheduled_number = GPOINTER_TO_INT ( g_object_get_data ( G_OBJECT (transaction_form),
+					"transaction_number_in_form" ));
+			if (!scheduled_number)
+				return -2;
+			account_number = gsb_data_scheduled_get_account_number (scheduled_number);
+		}
+		else
+			return -2;
+		break;
 
 	case ORIGIN_VALUE_SCHEDULED:
-	    account_number = gsb_form_scheduler_get_account ();
-	    break;
-	    
+		account_number = gsb_form_scheduler_get_account ();
+		break;
+
 	default:
-	    account_number = origin;
-    }
-    return account_number;
+		account_number = origin;
+		break;
+	}
+	return account_number;
 }
 
 
@@ -1166,26 +1168,26 @@ gint gsb_form_get_account_number ( void )
  *  */
 gint gsb_form_get_origin ( void )
 {
-    gint account_number;
+	gint account_number;
 
-    switch (gsb_gui_navigation_get_current_page())
-    {
+	switch (gsb_gui_navigation_get_current_page())
+	{
 	case GSB_ACCOUNT_PAGE:
-	    account_number = gsb_gui_navigation_get_current_account ();
+		account_number = gsb_gui_navigation_get_current_account ();
 
-	    if ( account_number != -1)
-		return account_number;
-	    break;
+		if ( account_number != -1)
+			return account_number;
+		break;
 
 	case GSB_SCHEDULER_PAGE:
-	    return ORIGIN_VALUE_SCHEDULED;
-	    break;
+		return ORIGIN_VALUE_SCHEDULED;
+		break;
 
 	case GSB_HOME_PAGE:
-	    return ORIGIN_VALUE_HOME;
-	    break;
-    }
-    return ORIGIN_VALUE_OTHER;
+		return ORIGIN_VALUE_HOME;
+		break;
+	}
+	return ORIGIN_VALUE_OTHER;
 }
 
 
@@ -1200,222 +1202,222 @@ gint gsb_form_get_origin ( void )
  * */
 gboolean gsb_form_fill_from_account ( gint account_number )
 {
-    gint row, column;
-    gint rows_number, columns_number;
+	gint row, column;
+	gint rows_number, columns_number;
 
-    devel_debug_int (account_number);
+	devel_debug_int (account_number);
 
-    /* account_number can be -1 if come here from the accounts choice button,
-     * and -2 if there were a problem with the origin */
-    switch (account_number)
-    {
+	/* account_number can be -1 if come here from the accounts choice button,
+	 * and -2 if there were a problem with the origin */
+	switch (account_number)
+	{
 	case -2:
-	    return FALSE;
-	    break;
-	    
-	case -1:
-	    account_number = gsb_form_scheduler_get_account ();
-	    if (account_number == -2 )
 		return FALSE;
-	    break;
-    }
+		break;
 
-    /* if each account has a separate form, get it here,
-     * else, get the form of the first account */
+	case -1:
+		account_number = gsb_form_scheduler_get_account ();
+		if (account_number == -2 )
+			return FALSE;
+		break;
+	}
 
-    rows_number = gsb_data_form_get_nb_rows ( account_number );
-    columns_number = gsb_data_form_get_nb_columns ( account_number );
+	/* if each account has a separate form, get it here,
+	 * else, get the form of the first account */
 
-    for ( row=0 ; row < rows_number ; row++ )
-    for ( column=0 ; column < columns_number ; column++ )
-	{
-	    GtkWidget *widget;
-	    gint element = gsb_data_form_get_value ( account_number, column, row );
-
-		widget = gsb_form_widget_get_widget ( element );
-
-	    if ( !widget )
-            continue;
-
-	    /* We want to show all the widgets that are independent of operations and put 
-         * the means of payment in accordance with the type of account */
-	    if ( element == TRANSACTION_FORM_TYPE )
-        {
-            gint sign;
-
-            if ( gsb_data_account_get_default_credit ( account_number ) == 0 )
-                sign = GSB_PAYMENT_NEUTRAL;
-            else
-                sign = GSB_PAYMENT_DEBIT;
-
-            gsb_payment_method_create_combo_list ( widget, sign, account_number, 0, FALSE );
-        }
-		else if ( element != TRANSACTION_FORM_CONTRA
-         &&
-         element != TRANSACTION_FORM_CHEQUE )
-            gtk_widget_show (widget);
-	}
+	rows_number = gsb_data_form_get_nb_rows ( account_number );
+	columns_number = gsb_data_form_get_nb_columns ( account_number );
 
-    gsb_form_clean (account_number);
-    return FALSE;
-}
+	for ( row=0 ; row < rows_number ; row++ )
+		for ( column=0 ; column < columns_number ; column++ )
+		{
+			GtkWidget *widget;
+			gint element = gsb_data_form_get_value ( account_number, column, row );
 
+			widget = gsb_form_widget_get_widget ( element );
 
-/**
- * clean the form according to the account_number
- * and set the default values
- *
- * \param account number
- *
- * \return FALSE
- * */
-gboolean gsb_form_clean ( gint account_number )
-{
-    GSList *tmp_list;
-
-    devel_debug_int (account_number);
-
-    /* clean the transactions widget */
-    tmp_list = gsb_form_widget_get_list ();
-
-    while (tmp_list)
-    {
-	struct_element *element;
-
-	element = tmp_list -> data;
-
-	/* better to protect here if widget != NULL (bad experience...) */
-	if (element -> element_widget)
-	{
-	    /* some widgets can be set unsensitive because of the children of splits,
-	     * so resensitive all to be sure */
-	    gtk_widget_set_sensitive ( element -> element_widget, TRUE );
-
-	    switch (element -> element_number)
-	    {
-		case TRANSACTION_FORM_DATE:
-		    gsb_form_widget_set_empty ( element -> element_widget, TRUE );
-		    gtk_entry_set_text ( GTK_ENTRY ( element -> element_widget ), _("Date") );
-		    break;
+			if ( !widget )
+				continue;
 
-		case TRANSACTION_FORM_VALUE_DATE:
-		    gsb_form_widget_set_empty ( element -> element_widget, TRUE );
-		    gtk_entry_set_text ( GTK_ENTRY ( element -> element_widget ), _("Value date") );
-		    break;
-
-		case TRANSACTION_FORM_EXERCICE:
-		    /* editing a transaction can show some fyear wich shouldn't be showed,
-		     * so hide them here */
-		    gsb_fyear_update_fyear_list ();
-
-		    /* set the combo_box on 'Automatic' */
-		    gsb_fyear_set_combobox_history ( element -> element_widget, 0 );
-
-		    gtk_widget_set_sensitive ( GTK_WIDGET ( element -> element_widget ), FALSE );
-		    break;
-
-		case TRANSACTION_FORM_PARTY:
-		    gsb_form_widget_set_empty ( GTK_COMBOFIX ( element -> element_widget ) -> entry, TRUE );
-		    gtk_combofix_set_text ( GTK_COMBOFIX ( element -> element_widget ), _("Payee") );
-		    break;
+			/* We want to show all the widgets that are independent of operations and put
+			 * the means of payment in accordance with the type of account */
+			if ( element == TRANSACTION_FORM_TYPE )
+			{
+				gint sign;
 
-		case TRANSACTION_FORM_DEBIT:
-		    gsb_form_widget_set_empty ( element -> element_widget, TRUE );
-		    gtk_entry_set_text ( GTK_ENTRY ( element -> element_widget ), _("Debit") );
-		    break;
+				if ( gsb_data_account_get_default_credit ( account_number ) == 0 )
+					sign = GSB_PAYMENT_NEUTRAL;
+				else
+					sign = GSB_PAYMENT_DEBIT;
 
-		case TRANSACTION_FORM_CREDIT:
-		    gsb_form_widget_set_empty ( element -> element_widget, TRUE );
-		    gtk_entry_set_text ( GTK_ENTRY ( element -> element_widget ), _("Credit") );
-		    break;
+				gsb_payment_method_create_combo_list ( widget, sign, account_number, 0, FALSE );
+			}
+			else if ( element != TRANSACTION_FORM_CONTRA
+					&&
+					element != TRANSACTION_FORM_CHEQUE )
+				gtk_widget_show (widget);
+		}
 
-		case TRANSACTION_FORM_CATEGORY:
-		    gsb_form_widget_set_empty ( GTK_COMBOFIX ( element -> element_widget ) -> entry, TRUE );
-		    gtk_combofix_set_text ( GTK_COMBOFIX ( element -> element_widget ),
-					    _("Categories : Sub-categories") );
-		    break;
+	gsb_form_clean (account_number);
+	return FALSE;
+}
 
-		case TRANSACTION_FORM_FREE:
-		    break;
 
-		case TRANSACTION_FORM_BUDGET:
-		    gsb_form_widget_set_empty ( GTK_COMBOFIX ( element -> element_widget ) -> entry, TRUE );
-		    gtk_combofix_set_text ( GTK_COMBOFIX ( element -> element_widget ), _("Budgetary line") );
-		    break;
+/**
+ * clean the form according to the account_number
+ * and set the default values
+ *
+ * \param account number
+ *
+ * \return FALSE
+ * */
+gboolean gsb_form_clean ( gint account_number )
+{
+	GSList *tmp_list;
 
-		case TRANSACTION_FORM_NOTES:
-		    gsb_form_widget_set_empty ( element -> element_widget, TRUE );
-		    gtk_entry_set_text ( GTK_ENTRY ( element -> element_widget ), _("Notes") );
-		    break;
+	devel_debug_int (account_number);
 
-		case TRANSACTION_FORM_TYPE:
-        {
-            gint payment_number;
+	/* clean the transactions widget */
+	tmp_list = gsb_form_widget_get_list ();
 
-            payment_number = gsb_data_account_get_default_debit ( account_number );
-		    gsb_payment_method_set_combobox_history ( element -> element_widget, payment_number, TRUE );
-		    gtk_widget_set_sensitive ( GTK_WIDGET ( element -> element_widget ), FALSE );
-            gsb_payment_method_show_cheque_entry_if_necessary ( payment_number );
+	while (tmp_list)
+	{
+		struct_element *element;
 
-		    break;
-        }
-		case TRANSACTION_FORM_CONTRA:
-		    gtk_widget_hide ( element -> element_widget );
-		    break;
+		element = tmp_list -> data;
 
-		case TRANSACTION_FORM_CHEQUE:
-		    gsb_form_widget_set_empty ( element -> element_widget, TRUE );
-		    gtk_entry_set_text ( GTK_ENTRY ( element -> element_widget ),
-                        _("Cheque/Transfer number") );
-		    break;
+		/* better to protect here if widget != NULL (bad experience...) */
+		if (element -> element_widget)
+		{
+			/* some widgets can be set unsensitive because of the children of splits,
+			 * so resensitive all to be sure */
+			gtk_widget_set_sensitive ( element -> element_widget, TRUE );
 
-		case TRANSACTION_FORM_DEVISE:
-            g_signal_handlers_block_by_func ( G_OBJECT ( element -> element_widget ),
-                        G_CALLBACK ( gsb_form_transaction_currency_changed ),
-                        NULL );
-		    gsb_currency_set_combobox_history ( element -> element_widget,
-							gsb_data_account_get_currency ( account_number ) );
-		    gtk_widget_set_sensitive ( GTK_WIDGET ( element -> element_widget ), FALSE );
-            g_signal_handlers_unblock_by_func ( G_OBJECT ( element -> element_widget ),
-                        G_CALLBACK ( gsb_form_transaction_currency_changed ),
-                        NULL );
-		    break;
-
-		case TRANSACTION_FORM_CHANGE:
-		    gtk_widget_hide ( element -> element_widget );
-		    break;
+			switch (element -> element_number)
+			{
+			case TRANSACTION_FORM_DATE:
+				gsb_form_widget_set_empty ( element -> element_widget, TRUE );
+				gtk_entry_set_text ( GTK_ENTRY ( element -> element_widget ), _("Date") );
+				break;
+
+			case TRANSACTION_FORM_VALUE_DATE:
+				gsb_form_widget_set_empty ( element -> element_widget, TRUE );
+				gtk_entry_set_text ( GTK_ENTRY ( element -> element_widget ), _("Value date") );
+				break;
+
+			case TRANSACTION_FORM_EXERCICE:
+				/* editing a transaction can show some fyear wich shouldn't be showed,
+				 * so hide them here */
+				gsb_fyear_update_fyear_list ();
+
+				/* set the combo_box on 'Automatic' */
+				gsb_fyear_set_combobox_history ( element -> element_widget, 0 );
+
+				gtk_widget_set_sensitive ( GTK_WIDGET ( element -> element_widget ), FALSE );
+				break;
+
+			case TRANSACTION_FORM_PARTY:
+				gsb_form_widget_set_empty ( GTK_COMBOFIX ( element -> element_widget ) -> entry, TRUE );
+				gtk_combofix_set_text ( GTK_COMBOFIX ( element -> element_widget ), _("Payee") );
+				break;
+
+			case TRANSACTION_FORM_DEBIT:
+				gsb_form_widget_set_empty ( element -> element_widget, TRUE );
+				gtk_entry_set_text ( GTK_ENTRY ( element -> element_widget ), _("Debit") );
+				break;
+
+			case TRANSACTION_FORM_CREDIT:
+				gsb_form_widget_set_empty ( element -> element_widget, TRUE );
+				gtk_entry_set_text ( GTK_ENTRY ( element -> element_widget ), _("Credit") );
+				break;
+
+			case TRANSACTION_FORM_CATEGORY:
+				gsb_form_widget_set_empty ( GTK_COMBOFIX ( element -> element_widget ) -> entry, TRUE );
+				gtk_combofix_set_text ( GTK_COMBOFIX ( element -> element_widget ),
+						_("Categories : Sub-categories") );
+				break;
+
+			case TRANSACTION_FORM_FREE:
+				break;
+
+			case TRANSACTION_FORM_BUDGET:
+				gsb_form_widget_set_empty ( GTK_COMBOFIX ( element -> element_widget ) -> entry, TRUE );
+				gtk_combofix_set_text ( GTK_COMBOFIX ( element -> element_widget ), _("Budgetary line") );
+				break;
+
+			case TRANSACTION_FORM_NOTES:
+				gsb_form_widget_set_empty ( element -> element_widget, TRUE );
+				gtk_entry_set_text ( GTK_ENTRY ( element -> element_widget ), _("Notes") );
+				break;
+
+			case TRANSACTION_FORM_TYPE:
+			{
+				gint payment_number;
 
-		case TRANSACTION_FORM_BANK:
-		    gsb_form_widget_set_empty ( element -> element_widget, TRUE );
-		    gtk_entry_set_text ( GTK_ENTRY ( element -> element_widget ), _("Bank references") );
-		    break;
+				payment_number = gsb_data_account_get_default_debit ( account_number );
+				gsb_payment_method_set_combobox_history ( element -> element_widget, payment_number, TRUE );
+				gtk_widget_set_sensitive ( GTK_WIDGET ( element -> element_widget ), FALSE );
+				gsb_payment_method_show_cheque_entry_if_necessary ( payment_number );
 
-		case TRANSACTION_FORM_VOUCHER:
-		    gsb_form_widget_set_empty ( element -> element_widget, TRUE );
-		    gtk_entry_set_text ( GTK_ENTRY ( element -> element_widget ), _("Voucher") );
-		    break;
-
-		case TRANSACTION_FORM_OP_NB:
-		    gtk_label_set_text ( GTK_LABEL ( element -> element_widget ), NULL );
-		    break;
-
-		case TRANSACTION_FORM_MODE:
-		    gtk_label_set_text ( GTK_LABEL ( element -> element_widget ), NULL );
-		    break;
-	    }
+				break;
+			}
+			case TRANSACTION_FORM_CONTRA:
+				gtk_widget_hide ( element -> element_widget );
+				break;
+
+			case TRANSACTION_FORM_CHEQUE:
+				gsb_form_widget_set_empty ( element -> element_widget, TRUE );
+				gtk_entry_set_text ( GTK_ENTRY ( element -> element_widget ),
+						_("Cheque/Transfer number") );
+				break;
+
+			case TRANSACTION_FORM_DEVISE:
+				g_signal_handlers_block_by_func ( G_OBJECT ( element -> element_widget ),
+						G_CALLBACK ( gsb_form_transaction_currency_changed ),
+						NULL );
+				gsb_currency_set_combobox_history ( element -> element_widget,
+						gsb_data_account_get_currency ( account_number ) );
+				gtk_widget_set_sensitive ( GTK_WIDGET ( element -> element_widget ), FALSE );
+				g_signal_handlers_unblock_by_func ( G_OBJECT ( element -> element_widget ),
+						G_CALLBACK ( gsb_form_transaction_currency_changed ),
+						NULL );
+				break;
+
+			case TRANSACTION_FORM_CHANGE:
+				gtk_widget_hide ( element -> element_widget );
+				break;
+
+			case TRANSACTION_FORM_BANK:
+				gsb_form_widget_set_empty ( element -> element_widget, TRUE );
+				gtk_entry_set_text ( GTK_ENTRY ( element -> element_widget ), _("Bank references") );
+				break;
+
+			case TRANSACTION_FORM_VOUCHER:
+				gsb_form_widget_set_empty ( element -> element_widget, TRUE );
+				gtk_entry_set_text ( GTK_ENTRY ( element -> element_widget ), _("Voucher") );
+				break;
+
+			case TRANSACTION_FORM_OP_NB:
+				gtk_label_set_text ( GTK_LABEL ( element -> element_widget ), NULL );
+				break;
+
+			case TRANSACTION_FORM_MODE:
+				gtk_label_set_text ( GTK_LABEL ( element -> element_widget ), NULL );
+				break;
+			}
+		}
+		tmp_list = tmp_list -> next;
 	}
-	tmp_list = tmp_list -> next;
-    }
-    g_object_set_data ( G_OBJECT ( transaction_form ), "transaction_number_in_form", NULL );
+	g_object_set_data ( G_OBJECT ( transaction_form ), "transaction_number_in_form", NULL );
 
-    /* don't show the recover button */
-    gtk_widget_hide ( form_button_recover_split );
+	/* don't show the recover button */
+	gtk_widget_hide ( form_button_recover_split );
 
-    /* unsensitive the valid and cancel buttons */
-    gtk_widget_set_sensitive ( GTK_WIDGET ( form_button_valid ), FALSE );
-    gtk_widget_set_sensitive ( GTK_WIDGET ( form_button_cancel ), FALSE );
+	/* unsensitive the valid and cancel buttons */
+	gtk_widget_set_sensitive ( GTK_WIDGET ( form_button_valid ), FALSE );
+	gtk_widget_set_sensitive ( GTK_WIDGET ( form_button_cancel ), FALSE );
 
-    return FALSE;
+	return FALSE;
 }
 
 
@@ -1430,15 +1432,15 @@ gboolean gsb_form_clean ( gint account_number )
  */
 gint gsb_form_get_element_expandable ( gint element_number )
 {
-    switch ( element_number )
-    {
+	switch ( element_number )
+	{
 	case TRANSACTION_FORM_OP_NB:
 	case TRANSACTION_FORM_MODE:
-	    return GTK_SHRINK;
+		return GTK_SHRINK;
 
 	default:
-	    return GTK_EXPAND | GTK_FILL;
-    }
+		return GTK_EXPAND | GTK_FILL;
+	}
 }
 
 
@@ -1453,28 +1455,28 @@ gint gsb_form_get_element_expandable ( gint element_number )
  * */
 gboolean gsb_form_entry_get_focus ( GtkWidget *entry )
 {
-    /* the entry can be a combofix or a real entry */
-    if (GTK_IS_COMBOFIX ( entry ))
-    {
-        if ( gsb_form_widget_check_empty (GTK_COMBOFIX ( entry ) -> entry ) )
-        {
-            gtk_combofix_set_text ( GTK_COMBOFIX ( entry ), "" );
-            gsb_form_widget_set_empty ( GTK_COMBOFIX ( entry) -> entry, FALSE );
-        }
-    }
-    else
-    {
-        if ( gsb_form_widget_check_empty ( entry ) )
-        {
-            gtk_entry_set_text ( GTK_ENTRY ( entry ), "" );
-            gsb_form_widget_set_empty ( entry, FALSE );
-        }
-    }
-    /* sensitive the valid and cancel buttons */
-    gtk_widget_set_sensitive ( GTK_WIDGET ( form_button_valid ), TRUE );
-    gtk_widget_set_sensitive ( GTK_WIDGET ( form_button_cancel ), TRUE );
-
-    return FALSE;
+	/* the entry can be a combofix or a real entry */
+	if (GTK_IS_COMBOFIX ( entry ))
+	{
+		if ( gsb_form_widget_check_empty (GTK_COMBOFIX ( entry ) -> entry ) )
+		{
+			gtk_combofix_set_text ( GTK_COMBOFIX ( entry ), "" );
+			gsb_form_widget_set_empty ( GTK_COMBOFIX ( entry) -> entry, FALSE );
+		}
+	}
+	else
+	{
+		if ( gsb_form_widget_check_empty ( entry ) )
+		{
+			gtk_entry_set_text ( GTK_ENTRY ( entry ), "" );
+			gsb_form_widget_set_empty ( entry, FALSE );
+		}
+	}
+	/* sensitive the valid and cancel buttons */
+	gtk_widget_set_sensitive ( GTK_WIDGET ( form_button_valid ), TRUE );
+	gtk_widget_set_sensitive ( GTK_WIDGET ( form_button_cancel ), TRUE );
+
+	return FALSE;
 }
 
 
@@ -1488,320 +1490,320 @@ gboolean gsb_form_entry_get_focus ( GtkWidget *entry )
  * \return FALSE
  * */
 gboolean gsb_form_entry_lose_focus ( GtkWidget *entry,
-                        GdkEventFocus *ev,
-                        gint *ptr_origin )
+		GdkEventFocus *ev,
+		gint *ptr_origin )
 {
-    gchar *string;
-    gint element_number;
-    GtkWidget *widget;
-    GtkWidget *tmp_widget;
-    gint account_number;
-    gint transaction_number;
-    gint payment_number;
-
-    /* still not found, if change the content of the form, something come in entry
-     * wich is nothing, so protect here */
-    if ( !GTK_IS_WIDGET (entry)
-     ||
-     !GTK_IS_ENTRY (entry))
-    return FALSE;
-
-    /* remove the selection */
-    gtk_editable_select_region ( GTK_EDITABLE ( entry ), 0, 0 );
-    element_number = GPOINTER_TO_INT (ptr_origin);
-    account_number = gsb_form_get_account_number ();
-    transaction_number = GPOINTER_TO_INT ( g_object_get_data (
-                        G_OBJECT ( gsb_form_get_form_widget ( ) ),
-                        "transaction_number_in_form" ) );
-
-    /* sometimes the combofix popus stays showed, so remove here */
-    if ( element_number == TRANSACTION_FORM_PARTY
-     ||
-     element_number == TRANSACTION_FORM_CATEGORY
-     ||
-     element_number == TRANSACTION_FORM_BUDGET )
-    {
-        widget = gsb_form_widget_get_widget (element_number);
-        gtk_combofix_hide_popup ( GTK_COMBOFIX ( widget ) );
-    }
-
-    /* string will be filled only if the field is empty */
-    string = NULL;
-    switch ( element_number )
-    {
-    case TRANSACTION_FORM_PARTY :
-        /* we complete the transaction */
-        if ( !gsb_form_transaction_complete_form_by_payee (gtk_entry_get_text (GTK_ENTRY (entry))))
-        string = gsb_form_widget_get_name (TRANSACTION_FORM_PARTY);
-        break;
-
-    case TRANSACTION_FORM_DEBIT :
-        if ( gsb_form_widget_amount_entry_validate ( element_number ) == FALSE )
-            return TRUE;
-        /* we change the payment method to adapt it for the debit */
-        if ( strlen ( gtk_entry_get_text ( GTK_ENTRY (entry))))
-        {
-        /* empty the credit */
-        widget = gsb_form_widget_get_widget (TRANSACTION_FORM_CREDIT);
-        if (!gsb_form_widget_check_empty (widget))
-        {
-            gtk_entry_set_text ( GTK_ENTRY ( widget ),
-                        gsb_form_widget_get_name ( TRANSACTION_FORM_CREDIT ) );
-            gsb_form_widget_set_empty ( widget, TRUE );
-        }
-
-        widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_TYPE);
-
-        /* change the method of payment if necessary
-         * (if grey, it's a child of split so do nothing) */
-        if ( widget
-            &&
-            gtk_widget_get_sensitive (widget))
-        {
-            /* change the signe of the method of payment and the contra */
-            if ( gsb_payment_method_get_combo_sign ( widget ) == GSB_PAYMENT_CREDIT)
-            {
-            gsb_payment_method_create_combo_list ( widget,
-                                            GSB_PAYMENT_DEBIT,
-                                            account_number, 0, FALSE );
-            /* if there is no payment method, the last function hide it, but we have
-             * to hide the cheque element too */
-            if ( !gtk_widget_get_visible ( widget ) )
-                gtk_widget_hide ( gsb_form_widget_get_widget ( TRANSACTION_FORM_CHEQUE ) );
-
-            widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_CONTRA );
-            if ( widget && gtk_widget_get_visible ( widget ) )
-                gsb_payment_method_create_combo_list ( gsb_form_widget_get_widget (
-                                            TRANSACTION_FORM_CONTRA ),
-                                            GSB_PAYMENT_CREDIT,
-                                            account_number, 0, TRUE );
-            }
-        }
-        gsb_form_check_auto_separator (entry);
-        }
-        else
-        {
-            /* si pas de nouveau débit on essaie de remettre l'ancien crédit */
-            if ( (string = gsb_form_widget_get_old_credit ( ) ) )
-            {
-                tmp_widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_CREDIT );
-
-                gtk_entry_set_text ( GTK_ENTRY ( tmp_widget ), string );
-                gsb_form_widget_set_empty ( tmp_widget, FALSE );
-                g_free ( string );
-                
-                widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_TYPE );
-                if ( widget
-                     &&
-                     gtk_widget_get_sensitive ( widget ) )
-                {
-                    /* change the signe of the method of payment and the contra */
-                    if ( gsb_payment_method_get_combo_sign ( widget ) == GSB_PAYMENT_DEBIT )
-                    {
-                    if ( transaction_number == -1 )
-                        payment_number =  gsb_form_widget_get_old_credit_payment_number ( );
-                    else
-                        payment_number = gsb_data_transaction_get_method_of_payment_number (
-                                            transaction_number );
-
-                    gsb_payment_method_create_combo_list ( widget,
-                                            GSB_PAYMENT_CREDIT,
-                                            account_number, 0, FALSE );
-                    gsb_payment_method_set_payment_position ( widget, payment_number );
-
-                    widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_CHEQUE );
-                    if ( widget && gtk_widget_get_visible ( widget ) )
-                    {
-                        if ( gsb_form_widget_get_old_credit_payment_content ( ) )
-                        {
-                            gtk_entry_set_text ( GTK_ENTRY ( widget ),
-                                            gsb_form_widget_get_old_credit_payment_content ( ) );
-                            gsb_form_widget_set_empty ( widget, FALSE );
-                        }
-                    }
-
-                    widget = gsb_form_widget_get_widget (TRANSACTION_FORM_CONTRA);
-                    if ( widget && gtk_widget_get_visible ( widget ) )
-                        gsb_payment_method_create_combo_list ( gsb_form_widget_get_widget (
-                                            TRANSACTION_FORM_CONTRA ),
-                                            GSB_PAYMENT_DEBIT,
-                                            account_number, 0, TRUE );
-                    }
-                }
-            }
-            string = gsb_form_widget_get_name (TRANSACTION_FORM_DEBIT);
-        }
-        break;
-
-    case TRANSACTION_FORM_CREDIT :
-        if ( gsb_form_widget_amount_entry_validate ( element_number ) == FALSE )
-            return TRUE;
-        /* we change the payment method to adapt it for the debit */
-        if ( strlen ( gtk_entry_get_text ( GTK_ENTRY (entry))))
-        {
-        /* empty the debit */
-        widget = gsb_form_widget_get_widget (TRANSACTION_FORM_DEBIT);
-        if (!gsb_form_widget_check_empty (widget))
-        {
-            gtk_entry_set_text ( GTK_ENTRY (widget),
-                        gsb_form_widget_get_name (TRANSACTION_FORM_DEBIT));
-            gsb_form_widget_set_empty ( widget, TRUE );
-        }
-        widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_TYPE);
-
-        /* change the method of payment if necessary
-         * (if grey, it's a child of split so do nothing) */
-        if ( widget
-             &&
-             gtk_widget_get_sensitive (widget))
-        {
-            /* change the signe of the method of payment and the contra */
-            if ( gsb_payment_method_get_combo_sign (widget) == GSB_PAYMENT_DEBIT)
-            {
-            gsb_payment_method_create_combo_list ( widget,
-                        GSB_PAYMENT_CREDIT,
-                        account_number, 0, FALSE );
-            /* if there is no payment method, the last function hide it, but we have
-             * to hide the cheque element too */
-            if ( !gtk_widget_get_visible (widget))
-                gtk_widget_hide (gsb_form_widget_get_widget (TRANSACTION_FORM_CHEQUE));
-
-            widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_CONTRA);
-            if ( widget && gtk_widget_get_visible ( widget ) )
-                gsb_payment_method_create_combo_list ( widget,
-                        GSB_PAYMENT_DEBIT,
-                        account_number, 0, TRUE );
-            }
-        }
-        gsb_form_check_auto_separator (entry);
-        }
-        else
-        {
-            /* si pas de nouveau credit on essaie de remettre l'ancien débit */
-            if ( (string = gsb_form_widget_get_old_debit ( ) ) )
-            {
-                tmp_widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_DEBIT );
-
-                gtk_entry_set_text ( GTK_ENTRY ( tmp_widget ), string );
-                gsb_form_widget_set_empty ( tmp_widget, FALSE );
-                g_free ( string );
-
-                widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_TYPE );
-                if ( widget
-                     &&
-                     gtk_widget_get_sensitive ( widget ) )
-                {
-                    /* change the signe of the method of payment and the contra */
-                    if ( gsb_payment_method_get_combo_sign ( widget ) == GSB_PAYMENT_CREDIT )
-                    {
-                    if ( transaction_number == -1 )
-                        payment_number =  gsb_form_widget_get_old_debit_payment_number ( );
-                    else
-                        payment_number = gsb_data_transaction_get_method_of_payment_number (
-                                            transaction_number );
-
-                    gsb_payment_method_create_combo_list ( widget,
-                                            GSB_PAYMENT_DEBIT,
-                                            account_number, 0, FALSE );
-                    gsb_payment_method_set_payment_position ( widget, payment_number );
-
-                    widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_CHEQUE );
-                    if ( widget && gtk_widget_get_visible ( widget ) )
-                    {
-                        if ( gsb_form_widget_get_old_debit_payment_content ( ) )
-                        {
-                            gtk_entry_set_text ( GTK_ENTRY ( widget ),
-                                            gsb_form_widget_get_old_debit_payment_content ( ) );
-                            gsb_form_widget_set_empty ( widget, FALSE );
-                        }
-                    }
- 
-                    widget = gsb_form_widget_get_widget (TRANSACTION_FORM_CONTRA);
-                    if ( widget && gtk_widget_get_visible ( widget ) )
-                        gsb_payment_method_create_combo_list ( gsb_form_widget_get_widget (
-                                            TRANSACTION_FORM_CONTRA ),
-                                            GSB_PAYMENT_CREDIT,
-                                            account_number, 0, TRUE );
-                    }
-                }
-            }
-            string = gsb_form_widget_get_name ( TRANSACTION_FORM_CREDIT );
-        }
-        break;
+	gchar *string;
+	gint element_number;
+	GtkWidget *widget;
+	GtkWidget *tmp_widget;
+	gint account_number;
+	gint transaction_number;
+	gint payment_number;
+
+	/* still not found, if change the content of the form, something come in entry
+	 * wich is nothing, so protect here */
+	if ( !GTK_IS_WIDGET (entry)
+			||
+			!GTK_IS_ENTRY (entry))
+		return FALSE;
+
+	/* remove the selection */
+	gtk_editable_select_region ( GTK_EDITABLE ( entry ), 0, 0 );
+	element_number = GPOINTER_TO_INT (ptr_origin);
+	account_number = gsb_form_get_account_number ();
+	transaction_number = GPOINTER_TO_INT ( g_object_get_data (
+			G_OBJECT ( gsb_form_get_form_widget ( ) ),
+			"transaction_number_in_form" ) );
+
+	/* sometimes the combofix popus stays showed, so remove here */
+	if ( element_number == TRANSACTION_FORM_PARTY
+			||
+			element_number == TRANSACTION_FORM_CATEGORY
+			||
+			element_number == TRANSACTION_FORM_BUDGET )
+	{
+		widget = gsb_form_widget_get_widget (element_number);
+		gtk_combofix_hide_popup ( GTK_COMBOFIX ( widget ) );
+	}
+
+	/* string will be filled only if the field is empty */
+	string = NULL;
+	switch ( element_number )
+	{
+	case TRANSACTION_FORM_PARTY :
+		/* we complete the transaction */
+		if ( !gsb_form_transaction_complete_form_by_payee (gtk_entry_get_text (GTK_ENTRY (entry))))
+			string = gsb_form_widget_get_name (TRANSACTION_FORM_PARTY);
+		break;
+
+	case TRANSACTION_FORM_DEBIT :
+		if ( gsb_form_widget_amount_entry_validate ( element_number ) == FALSE )
+			return TRUE;
+		/* we change the payment method to adapt it for the debit */
+		if ( strlen ( gtk_entry_get_text ( GTK_ENTRY (entry))))
+		{
+			/* empty the credit */
+			widget = gsb_form_widget_get_widget (TRANSACTION_FORM_CREDIT);
+			if (!gsb_form_widget_check_empty (widget))
+			{
+				gtk_entry_set_text ( GTK_ENTRY ( widget ),
+						gsb_form_widget_get_name ( TRANSACTION_FORM_CREDIT ) );
+				gsb_form_widget_set_empty ( widget, TRUE );
+			}
+
+			widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_TYPE);
+
+			/* change the method of payment if necessary
+			 * (if grey, it's a child of split so do nothing) */
+			if ( widget
+					&&
+					gtk_widget_get_sensitive (widget))
+			{
+				/* change the signe of the method of payment and the contra */
+				if ( gsb_payment_method_get_combo_sign ( widget ) == GSB_PAYMENT_CREDIT)
+				{
+					gsb_payment_method_create_combo_list ( widget,
+							GSB_PAYMENT_DEBIT,
+							account_number, 0, FALSE );
+					/* if there is no payment method, the last function hide it, but we have
+					 * to hide the cheque element too */
+					if ( !gtk_widget_get_visible ( widget ) )
+						gtk_widget_hide ( gsb_form_widget_get_widget ( TRANSACTION_FORM_CHEQUE ) );
+
+					widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_CONTRA );
+					if ( widget && gtk_widget_get_visible ( widget ) )
+						gsb_payment_method_create_combo_list ( gsb_form_widget_get_widget (
+								TRANSACTION_FORM_CONTRA ),
+								GSB_PAYMENT_CREDIT,
+								account_number, 0, TRUE );
+				}
+			}
+			gsb_form_check_auto_separator (entry);
+		}
+		else
+		{
+			/* si pas de nouveau débit on essaie de remettre l'ancien crédit */
+			if ( (string = gsb_form_widget_get_old_credit ( ) ) )
+			{
+				tmp_widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_CREDIT );
+
+				gtk_entry_set_text ( GTK_ENTRY ( tmp_widget ), string );
+				gsb_form_widget_set_empty ( tmp_widget, FALSE );
+				g_free ( string );
+
+				widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_TYPE );
+				if ( widget
+						&&
+						gtk_widget_get_sensitive ( widget ) )
+				{
+					/* change the signe of the method of payment and the contra */
+					if ( gsb_payment_method_get_combo_sign ( widget ) == GSB_PAYMENT_DEBIT )
+					{
+						if ( transaction_number == -1 )
+							payment_number =  gsb_form_widget_get_old_credit_payment_number ( );
+						else
+							payment_number = gsb_data_transaction_get_method_of_payment_number (
+									transaction_number );
+
+						gsb_payment_method_create_combo_list ( widget,
+								GSB_PAYMENT_CREDIT,
+								account_number, 0, FALSE );
+						gsb_payment_method_set_payment_position ( widget, payment_number );
+
+						widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_CHEQUE );
+						if ( widget && gtk_widget_get_visible ( widget ) )
+						{
+							if ( gsb_form_widget_get_old_credit_payment_content ( ) )
+							{
+								gtk_entry_set_text ( GTK_ENTRY ( widget ),
+										gsb_form_widget_get_old_credit_payment_content ( ) );
+								gsb_form_widget_set_empty ( widget, FALSE );
+							}
+						}
+
+						widget = gsb_form_widget_get_widget (TRANSACTION_FORM_CONTRA);
+						if ( widget && gtk_widget_get_visible ( widget ) )
+							gsb_payment_method_create_combo_list ( gsb_form_widget_get_widget (
+									TRANSACTION_FORM_CONTRA ),
+									GSB_PAYMENT_DEBIT,
+									account_number, 0, TRUE );
+					}
+				}
+			}
+			string = gsb_form_widget_get_name (TRANSACTION_FORM_DEBIT);
+		}
+		break;
+
+	case TRANSACTION_FORM_CREDIT :
+		if ( gsb_form_widget_amount_entry_validate ( element_number ) == FALSE )
+			return TRUE;
+		/* we change the payment method to adapt it for the debit */
+		if ( strlen ( gtk_entry_get_text ( GTK_ENTRY (entry))))
+		{
+			/* empty the debit */
+			widget = gsb_form_widget_get_widget (TRANSACTION_FORM_DEBIT);
+			if (!gsb_form_widget_check_empty (widget))
+			{
+				gtk_entry_set_text ( GTK_ENTRY (widget),
+						gsb_form_widget_get_name (TRANSACTION_FORM_DEBIT));
+				gsb_form_widget_set_empty ( widget, TRUE );
+			}
+			widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_TYPE);
+
+			/* change the method of payment if necessary
+			 * (if grey, it's a child of split so do nothing) */
+			if ( widget
+					&&
+					gtk_widget_get_sensitive (widget))
+			{
+				/* change the signe of the method of payment and the contra */
+				if ( gsb_payment_method_get_combo_sign (widget) == GSB_PAYMENT_DEBIT)
+				{
+					gsb_payment_method_create_combo_list ( widget,
+							GSB_PAYMENT_CREDIT,
+							account_number, 0, FALSE );
+					/* if there is no payment method, the last function hide it, but we have
+					 * to hide the cheque element too */
+					if ( !gtk_widget_get_visible (widget))
+						gtk_widget_hide (gsb_form_widget_get_widget (TRANSACTION_FORM_CHEQUE));
+
+					widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_CONTRA);
+					if ( widget && gtk_widget_get_visible ( widget ) )
+						gsb_payment_method_create_combo_list ( widget,
+								GSB_PAYMENT_DEBIT,
+								account_number, 0, TRUE );
+				}
+			}
+			gsb_form_check_auto_separator (entry);
+		}
+		else
+		{
+			/* si pas de nouveau credit on essaie de remettre l'ancien débit */
+			if ( (string = gsb_form_widget_get_old_debit ( ) ) )
+			{
+				tmp_widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_DEBIT );
+
+				gtk_entry_set_text ( GTK_ENTRY ( tmp_widget ), string );
+				gsb_form_widget_set_empty ( tmp_widget, FALSE );
+				g_free ( string );
+
+				widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_TYPE );
+				if ( widget
+						&&
+						gtk_widget_get_sensitive ( widget ) )
+				{
+					/* change the signe of the method of payment and the contra */
+					if ( gsb_payment_method_get_combo_sign ( widget ) == GSB_PAYMENT_CREDIT )
+					{
+						if ( transaction_number == -1 )
+							payment_number =  gsb_form_widget_get_old_debit_payment_number ( );
+						else
+							payment_number = gsb_data_transaction_get_method_of_payment_number (
+									transaction_number );
+
+						gsb_payment_method_create_combo_list ( widget,
+								GSB_PAYMENT_DEBIT,
+								account_number, 0, FALSE );
+						gsb_payment_method_set_payment_position ( widget, payment_number );
+
+						widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_CHEQUE );
+						if ( widget && gtk_widget_get_visible ( widget ) )
+						{
+							if ( gsb_form_widget_get_old_debit_payment_content ( ) )
+							{
+								gtk_entry_set_text ( GTK_ENTRY ( widget ),
+										gsb_form_widget_get_old_debit_payment_content ( ) );
+								gsb_form_widget_set_empty ( widget, FALSE );
+							}
+						}
+
+						widget = gsb_form_widget_get_widget (TRANSACTION_FORM_CONTRA);
+						if ( widget && gtk_widget_get_visible ( widget ) )
+							gsb_payment_method_create_combo_list ( gsb_form_widget_get_widget (
+									TRANSACTION_FORM_CONTRA ),
+									GSB_PAYMENT_CREDIT,
+									account_number, 0, TRUE );
+					}
+				}
+			}
+			string = gsb_form_widget_get_name ( TRANSACTION_FORM_CREDIT );
+		}
+		break;
 
 	case TRANSACTION_FORM_CATEGORY :
-	    if ( strlen ( gtk_entry_get_text ( GTK_ENTRY (entry))))
-	    {
-            /* if it's a transfer, set the content of the contra combo */
-            if ( gsb_data_form_check_for_value ( TRANSACTION_FORM_CONTRA ) )
-            {
-                /* if it's a transfer, set the contra_method of payment menu */
-                gint contra_account_number;
-
-                contra_account_number = gsb_form_check_for_transfer ( gtk_entry_get_text (
-                                    GTK_ENTRY ( entry ) ) );
-                if ( contra_account_number >= 0 && contra_account_number != account_number )
-                {
-                    if ( gsb_form_widget_check_empty ( gsb_form_widget_get_widget ( TRANSACTION_FORM_CREDIT ) ) )
-                        /* there is something in debit */
-                        gsb_payment_method_create_combo_list (
-                                    gsb_form_widget_get_widget ( TRANSACTION_FORM_CONTRA ),
-                                    GSB_PAYMENT_CREDIT,
-                                    contra_account_number, 0, TRUE );
-                    else
-                        /* there is something in credit */
-                        gsb_payment_method_create_combo_list (
-                                    gsb_form_widget_get_widget ( TRANSACTION_FORM_CONTRA ),
-                                    GSB_PAYMENT_DEBIT,
-                                    contra_account_number, 0, TRUE );
-                }
-                else
-                    gtk_widget_hide ( gsb_form_widget_get_widget (TRANSACTION_FORM_CONTRA));
-            }
-            if ( strcmp ( gtk_entry_get_text ( GTK_ENTRY ( entry ) ), _("Split of transaction") )
-             && gtk_widget_get_visible ( form_button_recover_split ) )
-            {
-                gtk_widget_hide ( form_button_recover_split );
-            }
-	    }
-	    else
-            string = gsb_form_widget_get_name (TRANSACTION_FORM_CATEGORY);
-	    break;
+		if ( strlen ( gtk_entry_get_text ( GTK_ENTRY (entry))))
+		{
+			/* if it's a transfer, set the content of the contra combo */
+			if ( gsb_data_form_check_for_value ( TRANSACTION_FORM_CONTRA ) )
+			{
+				/* if it's a transfer, set the contra_method of payment menu */
+				gint contra_account_number;
+
+				contra_account_number = gsb_form_check_for_transfer ( gtk_entry_get_text (
+						GTK_ENTRY ( entry ) ) );
+				if ( contra_account_number >= 0 && contra_account_number != account_number )
+				{
+					if ( gsb_form_widget_check_empty ( gsb_form_widget_get_widget ( TRANSACTION_FORM_CREDIT ) ) )
+						/* there is something in debit */
+						gsb_payment_method_create_combo_list (
+								gsb_form_widget_get_widget ( TRANSACTION_FORM_CONTRA ),
+								GSB_PAYMENT_CREDIT,
+								contra_account_number, 0, TRUE );
+					else
+						/* there is something in credit */
+						gsb_payment_method_create_combo_list (
+								gsb_form_widget_get_widget ( TRANSACTION_FORM_CONTRA ),
+								GSB_PAYMENT_DEBIT,
+								contra_account_number, 0, TRUE );
+				}
+				else
+					gtk_widget_hide ( gsb_form_widget_get_widget (TRANSACTION_FORM_CONTRA));
+			}
+			if ( strcmp ( gtk_entry_get_text ( GTK_ENTRY ( entry ) ), _("Split of transaction") )
+					&& gtk_widget_get_visible ( form_button_recover_split ) )
+			{
+				gtk_widget_hide ( form_button_recover_split );
+			}
+		}
+		else
+			string = gsb_form_widget_get_name (TRANSACTION_FORM_CATEGORY);
+		break;
 
 	case TRANSACTION_FORM_CHEQUE :
 	case TRANSACTION_FORM_BUDGET :
 	case TRANSACTION_FORM_VOUCHER :
 	case TRANSACTION_FORM_NOTES :
 	case TRANSACTION_FORM_BANK :
-	    if ( !strlen ( gtk_entry_get_text ( GTK_ENTRY ( entry ))))
-		string = _(gsb_form_widget_get_name (element_number));
-	    break;
+		if ( !strlen ( gtk_entry_get_text ( GTK_ENTRY ( entry ))))
+			string = _(gsb_form_widget_get_name (element_number));
+		break;
 
 	default :
-	    break;
-    }
+		break;
+	}
 
-    /* if string is not NULL, the entry is empty so set the empty field to TRUE */
-    if ( string )
-    {
-	switch ( element_number)
+	/* if string is not NULL, the entry is empty so set the empty field to TRUE */
+	if ( string )
 	{
-	    case TRANSACTION_FORM_PARTY :
-	    case TRANSACTION_FORM_CATEGORY :
-	    case TRANSACTION_FORM_BUDGET :
-		/* need to work with the combofix to avoid some signals if we work
-		 * directly on the entry */
-		gtk_combofix_set_text ( GTK_COMBOFIX ( gsb_form_widget_get_widget (element_number) ),
+		switch ( element_number)
+		{
+		case TRANSACTION_FORM_PARTY :
+		case TRANSACTION_FORM_CATEGORY :
+		case TRANSACTION_FORM_BUDGET :
+			/* need to work with the combofix to avoid some signals if we work
+			 * directly on the entry */
+			gtk_combofix_set_text ( GTK_COMBOFIX ( gsb_form_widget_get_widget (element_number) ),
 					_(string) );
-		break;
+			break;
 
-	    default:
-		gtk_entry_set_text ( GTK_ENTRY ( entry ), string );
-		break;
+		default:
+			gtk_entry_set_text ( GTK_ENTRY ( entry ), string );
+			break;
+		}
+		gsb_form_widget_set_empty ( entry, TRUE );
 	}
-	gsb_form_widget_set_empty ( entry, TRUE );
-    }
-    return FALSE;
+	return FALSE;
 }
 
 
@@ -1815,69 +1817,69 @@ gboolean gsb_form_entry_lose_focus ( GtkWidget *entry,
  * */
 void gsb_form_check_auto_separator ( GtkWidget *entry )
 {
-    gint account_number;
-    gchar *string;
-    gint floating_point;
-    gchar *tmp = NULL;
-    gchar *mon_decimal_point;
-    gunichar decimal_point;
-    gint i;
-
-    if (!etat.automatic_separator
-	||
-	!entry )
-	return;
-    
-    /* we need a my_strdup to permit to do the g_free later
-     * because if strlen < floating point we need to
-     * malloc another string */
-    string = my_strdup (gtk_entry_get_text (GTK_ENTRY(entry)));
-    if ( !string || strlen (string) == 0 )
-        return;
-
-    account_number = gsb_form_get_account_number ();
-    floating_point = gsb_data_currency_get_floating_point (gsb_data_account_get_currency (account_number));
-
-    mon_decimal_point = gsb_locale_get_mon_decimal_point ( );
-    decimal_point = g_utf8_get_char_validated ( mon_decimal_point, -1 );
-
-    if ( g_utf8_strchr (string, -1, decimal_point ) )
-    {
-        g_free (string);
-        g_free ( mon_decimal_point );
-        return;
-    }
-
-    /* if string is < the floating_point, increase it to have
-     * 1 character more (to set the 0 before the .) */
-    if (strlen(string) <= floating_point)
-    {
-        gchar *concat_tmp;
-
-        tmp = g_malloc (floating_point - strlen(string) + 2);
-        for (i=0 ; i<(floating_point - strlen(string) + 1) ; i++)
-            tmp[i] = '0';
-        tmp[floating_point - strlen(string) + 1] = 0;
-        concat_tmp = g_strconcat ( tmp, string, NULL );
-        g_free (tmp);
-        g_free (string);
-        string = concat_tmp;
-    }
-
-    tmp = g_malloc ((strlen(string)+2) * sizeof (gchar));
-
-    memcpy ( tmp, string, strlen(string) - floating_point);
-
-    i = strlen(string) - floating_point;
-    tmp[i] = decimal_point;
-    i++;
-    memcpy ( tmp + i, string + i - 1, floating_point );
-    i = i + floating_point;
-    tmp[i] = 0;
-    gtk_entry_set_text (GTK_ENTRY (entry), tmp );
-    g_free (tmp);
-    g_free (string);
-    g_free ( mon_decimal_point );
+	gint account_number;
+	gchar *string;
+	gint floating_point;
+	gchar *tmp = NULL;
+	gchar *mon_decimal_point;
+	gunichar decimal_point;
+	gint i;
+
+	if (!etat.automatic_separator
+			||
+			!entry )
+		return;
+
+	/* we need a my_strdup to permit to do the g_free later
+	 * because if strlen < floating point we need to
+	 * malloc another string */
+	string = my_strdup (gtk_entry_get_text (GTK_ENTRY(entry)));
+	if ( !string || strlen (string) == 0 )
+		return;
+
+	account_number = gsb_form_get_account_number ();
+	floating_point = gsb_data_currency_get_floating_point (gsb_data_account_get_currency (account_number));
+
+	mon_decimal_point = gsb_locale_get_mon_decimal_point ( );
+	decimal_point = g_utf8_get_char_validated ( mon_decimal_point, -1 );
+
+	if ( g_utf8_strchr (string, -1, decimal_point ) )
+	{
+		g_free (string);
+		g_free ( mon_decimal_point );
+		return;
+	}
+
+	/* if string is < the floating_point, increase it to have
+	 * 1 character more (to set the 0 before the .) */
+	if (strlen(string) <= floating_point)
+	{
+		gchar *concat_tmp;
+
+		tmp = g_malloc (floating_point - strlen(string) + 2);
+		for (i=0 ; i<(floating_point - strlen(string) + 1) ; i++)
+			tmp[i] = '0';
+		tmp[floating_point - strlen(string) + 1] = 0;
+		concat_tmp = g_strconcat ( tmp, string, NULL );
+		g_free (tmp);
+		g_free (string);
+		string = concat_tmp;
+	}
+
+	tmp = g_malloc ((strlen(string)+2) * sizeof (gchar));
+
+	memcpy ( tmp, string, strlen(string) - floating_point);
+
+	i = strlen(string) - floating_point;
+	tmp[i] = decimal_point;
+	i++;
+	memcpy ( tmp + i, string + i - 1, floating_point );
+	i = i + floating_point;
+	tmp[i] = 0;
+	gtk_entry_set_text (GTK_ENTRY (entry), tmp );
+	g_free (tmp);
+	g_free (string);
+	g_free ( mon_decimal_point );
 }
 
 
@@ -1896,27 +1898,27 @@ void gsb_form_check_auto_separator ( GtkWidget *entry )
  * */
 gint gsb_form_check_for_transfer ( const gchar *entry_string )
 {
-    const gchar *account_name;
-
-    if ( !entry_string
-	 ||
-	 strncmp ( entry_string,
-		   _("Transfer : "),
-		   strlen (_("Transfer : "))))
-	 return -3;
-
-    account_name = memchr ( entry_string,
-			    ':',
-			    strlen (entry_string));
-    /* after the : there is a space before the account name */
-    account_name = account_name + 2;
-
-    if ( strcmp ( account_name,
-		  _("Deleted account")))
-	return gsb_data_account_get_no_account_by_name (account_name);
-
-    else
-	return -2;
+	const gchar *account_name;
+
+	if ( !entry_string
+			||
+			strncmp ( entry_string,
+					_("Transfer : "),
+					strlen (_("Transfer : "))))
+		return -3;
+
+	account_name = memchr ( entry_string,
+			':',
+			strlen (entry_string));
+	/* after the : there is a space before the account name */
+	account_name = account_name + 2;
+
+	if ( strcmp ( account_name,
+			_("Deleted account")))
+		return gsb_data_account_get_no_account_by_name (account_name);
+
+	else
+		return -2;
 }
 
 
@@ -1933,82 +1935,82 @@ gint gsb_form_check_for_transfer ( const gchar *entry_string )
  * \return FALSE
  * */
 gboolean gsb_form_button_press_event ( GtkWidget *entry,
-                        GdkEventButton *ev,
-                        gint *ptr_origin )
+		GdkEventButton *ev,
+		gint *ptr_origin )
 {
-    gint element_number;
-    GtkWidget *widget;
-
-    element_number = GPOINTER_TO_INT (ptr_origin);
-
-    /* we do the first part only if we click on the form directly, without double click or
-     * entry in the transaction list,
-     * in that case, transaction_number_in_form is 0 and set to -1, as a white line */
-    if (!g_object_get_data (G_OBJECT (transaction_form), "transaction_number_in_form"))
-    {
-	GtkWidget *date_entry;
-
-	/* set the new transaction number */
-	g_object_set_data ( G_OBJECT (transaction_form),
-			    "transaction_number_in_form",
-			    GINT_TO_POINTER (-1));
-
-	/* set the current date into the date entry */
-	date_entry = gsb_form_widget_get_widget (TRANSACTION_FORM_DATE);
-	if ( gsb_form_widget_check_empty (date_entry))
-	{
-        if ( save_form_date )
-            gtk_entry_set_text ( GTK_ENTRY ( date_entry ),
-                        gsb_format_gdate ( save_form_date ) );
-        else
-            gtk_entry_set_text ( GTK_ENTRY ( date_entry ),
-                         gsb_date_today ( ) );
-	    gsb_form_widget_set_empty ( date_entry, FALSE );
-	}
+	gint element_number;
+	GtkWidget *widget;
 
-	/* set the form sensitive */
-	gsb_form_change_sensitive_buttons (TRUE);
+	element_number = GPOINTER_TO_INT (ptr_origin);
 
-	/* if we are on scheduled transactions, show the scheduled part of form */
-	if (gsb_form_get_origin () == ORIGIN_VALUE_SCHEDULED)
-	    gsb_form_scheduler_sensitive_buttons (TRUE);
+	/* we do the first part only if we click on the form directly, without double click or
+	 * entry in the transaction list,
+	 * in that case, transaction_number_in_form is 0 and set to -1, as a white line */
+	if (!g_object_get_data (G_OBJECT (transaction_form), "transaction_number_in_form"))
+	{
+		GtkWidget *date_entry;
 
+		/* set the new transaction number */
+		g_object_set_data ( G_OBJECT (transaction_form),
+				"transaction_number_in_form",
+				GINT_TO_POINTER (-1));
 
-	/* set the number of cheque for the method of payment if necessary */
-	widget = gsb_form_widget_get_widget (TRANSACTION_FORM_TYPE);
+		/* set the current date into the date entry */
+		date_entry = gsb_form_widget_get_widget (TRANSACTION_FORM_DATE);
+		if ( gsb_form_widget_check_empty (date_entry))
+		{
+			if ( save_form_date )
+				gtk_entry_set_text ( GTK_ENTRY ( date_entry ),
+						gsb_format_gdate ( save_form_date ) );
+			else
+				gtk_entry_set_text ( GTK_ENTRY ( date_entry ),
+						gsb_date_today ( ) );
+			gsb_form_widget_set_empty ( date_entry, FALSE );
+		}
 
-	if ( widget
-	     &&
-	     gtk_widget_get_visible (widget))
-	{
-	    gint payment_number;
-	    gint account_number;
-        gchar* tmp_str;
+		/* set the form sensitive */
+		gsb_form_change_sensitive_buttons (TRUE);
 
-	    account_number = gsb_form_get_account_number ();
-	    payment_number = gsb_payment_method_get_selected_number (widget);
-	    if ( gsb_data_payment_get_automatic_numbering ( payment_number ))
-	    {
-		widget = gsb_form_widget_get_widget (TRANSACTION_FORM_CHEQUE);
+		/* if we are on scheduled transactions, show the scheduled part of form */
+		if (gsb_form_get_origin () == ORIGIN_VALUE_SCHEDULED)
+			gsb_form_scheduler_sensitive_buttons (TRUE);
 
-		gsb_form_entry_get_focus (widget);
 
-		if ( !strlen (gtk_entry_get_text ( GTK_ENTRY (widget))))
+		/* set the number of cheque for the method of payment if necessary */
+		widget = gsb_form_widget_get_widget (TRANSACTION_FORM_TYPE);
+
+		if ( widget
+				&&
+				gtk_widget_get_visible (widget))
 		{
-            tmp_str = gsb_data_payment_incremente_last_number ( payment_number, 1 );
-		    gtk_entry_set_text ( GTK_ENTRY (widget), tmp_str);
-		    g_free ( tmp_str );
+			gint payment_number;
+			gint account_number;
+			gchar* tmp_str;
+
+			account_number = gsb_form_get_account_number ();
+			payment_number = gsb_payment_method_get_selected_number (widget);
+			if ( gsb_data_payment_get_automatic_numbering ( payment_number ))
+			{
+				widget = gsb_form_widget_get_widget (TRANSACTION_FORM_CHEQUE);
+
+				gsb_form_entry_get_focus (widget);
+
+				if ( !strlen (gtk_entry_get_text ( GTK_ENTRY (widget))))
+				{
+					tmp_str = gsb_data_payment_incremente_last_number ( payment_number, 1 );
+					gtk_entry_set_text ( GTK_ENTRY (widget), tmp_str);
+					g_free ( tmp_str );
+				}
+			}
 		}
-	    }
 	}
-    }
 
-    /* if ev is NULL, go away here
-     * (means come from a function as gsb_form_finish_edition...) */
-    if ( !ev )
-	return FALSE;
+	/* if ev is NULL, go away here
+	 * (means come from a function as gsb_form_finish_edition...) */
+	if ( !ev )
+		return FALSE;
 
-    return FALSE;
+	return FALSE;
 }
 
 
@@ -2021,18 +2023,18 @@ gboolean gsb_form_button_press_event ( GtkWidget *entry,
  * */
 gboolean gsb_form_change_sensitive_buttons ( gboolean sensitive )
 {
-    if ( gsb_data_form_check_for_value ( TRANSACTION_FORM_TYPE ))
-	gtk_widget_set_sensitive ( GTK_WIDGET ( gsb_form_widget_get_widget (TRANSACTION_FORM_TYPE)),
-				   sensitive );
-
-    if ( gsb_data_form_check_for_value ( TRANSACTION_FORM_DEVISE ))
-	gtk_widget_set_sensitive ( GTK_WIDGET ( gsb_form_widget_get_widget (TRANSACTION_FORM_DEVISE)),
-				   sensitive );
-
-    if ( gsb_data_form_check_for_value ( TRANSACTION_FORM_EXERCICE ))
-	gtk_widget_set_sensitive ( GTK_WIDGET ( gsb_form_widget_get_widget (TRANSACTION_FORM_EXERCICE)),
-				   sensitive );
-    return FALSE;
+	if ( gsb_data_form_check_for_value ( TRANSACTION_FORM_TYPE ))
+		gtk_widget_set_sensitive ( GTK_WIDGET ( gsb_form_widget_get_widget (TRANSACTION_FORM_TYPE)),
+				sensitive );
+
+	if ( gsb_data_form_check_for_value ( TRANSACTION_FORM_DEVISE ))
+		gtk_widget_set_sensitive ( GTK_WIDGET ( gsb_form_widget_get_widget (TRANSACTION_FORM_DEVISE)),
+				sensitive );
+
+	if ( gsb_data_form_check_for_value ( TRANSACTION_FORM_EXERCICE ))
+		gtk_widget_set_sensitive ( GTK_WIDGET ( gsb_form_widget_get_widget (TRANSACTION_FORM_EXERCICE)),
+				sensitive );
+	return FALSE;
 }
 
 
@@ -2046,282 +2048,282 @@ gboolean gsb_form_change_sensitive_buttons ( gboolean sensitive )
  * \return FALSE
  * */
 gboolean gsb_form_key_press_event ( GtkWidget *widget,
-                        GdkEventKey *ev,
-                        gint *ptr_origin )
+		GdkEventKey *ev,
+		gint *ptr_origin )
 {
-    gint element_number;
-    gint account_number;
-    gint element_suivant;
-    GtkWidget *widget_prov;
-    
-    element_number = GPOINTER_TO_INT (ptr_origin);
-    account_number = gsb_form_get_account_number ();
-
-    /* if conf.entree = 1, entry finish the transaction, else does as tab */
-    if ( !conf.entree
-     &&
-     ( ev -> keyval == GDK_KEY_Return
-     ||
-     ev -> keyval == GDK_KEY_KP_Enter ))
-        ev->keyval = GDK_KEY_Tab ;
-
-    if (!g_object_get_data (G_OBJECT (transaction_form), "transaction_number_in_form"))
-	/* set the new transaction number */
-        g_object_set_data ( G_OBJECT ( transaction_form ),
-                        "transaction_number_in_form",
-                        GINT_TO_POINTER ( -1 ) );
-
-    switch ( ev -> keyval )
-    {
-    case GDK_KEY_1:
-    case GDK_KEY_2:
-    case GDK_KEY_3:
-    case GDK_KEY_4:
-    case GDK_KEY_5:
-    case GDK_KEY_6:
-    case GDK_KEY_7:
-    case GDK_KEY_8:
-    case GDK_KEY_9:
-    case GDK_KEY_0:
-        switch ( element_number )
-        {
-        case TRANSACTION_FORM_DEBIT:
-            widget_prov = gsb_form_widget_get_widget ( TRANSACTION_FORM_CREDIT );
-            if ( !gsb_form_widget_check_empty ( widget_prov ) )
-            {
-                gtk_entry_set_text ( GTK_ENTRY ( widget_prov ),
-                         gsb_form_widget_get_name ( TRANSACTION_FORM_CREDIT ) );
-                gsb_form_widget_set_empty ( widget_prov, TRUE );
-            }
-            break;
-        case TRANSACTION_FORM_CREDIT:
-            widget_prov = gsb_form_widget_get_widget ( TRANSACTION_FORM_DEBIT );
-            if ( !gsb_form_widget_check_empty ( widget_prov ) )
-            {
-                gtk_entry_set_text ( GTK_ENTRY (widget_prov),
-                            gsb_form_widget_get_name (TRANSACTION_FORM_DEBIT));
-                gsb_form_widget_set_empty ( widget_prov, TRUE );
-            }
-            break;
-        }
-        break;
-	case GDK_KEY_Escape :
-	    gsb_form_escape_form ();
-	    break;
-
-	case GDK_KEY_Up:
-	    element_suivant = gsb_form_widget_next_element ( account_number,
-							     element_number,
-							     GSB_UP );
-	    gsb_form_widget_set_focus ( element_suivant );
-	    return TRUE;
-	    break;
-
-	case GDK_KEY_Down:
-	    element_suivant = gsb_form_widget_next_element ( account_number,
-							     element_number,
-							     GSB_DOWN );
-	    gsb_form_widget_set_focus ( element_suivant );
-	    return TRUE;
-	    break;
-
-	case GDK_KEY_ISO_Left_Tab:
-        if ( element_number == TRANSACTION_FORM_CREDIT
-         || element_number == TRANSACTION_FORM_DEBIT )
-        {
-            if ( gsb_form_widget_amount_entry_validate ( element_number ) == FALSE )
-                return TRUE;
-        }
-
-        element_suivant = gsb_form_widget_next_element ( account_number,
-							     element_number,
-							     GSB_LEFT );
-
-        if ( element_number == TRANSACTION_FORM_VALUE_DATE )
-        {
-            widget_prov = gsb_form_widget_get_widget (
-                        TRANSACTION_FORM_VALUE_DATE);
-
-            if (strlen (gtk_entry_get_text (GTK_ENTRY (widget_prov))) == 0 )
-            {
-                gsb_form_widget_set_empty ( widget_prov, TRUE );
-                gtk_entry_set_text ( GTK_ENTRY ( widget_prov ), _("Value date") );
-            }
-            gsb_form_widget_set_focus ( element_suivant );
-        }
-
-        gsb_form_widget_set_focus ( element_suivant );
-	    return TRUE;
-	    break;
-
-	case GDK_KEY_Tab :
-        if ( element_number == TRANSACTION_FORM_CREDIT
-         || element_number == TRANSACTION_FORM_DEBIT )
-        {
-            if ( gsb_form_widget_amount_entry_validate ( element_number ) == FALSE )
-                return TRUE;
-        }
-
-        element_suivant = gsb_form_widget_next_element ( account_number,
-							     element_number,
-							     GSB_RIGHT );
-
-        /* if element = value_date fix the bug 578 */
-        if ( element_number == TRANSACTION_FORM_VALUE_DATE )
-        {
-            widget_prov = gsb_form_widget_get_widget (
-                        TRANSACTION_FORM_VALUE_DATE);
-
-            if (strlen (gtk_entry_get_text ( GTK_ENTRY ( widget_prov ) ) ) == 0 )
-            {
-                gsb_form_widget_set_empty ( widget_prov, TRUE );
-                gtk_entry_set_text ( GTK_ENTRY ( widget_prov ), _("Value date") );
-            }
-            gsb_form_widget_set_focus ( element_suivant );
-        }
-
-	    if ( element_suivant == -2 )
-            gsb_form_finish_edition();
-	    else
-            gsb_form_widget_set_focus ( element_suivant );
-	    return TRUE;
-	    break;
-
-	case GDK_KEY_KP_Enter :
-	case GDK_KEY_Return :
-
-	    /* need to check here if we are performing a scheduled transaction in home page
-	     * or another transaction, because if we are in home page, cannot finish like that,
-	     * we need to finish with the dialog wich contains the form */
-	    if (gsb_gui_navigation_get_current_page () == GSB_HOME_PAGE)
-	    {
-            GtkWidget *tmp_widget;
-
-            /* ok, we are on the home page. the best way is to send the response ok
-             * to the dialog */
-            tmp_widget = widget;
-
-            do
-            {
-                tmp_widget = gtk_widget_get_parent (GTK_WIDGET (tmp_widget));
-            }
-            while ( GTK_IS_WIDGET (tmp_widget)
-                &&
-                !GTK_IS_DIALOG (tmp_widget));
-            gtk_dialog_response (GTK_DIALOG (tmp_widget), GTK_RESPONSE_OK);
-            return TRUE;
-	    }
-	    else
-	    {
-            if ( element_number == TRANSACTION_FORM_CREDIT
-             || element_number == TRANSACTION_FORM_DEBIT )
-            {
-                if ( gsb_form_widget_amount_entry_validate ( element_number ) == FALSE )
-                    return TRUE;
-            }
-
-            widget_prov = gsb_form_widget_get_widget ( TRANSACTION_FORM_PARTY );
-
-            if ( GTK_IS_COMBOFIX ( widget_prov ) )
-                gsb_form_transaction_complete_form_by_payee ( gtk_combofix_get_text (
-                        GTK_COMBOFIX ( widget_prov ) ) );
-
-            gsb_form_finish_edition ();
-            return TRUE;
-	    }
-	    break;
-
-	case GDK_KEY_KP_Add:
-	case GDK_KEY_plus:
-	case GDK_KEY_equal:		/* This should make all our US users happy */
-	    /* increase the check of 1 */
-	    if (element_number == TRANSACTION_FORM_CHEQUE)
-	    {
-		increment_decrement_champ ( widget,
-					    1 );
-		return TRUE;
-	    }
-	    break;
-
-	case GDK_KEY_KP_Subtract:
-	case GDK_KEY_minus:
-	    /* decrease the check of 1 */
-	    if (element_number == TRANSACTION_FORM_CHEQUE)
-	    {
-		increment_decrement_champ ( widget,
-					    -1 );
-		return TRUE;
-	    }
-	    break;
-    }
-
-    if ( element_number == TRANSACTION_FORM_TYPE )
-    {
-        gint payment_number;
-
-        switch ( ev -> keyval )
-        {
-        case GDK_KEY_c:
-        case GDK_KEY_C:
-            payment_number = gsb_data_payment_get_number_by_name ( _("Credit card"),
-                        account_number );
-            if ( payment_number )
-                gsb_payment_method_set_combobox_history ( widget, payment_number, TRUE );
-
-            return TRUE;
-            break;
-        case GDK_KEY_d:
-        case GDK_KEY_D:
-            payment_number = gsb_data_payment_get_number_by_name ( _("Direct deposit"),
-                        account_number );
-            if ( payment_number )
-                gsb_payment_method_set_combobox_history ( widget, payment_number, TRUE );
-
-            return TRUE;
-            break;
-        case GDK_KEY_h:
-        case GDK_KEY_H:
-            payment_number = gsb_data_payment_get_number_by_name ( _("Check"),
-                        account_number );
-            if ( payment_number )
-                gsb_payment_method_set_combobox_history ( widget, payment_number, TRUE );
-
-            return TRUE;
-            break;
-        case GDK_KEY_l:
-        case GDK_KEY_L:
-            payment_number = gsb_data_payment_get_number_by_name ( _("Cash withdrawal"),
-                        account_number );
-            if ( payment_number )
-                gsb_payment_method_set_combobox_history ( widget, payment_number, TRUE );
-
-            return TRUE;
-            break;
-
-        case GDK_KEY_p:
-        case GDK_KEY_P:
-            payment_number = gsb_data_payment_get_number_by_name ( _("Direct debit"),
-                        account_number );
-            if ( payment_number )
-                gsb_payment_method_set_combobox_history ( widget, payment_number, TRUE );
-
-            return TRUE;
-            break;
-        case GDK_KEY_t:
-        case GDK_KEY_T:
-        case GDK_KEY_v:
-        case GDK_KEY_V:
-            payment_number = gsb_data_payment_get_number_by_name ( _("Transfer"),
-                        account_number );
-            if ( payment_number )
-                gsb_payment_method_set_combobox_history ( widget, payment_number, TRUE );
-
-            return TRUE;
-            break;
-        }
-    }
-
-    return FALSE;
+	gint element_number;
+	gint account_number;
+	gint element_suivant;
+	GtkWidget *widget_prov;
+
+	element_number = GPOINTER_TO_INT (ptr_origin);
+	account_number = gsb_form_get_account_number ();
+
+	/* if conf.entree = 1, entry finish the transaction, else does as tab */
+	if ( !conf.entree
+			&&
+			( ev -> keyval == GDK_KEY_Return
+					||
+					ev -> keyval == GDK_KEY_KP_Enter ))
+		ev->keyval = GDK_KEY_Tab ;
+
+	if (!g_object_get_data (G_OBJECT (transaction_form), "transaction_number_in_form"))
+		/* set the new transaction number */
+		g_object_set_data ( G_OBJECT ( transaction_form ),
+				"transaction_number_in_form",
+				GINT_TO_POINTER ( -1 ) );
+
+	switch ( ev -> keyval )
+	{
+	case GDK_KEY_1:
+	case GDK_KEY_2:
+	case GDK_KEY_3:
+	case GDK_KEY_4:
+	case GDK_KEY_5:
+	case GDK_KEY_6:
+	case GDK_KEY_7:
+	case GDK_KEY_8:
+	case GDK_KEY_9:
+	case GDK_KEY_0:
+		switch ( element_number )
+		{
+		case TRANSACTION_FORM_DEBIT:
+			widget_prov = gsb_form_widget_get_widget ( TRANSACTION_FORM_CREDIT );
+			if ( !gsb_form_widget_check_empty ( widget_prov ) )
+			{
+				gtk_entry_set_text ( GTK_ENTRY ( widget_prov ),
+						gsb_form_widget_get_name ( TRANSACTION_FORM_CREDIT ) );
+				gsb_form_widget_set_empty ( widget_prov, TRUE );
+			}
+			break;
+		case TRANSACTION_FORM_CREDIT:
+			widget_prov = gsb_form_widget_get_widget ( TRANSACTION_FORM_DEBIT );
+			if ( !gsb_form_widget_check_empty ( widget_prov ) )
+			{
+				gtk_entry_set_text ( GTK_ENTRY (widget_prov),
+						gsb_form_widget_get_name (TRANSACTION_FORM_DEBIT));
+				gsb_form_widget_set_empty ( widget_prov, TRUE );
+			}
+			break;
+		}
+		break;
+		case GDK_KEY_Escape :
+			gsb_form_escape_form ();
+			break;
+
+		case GDK_KEY_Up:
+			element_suivant = gsb_form_widget_next_element ( account_number,
+					element_number,
+					GSB_UP );
+			gsb_form_widget_set_focus ( element_suivant );
+			return TRUE;
+			break;
+
+		case GDK_KEY_Down:
+			element_suivant = gsb_form_widget_next_element ( account_number,
+					element_number,
+					GSB_DOWN );
+			gsb_form_widget_set_focus ( element_suivant );
+			return TRUE;
+			break;
+
+		case GDK_KEY_ISO_Left_Tab:
+			if ( element_number == TRANSACTION_FORM_CREDIT
+					|| element_number == TRANSACTION_FORM_DEBIT )
+			{
+				if ( gsb_form_widget_amount_entry_validate ( element_number ) == FALSE )
+					return TRUE;
+			}
+
+			element_suivant = gsb_form_widget_next_element ( account_number,
+					element_number,
+					GSB_LEFT );
+
+			if ( element_number == TRANSACTION_FORM_VALUE_DATE )
+			{
+				widget_prov = gsb_form_widget_get_widget (
+						TRANSACTION_FORM_VALUE_DATE);
+
+				if (strlen (gtk_entry_get_text (GTK_ENTRY (widget_prov))) == 0 )
+				{
+					gsb_form_widget_set_empty ( widget_prov, TRUE );
+					gtk_entry_set_text ( GTK_ENTRY ( widget_prov ), _("Value date") );
+				}
+				gsb_form_widget_set_focus ( element_suivant );
+			}
+
+			gsb_form_widget_set_focus ( element_suivant );
+			return TRUE;
+			break;
+
+		case GDK_KEY_Tab :
+			if ( element_number == TRANSACTION_FORM_CREDIT
+					|| element_number == TRANSACTION_FORM_DEBIT )
+			{
+				if ( gsb_form_widget_amount_entry_validate ( element_number ) == FALSE )
+					return TRUE;
+			}
+
+			element_suivant = gsb_form_widget_next_element ( account_number,
+					element_number,
+					GSB_RIGHT );
+
+			/* if element = value_date fix the bug 578 */
+			if ( element_number == TRANSACTION_FORM_VALUE_DATE )
+			{
+				widget_prov = gsb_form_widget_get_widget (
+						TRANSACTION_FORM_VALUE_DATE);
+
+				if (strlen (gtk_entry_get_text ( GTK_ENTRY ( widget_prov ) ) ) == 0 )
+				{
+					gsb_form_widget_set_empty ( widget_prov, TRUE );
+					gtk_entry_set_text ( GTK_ENTRY ( widget_prov ), _("Value date") );
+				}
+				gsb_form_widget_set_focus ( element_suivant );
+			}
+
+			if ( element_suivant == -2 )
+				gsb_form_finish_edition();
+			else
+				gsb_form_widget_set_focus ( element_suivant );
+			return TRUE;
+			break;
+
+		case GDK_KEY_KP_Enter :
+		case GDK_KEY_Return :
+
+			/* need to check here if we are performing a scheduled transaction in home page
+			 * or another transaction, because if we are in home page, cannot finish like that,
+			 * we need to finish with the dialog wich contains the form */
+			if (gsb_gui_navigation_get_current_page () == GSB_HOME_PAGE)
+			{
+				GtkWidget *tmp_widget;
+
+				/* ok, we are on the home page. the best way is to send the response ok
+				 * to the dialog */
+				tmp_widget = widget;
+
+				do
+				{
+					tmp_widget = gtk_widget_get_parent (GTK_WIDGET (tmp_widget));
+				}
+				while ( GTK_IS_WIDGET (tmp_widget)
+						&&
+						!GTK_IS_DIALOG (tmp_widget));
+				gtk_dialog_response (GTK_DIALOG (tmp_widget), GTK_RESPONSE_OK);
+				return TRUE;
+			}
+			else
+			{
+				if ( element_number == TRANSACTION_FORM_CREDIT
+						|| element_number == TRANSACTION_FORM_DEBIT )
+				{
+					if ( gsb_form_widget_amount_entry_validate ( element_number ) == FALSE )
+						return TRUE;
+				}
+
+				widget_prov = gsb_form_widget_get_widget ( TRANSACTION_FORM_PARTY );
+
+				if ( GTK_IS_COMBOFIX ( widget_prov ) )
+					gsb_form_transaction_complete_form_by_payee ( gtk_combofix_get_text (
+							GTK_COMBOFIX ( widget_prov ) ) );
+
+				gsb_form_finish_edition ();
+				return TRUE;
+			}
+			break;
+
+		case GDK_KEY_KP_Add:
+		case GDK_KEY_plus:
+		case GDK_KEY_equal:		/* This should make all our US users happy */
+			/* increase the check of 1 */
+			if (element_number == TRANSACTION_FORM_CHEQUE)
+			{
+				increment_decrement_champ ( widget,
+						1 );
+				return TRUE;
+			}
+			break;
+
+		case GDK_KEY_KP_Subtract:
+		case GDK_KEY_minus:
+			/* decrease the check of 1 */
+			if (element_number == TRANSACTION_FORM_CHEQUE)
+			{
+				increment_decrement_champ ( widget,
+						-1 );
+				return TRUE;
+			}
+			break;
+	}
+
+	if ( element_number == TRANSACTION_FORM_TYPE )
+	{
+		gint payment_number;
+
+		switch ( ev -> keyval )
+		{
+		case GDK_KEY_c:
+		case GDK_KEY_C:
+			payment_number = gsb_data_payment_get_number_by_name ( _("Credit card"),
+					account_number );
+			if ( payment_number )
+				gsb_payment_method_set_combobox_history ( widget, payment_number, TRUE );
+
+			return TRUE;
+			break;
+		case GDK_KEY_d:
+		case GDK_KEY_D:
+			payment_number = gsb_data_payment_get_number_by_name ( _("Direct deposit"),
+					account_number );
+			if ( payment_number )
+				gsb_payment_method_set_combobox_history ( widget, payment_number, TRUE );
+
+			return TRUE;
+			break;
+		case GDK_KEY_h:
+		case GDK_KEY_H:
+			payment_number = gsb_data_payment_get_number_by_name ( _("Check"),
+					account_number );
+			if ( payment_number )
+				gsb_payment_method_set_combobox_history ( widget, payment_number, TRUE );
+
+			return TRUE;
+			break;
+		case GDK_KEY_l:
+		case GDK_KEY_L:
+			payment_number = gsb_data_payment_get_number_by_name ( _("Cash withdrawal"),
+					account_number );
+			if ( payment_number )
+				gsb_payment_method_set_combobox_history ( widget, payment_number, TRUE );
+
+			return TRUE;
+			break;
+
+		case GDK_KEY_p:
+		case GDK_KEY_P:
+			payment_number = gsb_data_payment_get_number_by_name ( _("Direct debit"),
+					account_number );
+			if ( payment_number )
+				gsb_payment_method_set_combobox_history ( widget, payment_number, TRUE );
+
+			return TRUE;
+			break;
+		case GDK_KEY_t:
+		case GDK_KEY_T:
+		case GDK_KEY_v:
+		case GDK_KEY_V:
+			payment_number = gsb_data_payment_get_number_by_name ( _("Transfer"),
+					account_number );
+			if ( payment_number )
+				gsb_payment_method_set_combobox_history ( widget, payment_number, TRUE );
+
+			return TRUE;
+			break;
+		}
+	}
+
+	return FALSE;
 }
 
 
@@ -2336,415 +2338,415 @@ gboolean gsb_form_key_press_event ( GtkWidget *widget,
  * */
 gboolean gsb_form_finish_edition ( void )
 {
-    gint transaction_number;
-    GSList *payee_list;
-    GSList *list_tmp;
-    gint account_number;
-    gint new_transaction;
-    gboolean is_transaction;
-    gboolean execute_scheduled = FALSE;
-    gint saved_scheduled_number = 0;
-    gint source_transaction_number = -1;
-    gint nbre_passage = 0;
-    gint mother_number;
-
-    devel_debug (NULL);
-
-    /* get the number of the transaction, stored in the form (< 0 if new ) */
-    transaction_number = GPOINTER_TO_INT (g_object_get_data ( G_OBJECT ( transaction_form ),
-                                "transaction_number_in_form" ));
-
-    /* set a debug here, if transaction_number is 0, should look for where it comes */
-    if (!transaction_number)
-        notice_debug ("Coming in gsb_form_finish_edition with a 0 number of transaction. "
-                        "This is a bug,\nplease try to do it again and report the bug.");
-
-    account_number = gsb_form_get_account_number ();
-
-    /* check if we finish a transaction or a scheduled transaction
-     * we have to decide if it's a transaction or a scheduled transaction,
-     * and if it's a scheduled, if we execute it (and create transaction) or work on it*/
-    if (gsb_form_get_origin () == ORIGIN_VALUE_SCHEDULED
-     ||
-     gsb_form_get_origin () == ORIGIN_VALUE_HOME )
-    {
-        if (g_object_get_data ( G_OBJECT (transaction_form), "execute_scheduled"))
-        {
-           /* we want to execute the scheduled transaction */
-           is_transaction = TRUE;
-           execute_scheduled = TRUE;
-
-           /* we need to keep the number of scheduled, to check later if there is
-            * some children and modifie the scheduled transaction */
-           saved_scheduled_number = transaction_number;
-           /* as it's a new transaction, do the same as a white line */
-           transaction_number = -1;
-        }
-        else
-            is_transaction = FALSE;
-    }
-    else
-        is_transaction = TRUE;
-
-    /* a new transaction has a number < 0
-     * -1 for the general white line
-     *  -2, -3, ... for the white lines of scheduled transactions
-     *  or it's an execution of scheduled transaction */
-    if ( transaction_number < 0 ) 
-        new_transaction = 1;
-    else
-        new_transaction = 0;
-
-    /* check if the datas are ok */
-    if ( !gsb_form_validate_form_transaction (transaction_number, is_transaction))
-        return FALSE;
-
-    /* if the party is a report, we make as transactions as the number of parties in the
-     * report. So we create a list with the party's numbers or -1 if it's a normal
-     * party */
-    payee_list = gsb_form_transaction_get_parties_list_from_report ();
-
-    /* now we go throw the list */
-    list_tmp = payee_list;
-
-    while ( list_tmp )
-    {
-        if ( GPOINTER_TO_INT (list_tmp -> data) == -1 )
-            /* it's a normal party, we set the list_tmp to NULL */
-            list_tmp = NULL;
-        else
-        {
-            /* it's a report, so each time we come here we set the parti's combofix to the
-             * party of the report */
-
-            if ( !list_tmp -> data )
-            {
-                dialogue_error ( _("No payee selected for this report."));
-                return FALSE;
-            }
-            else
-            {
-                GtkWidget *widget;
-                gint payment_number;
-
-                if ( nbre_passage == 0 )
-                {
-                    widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_PARTY );
-                    gtk_combofix_set_text ( GTK_COMBOFIX ( widget ),
-                                gsb_data_payee_get_name ( GPOINTER_TO_INT (
-                                list_tmp -> data ), TRUE ) );
-                    gsb_form_widget_set_empty ( GTK_WIDGET ( GTK_COMBOFIX ( widget ) -> entry ), FALSE );
-                }
-                else
-                {
-                    transaction_number = gsb_data_transaction_new_transaction ( account_number );
-
-                    gsb_data_transaction_copy_transaction ( source_transaction_number,
-                                    transaction_number, TRUE );
-                    gsb_data_transaction_set_party_number ( transaction_number,
-                                    GPOINTER_TO_INT ( list_tmp -> data ) );
-
-                    /* if it's not the first party and the method of payment has to change its number (cheque),
-                     * we increase the number. as we are in a party's list, it's always a new transactio, 
-                     * so we know that it's not the first if transaction_number is not 0 */
-
-                    payment_number = gsb_data_transaction_get_method_of_payment_number (
-                                    source_transaction_number);
-
-                    if ( gsb_data_payment_get_automatic_numbering ( payment_number ) )
-                    {
-                        gchar *tmpstr;
-
-                        tmpstr = gsb_data_payment_incremente_last_number ( payment_number,
-                                        nbre_passage );
-                        gsb_data_transaction_set_method_of_payment_content (
-                                        transaction_number,
-                                        tmpstr );
-                        g_free ( tmpstr ) ;
-                    }
-                    gsb_transactions_list_append_new_transaction ( transaction_number, TRUE);
-                }
-                nbre_passage++;
-            }
-
-            list_tmp = list_tmp -> next;
-            if ( list_tmp == NULL )
-                break;
-            else if ( nbre_passage > 1 )
-                continue;
-        }
-
-        /* now we create the transaction if necessary and set the mother in case of child of split */
-        if ( new_transaction )
-        {
-            /* it's a new transaction, we create it, and set the mother if necessary */
-            gint mother_transaction = 0;
-
-            /* if we are on a white child (ie number < -1, -1 is only for the general white line),
-             * get the mother of transaction */
-            if ( transaction_number < -1 )
-                mother_transaction = gsb_data_mix_get_mother_transaction_number (
-                                            transaction_number, is_transaction);
-            transaction_number = gsb_data_mix_new_transaction (account_number, is_transaction);
-            if ( source_transaction_number == -1 )
-                source_transaction_number = transaction_number;
-
-            gsb_data_mix_set_mother_transaction_number ( transaction_number,
-                                 mother_transaction,
-                                 is_transaction );
-
-            /* si l'opération mère est rapprochée on marque aussi la fille */
-            if ( mother_transaction
-             &&
-             gsb_data_transaction_get_marked_transaction ( mother_transaction ) == OPERATION_RAPPROCHEE )
-            {
-                gsb_data_transaction_set_marked_transaction ( transaction_number, OPERATION_RAPPROCHEE );
-                gsb_data_transaction_set_reconcile_number ( transaction_number,
-                        gsb_data_transaction_get_reconcile_number ( mother_transaction ) );
-            }
-        }
-
-        /* take the datas in the form, except the category */
-        gsb_form_take_datas_from_form ( transaction_number, is_transaction );
-
-        /* si l'opération est une opération planifiée exécutée on met en forme TRANSACTION_FORM_CHEQUE */
-        if ( execute_scheduled )
-        {
-            gint payment_number;
-
-            payment_number = gsb_data_transaction_get_method_of_payment_number ( transaction_number );
-
-            if ( gsb_data_payment_get_automatic_numbering ( payment_number ) )
-            {
-                gchar *tmp_str;
-
-                tmp_str = gsb_data_payment_incremente_last_number ( payment_number, 1 );
-                gsb_data_transaction_set_method_of_payment_content (
-                                transaction_number,
-                                tmp_str );
-                g_free ( tmp_str ) ;
-            }
-        }
-
-        /* perhaps the currency button is not shown
-         * in that case, we give the account currency to that transaction */
-        if ( new_transaction
-             &&
-             !gsb_form_widget_get_widget (TRANSACTION_FORM_DEVISE))
-            gsb_data_mix_set_currency_number ( transaction_number,
-                               gsb_data_account_get_currency (account_number),
-                               is_transaction );
-
-        /* get the category and do the stuff with that (contra-transaction...) */
-        gsb_form_get_categories ( transaction_number,
-                      new_transaction,
-                      is_transaction );
-
-        /* for the rest we need to split for transactions/scheduled */
-        if (is_transaction)
-        {
-            /* it's a transaction or an execution of scheduled transaction */
-            if ( new_transaction )
-            {
-            gint split_transaction_number;
-
-            gsb_transactions_list_append_new_transaction (transaction_number, TRUE);
-
-            /* if it's a real new transaction and if it's a split, we ask if the user wants
-             * to recover previous children */
-            if ( gsb_data_transaction_get_split_of_transaction (transaction_number)
-                 &&
-                 !execute_scheduled
-                 &&
-                 gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (form_button_recover_split))
-                 &&
-                 (split_transaction_number = gsb_form_transactions_look_for_last_party ( gsb_data_transaction_get_party_number (transaction_number),
-                                                     transaction_number,
-                                                     gsb_data_transaction_get_account_number(transaction_number))))
-                gsb_form_transaction_recover_splits_of_transaction ( transaction_number,
-                                         split_transaction_number);
-            }
-            else
-            {
-            /* update a transaction */
-            gsb_transactions_list_update_transaction (transaction_number);
-
-            /* we are on a modification of transaction, but if the modified transaction is a split
-             * and has no children (ie only white line), we assume the user wants now fill the children, so we will do the
-             * same as for a new transaction : open the expander and select the white line */
-            if (transaction_list_get_n_children (transaction_number) == 1)
-            {
-                new_transaction = TRUE;
-                gsb_transactions_list_switch_expander (transaction_number);
-            }
-            }
-        }
-        else
-        {
-            /* it's a scheduled transaction */
-            gsb_form_scheduler_get_scheduler_part (transaction_number);
-
-            if (new_transaction)
-            {
-            gint split_transaction_number;
-
-            gsb_scheduler_list_append_new_scheduled ( transaction_number,
-                                  gsb_scheduler_list_get_end_date_scheduled_showed ());
-            /* recover if necessary previous children */
-            if (gsb_data_scheduled_get_split_of_scheduled (transaction_number)
-                &&
-                gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (form_button_recover_split))
-                &&
-                (split_transaction_number = gsb_form_transactions_look_for_last_party ( gsb_data_scheduled_get_party_number (transaction_number),
-                                                    0,
-                                                    gsb_data_scheduled_get_account_number(transaction_number))))
-                gsb_form_scheduler_recover_splits_of_transaction ( transaction_number,
-                                           split_transaction_number);
-            }
-            else
-            gsb_scheduler_list_update_transaction_in_list (transaction_number);
-
-            /* needed for the two in case of we change the date */
-            gsb_scheduler_list_set_background_color (gsb_scheduler_list_get_tree_view ());
-            gsb_calendar_update ();
-        }
-    }
-    g_slist_free ( payee_list );
-
-    /* if it's a reconciliation and we modify a transaction, check
-     * the amount of marked transactions */
-    if ( is_transaction && run.equilibrage )
-    {
-        if (new_transaction)
-            /* we are reconciling and it's a new transaction, so need to show the checkbox */
-            transaction_list_show_toggle_mark (TRUE);
-        else
-        {
-            gsb_reconcile_update_amounts (NULL, NULL);
-        }
-    }
-
-    /* if we executed a scheduled transation, need to increase the date of the scheduled
-     * and execute the children if it's a split */
-    if (execute_scheduled)
-    {
-        gint increase_result;
-
-        /* first, check if it's a scheduled split and execute the childrent */
-        if ( gsb_data_scheduled_get_split_of_scheduled (saved_scheduled_number) )
-            gsb_scheduler_execute_children_of_scheduled_transaction ( saved_scheduled_number,
-                        transaction_number );
- 
-        /* now we can increase the scheduled transaction */
-        increase_result = gsb_scheduler_increase_scheduled ( saved_scheduled_number );
-
-        /* the next step is to update the list, but do it only if we are on the scheduled
-         * list, else we needn't because the update will be done when going to that list */
-        if (gsb_gui_navigation_get_current_page () == GSB_SCHEDULER_PAGE)
-        {
-            if (increase_result)
-                gsb_scheduler_list_update_transaction_in_list ( saved_scheduled_number );
-
-            gsb_scheduler_list_set_background_color ( gsb_scheduler_list_get_tree_view () );
-        }
-    }
-
-    /* if it was a new transaction, do the stuff to do another new transaction */
-    if ( new_transaction && !execute_scheduled )
-    {
-        /* we are on a new transaction, if that transaction is a split,
-         * we give the focus to the new white line created for that and
-         * edit it, for that we need to open the transaction to select the
-         * white line, and set it as current transaction */
-        if ( gsb_data_mix_get_split_of_transaction (transaction_number, is_transaction))
-        {
-            /* it's a split */
-            gint white_line_number;
-
-            white_line_number = gsb_data_mix_get_white_line (transaction_number, is_transaction);
-            if ( is_transaction )
-                transaction_list_select ( white_line_number );
-            else
-                gsb_scheduler_list_select (white_line_number);
-        }
-
-        /* it was a new transaction, we save the last date entry */
-        gsb_date_set_last_date ( gtk_entry_get_text (
-                        GTK_ENTRY ( gsb_form_widget_get_widget ( TRANSACTION_FORM_DATE ) ) ) );
-
-        /* we need to use edit_transaction to make a new child split if necessary */
-        if ( is_transaction)
-            gsb_transactions_list_edit_transaction (
-                        gsb_data_account_get_current_transaction_number ( account_number ) );
-        else
-            gsb_scheduler_list_edit_transaction ( gsb_scheduler_list_get_current_scheduled_number ( ) );
-    }
-    else
-        gsb_form_hide ();
-
-    /* on sort de la saisie des opérations filles si variance == 0 */
-    if ( ( mother_number = gsb_data_mix_get_mother_transaction_number ( transaction_number, is_transaction ) ) )
-    {
-        if ( is_transaction
-         &&
-         transaction_list_get_variance ( gsb_data_account_get_current_transaction_number ( account_number ) ) )
-            transaction_list_select ( mother_number );
-        else if ( !is_transaction && !execute_scheduled && gsb_data_scheduled_get_variance ( mother_number ) )
-            gsb_scheduler_list_select ( mother_number );
-    }
-
-    /* if it was a modification of transaction, we need to update the sort and colors
-     * (done automatically for new transaction) */
-    if ( is_transaction && !new_transaction )
-        gsb_transactions_list_update_tree_view (account_number, TRUE);
-
-    /* show the warnings */
-    if ( is_transaction )
-    {
-        affiche_dialogue_soldes_minimaux ();
-        update_transaction_in_trees ( transaction_number );
-        if ( gsb_data_transaction_get_marked_transaction ( transaction_number ) == OPERATION_POINTEE )
-        {
-            gsb_navigation_update_statement_label ( account_number );
-            mise_a_jour_liste_comptes_accueil = 1;
-        }
-    }
-
-    /* as we modify or create a transaction, we invalidate the current report */
-    gsb_report_set_current ( 0 );
-
-    /* force the update module budget */
-    gsb_data_account_set_bet_maj ( account_number, BET_MAJ_ALL );
-
-    gsb_file_set_modified ( TRUE );
-
-    /* If the origin of the operation is a model, so we select the new transaction */
-    if ( GPOINTER_TO_INT (g_object_get_data ( G_OBJECT ( transaction_form ),
-     "transaction_selected_in_form" ) ) == -1 )
-    {
-        transaction_list_select ( transaction_number );
-        return FALSE;
-    }
-
-    if ( execute_scheduled )
-    {
-        GtkTreeSelection *selection;
-        GtkTreePath *path;
-
-        selection = gtk_tree_view_get_selection ( GTK_TREE_VIEW ( gsb_scheduler_list_get_tree_view ( ) ) );
-        path = gtk_tree_path_new_from_string ( "0" );
-        gtk_tree_selection_select_path ( selection, path );
-
-        gtk_tree_path_free ( path );
-    }
-
-    /* give the focus to the date widget */
-    if ( is_transaction )
-        gsb_form_widget_set_focus ( TRANSACTION_FORM_DATE );
-    else
-        gsb_scheduler_list_edit_transaction (gsb_scheduler_list_get_current_scheduled_number ());
-
-    return FALSE;
+	gint transaction_number;
+	GSList *payee_list;
+	GSList *list_tmp;
+	gint account_number;
+	gint new_transaction;
+	gboolean is_transaction;
+	gboolean execute_scheduled = FALSE;
+	gint saved_scheduled_number = 0;
+	gint source_transaction_number = -1;
+	gint nbre_passage = 0;
+	gint mother_number;
+
+	devel_debug (NULL);
+
+	/* get the number of the transaction, stored in the form (< 0 if new ) */
+	transaction_number = GPOINTER_TO_INT (g_object_get_data ( G_OBJECT ( transaction_form ),
+			"transaction_number_in_form" ));
+
+	/* set a debug here, if transaction_number is 0, should look for where it comes */
+	if (!transaction_number)
+		notice_debug ("Coming in gsb_form_finish_edition with a 0 number of transaction. "
+				"This is a bug,\nplease try to do it again and report the bug.");
+
+	account_number = gsb_form_get_account_number ();
+
+	/* check if we finish a transaction or a scheduled transaction
+	 * we have to decide if it's a transaction or a scheduled transaction,
+	 * and if it's a scheduled, if we execute it (and create transaction) or work on it*/
+	if (gsb_form_get_origin () == ORIGIN_VALUE_SCHEDULED
+			||
+			gsb_form_get_origin () == ORIGIN_VALUE_HOME )
+	{
+		if (g_object_get_data ( G_OBJECT (transaction_form), "execute_scheduled"))
+		{
+			/* we want to execute the scheduled transaction */
+			is_transaction = TRUE;
+			execute_scheduled = TRUE;
+
+			/* we need to keep the number of scheduled, to check later if there is
+			 * some children and modifie the scheduled transaction */
+			saved_scheduled_number = transaction_number;
+			/* as it's a new transaction, do the same as a white line */
+			transaction_number = -1;
+		}
+		else
+			is_transaction = FALSE;
+	}
+	else
+		is_transaction = TRUE;
+
+	/* a new transaction has a number < 0
+	 * -1 for the general white line
+	 *  -2, -3, ... for the white lines of scheduled transactions
+	 *  or it's an execution of scheduled transaction */
+	if ( transaction_number < 0 )
+		new_transaction = 1;
+	else
+		new_transaction = 0;
+
+	/* check if the datas are ok */
+	if ( !gsb_form_validate_form_transaction (transaction_number, is_transaction))
+		return FALSE;
+
+	/* if the party is a report, we make as transactions as the number of parties in the
+	 * report. So we create a list with the party's numbers or -1 if it's a normal
+	 * party */
+	payee_list = gsb_form_transaction_get_parties_list_from_report ();
+
+	/* now we go throw the list */
+	list_tmp = payee_list;
+
+	while ( list_tmp )
+	{
+		if ( GPOINTER_TO_INT (list_tmp -> data) == -1 )
+			/* it's a normal party, we set the list_tmp to NULL */
+			list_tmp = NULL;
+		else
+		{
+			/* it's a report, so each time we come here we set the parti's combofix to the
+			 * party of the report */
+
+			if ( !list_tmp -> data )
+			{
+				dialogue_error ( _("No payee selected for this report."));
+				return FALSE;
+			}
+			else
+			{
+				GtkWidget *widget;
+				gint payment_number;
+
+				if ( nbre_passage == 0 )
+				{
+					widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_PARTY );
+					gtk_combofix_set_text ( GTK_COMBOFIX ( widget ),
+							gsb_data_payee_get_name ( GPOINTER_TO_INT (
+									list_tmp -> data ), TRUE ) );
+					gsb_form_widget_set_empty ( GTK_WIDGET ( GTK_COMBOFIX ( widget ) -> entry ), FALSE );
+				}
+				else
+				{
+					transaction_number = gsb_data_transaction_new_transaction ( account_number );
+
+					gsb_data_transaction_copy_transaction ( source_transaction_number,
+							transaction_number, TRUE );
+					gsb_data_transaction_set_party_number ( transaction_number,
+							GPOINTER_TO_INT ( list_tmp -> data ) );
+
+					/* if it's not the first party and the method of payment has to change its number (cheque),
+					 * we increase the number. as we are in a party's list, it's always a new transactio,
+					 * so we know that it's not the first if transaction_number is not 0 */
+
+					payment_number = gsb_data_transaction_get_method_of_payment_number (
+							source_transaction_number);
+
+					if ( gsb_data_payment_get_automatic_numbering ( payment_number ) )
+					{
+						gchar *tmpstr;
+
+						tmpstr = gsb_data_payment_incremente_last_number ( payment_number,
+								nbre_passage );
+						gsb_data_transaction_set_method_of_payment_content (
+								transaction_number,
+								tmpstr );
+						g_free ( tmpstr ) ;
+					}
+					gsb_transactions_list_append_new_transaction ( transaction_number, TRUE);
+				}
+				nbre_passage++;
+			}
+
+			list_tmp = list_tmp -> next;
+			if ( list_tmp == NULL )
+				break;
+			else if ( nbre_passage > 1 )
+				continue;
+		}
+
+		/* now we create the transaction if necessary and set the mother in case of child of split */
+		if ( new_transaction )
+		{
+			/* it's a new transaction, we create it, and set the mother if necessary */
+			gint mother_transaction = 0;
+
+			/* if we are on a white child (ie number < -1, -1 is only for the general white line),
+			 * get the mother of transaction */
+			if ( transaction_number < -1 )
+				mother_transaction = gsb_data_mix_get_mother_transaction_number (
+						transaction_number, is_transaction);
+			transaction_number = gsb_data_mix_new_transaction (account_number, is_transaction);
+			if ( source_transaction_number == -1 )
+				source_transaction_number = transaction_number;
+
+			gsb_data_mix_set_mother_transaction_number ( transaction_number,
+					mother_transaction,
+					is_transaction );
+
+			/* si l'opération mère est rapprochée on marque aussi la fille */
+			if ( mother_transaction
+					&&
+					gsb_data_transaction_get_marked_transaction ( mother_transaction ) == OPERATION_RAPPROCHEE )
+			{
+				gsb_data_transaction_set_marked_transaction ( transaction_number, OPERATION_RAPPROCHEE );
+				gsb_data_transaction_set_reconcile_number ( transaction_number,
+						gsb_data_transaction_get_reconcile_number ( mother_transaction ) );
+			}
+		}
+
+		/* take the datas in the form, except the category */
+		gsb_form_take_datas_from_form ( transaction_number, is_transaction );
+
+		/* si l'opération est une opération planifiée exécutée on met en forme TRANSACTION_FORM_CHEQUE */
+		if ( execute_scheduled )
+		{
+			gint payment_number;
+
+			payment_number = gsb_data_transaction_get_method_of_payment_number ( transaction_number );
+
+			if ( gsb_data_payment_get_automatic_numbering ( payment_number ) )
+			{
+				gchar *tmp_str;
+
+				tmp_str = gsb_data_payment_incremente_last_number ( payment_number, 1 );
+				gsb_data_transaction_set_method_of_payment_content (
+						transaction_number,
+						tmp_str );
+				g_free ( tmp_str ) ;
+			}
+		}
+
+		/* perhaps the currency button is not shown
+		 * in that case, we give the account currency to that transaction */
+		if ( new_transaction
+				&&
+				!gsb_form_widget_get_widget (TRANSACTION_FORM_DEVISE))
+			gsb_data_mix_set_currency_number ( transaction_number,
+					gsb_data_account_get_currency (account_number),
+					is_transaction );
+
+		/* get the category and do the stuff with that (contra-transaction...) */
+		gsb_form_get_categories ( transaction_number,
+				new_transaction,
+				is_transaction );
+
+		/* for the rest we need to split for transactions/scheduled */
+		if (is_transaction)
+		{
+			/* it's a transaction or an execution of scheduled transaction */
+			if ( new_transaction )
+			{
+				gint split_transaction_number;
+
+				gsb_transactions_list_append_new_transaction (transaction_number, TRUE);
+
+				/* if it's a real new transaction and if it's a split, we ask if the user wants
+				 * to recover previous children */
+				if ( gsb_data_transaction_get_split_of_transaction (transaction_number)
+						&&
+						!execute_scheduled
+						&&
+						gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (form_button_recover_split))
+				&&
+				(split_transaction_number = gsb_form_transactions_look_for_last_party ( gsb_data_transaction_get_party_number (transaction_number),
+						transaction_number,
+						gsb_data_transaction_get_account_number(transaction_number))))
+					gsb_form_transaction_recover_splits_of_transaction ( transaction_number,
+							split_transaction_number);
+			}
+			else
+			{
+				/* update a transaction */
+				gsb_transactions_list_update_transaction (transaction_number);
+
+				/* we are on a modification of transaction, but if the modified transaction is a split
+				 * and has no children (ie only white line), we assume the user wants now fill the children, so we will do the
+				 * same as for a new transaction : open the expander and select the white line */
+				if (transaction_list_get_n_children (transaction_number) == 1)
+				{
+					new_transaction = TRUE;
+					gsb_transactions_list_switch_expander (transaction_number);
+				}
+			}
+		}
+		else
+		{
+			/* it's a scheduled transaction */
+			gsb_form_scheduler_get_scheduler_part (transaction_number);
+
+			if (new_transaction)
+			{
+				gint split_transaction_number;
+
+				gsb_scheduler_list_append_new_scheduled ( transaction_number,
+						gsb_scheduler_list_get_end_date_scheduled_showed ());
+				/* recover if necessary previous children */
+				if (gsb_data_scheduled_get_split_of_scheduled (transaction_number)
+						&&
+						gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (form_button_recover_split))
+						&&
+						(split_transaction_number = gsb_form_transactions_look_for_last_party ( gsb_data_scheduled_get_party_number (transaction_number),
+								0,
+								gsb_data_scheduled_get_account_number(transaction_number))))
+					gsb_form_scheduler_recover_splits_of_transaction ( transaction_number,
+							split_transaction_number);
+			}
+			else
+				gsb_scheduler_list_update_transaction_in_list (transaction_number);
+
+			/* needed for the two in case of we change the date */
+			gsb_scheduler_list_set_background_color (gsb_scheduler_list_get_tree_view ());
+			gsb_calendar_update ();
+		}
+	}
+	g_slist_free ( payee_list );
+
+	/* if it's a reconciliation and we modify a transaction, check
+	 * the amount of marked transactions */
+	if ( is_transaction && run.equilibrage )
+	{
+		if (new_transaction)
+			/* we are reconciling and it's a new transaction, so need to show the checkbox */
+			transaction_list_show_toggle_mark (TRUE);
+		else
+		{
+			gsb_reconcile_update_amounts (NULL, NULL);
+		}
+	}
+
+	/* if we executed a scheduled transation, need to increase the date of the scheduled
+	 * and execute the children if it's a split */
+	if (execute_scheduled)
+	{
+		gint increase_result;
+
+		/* first, check if it's a scheduled split and execute the childrent */
+		if ( gsb_data_scheduled_get_split_of_scheduled (saved_scheduled_number) )
+			gsb_scheduler_execute_children_of_scheduled_transaction ( saved_scheduled_number,
+					transaction_number );
+
+		/* now we can increase the scheduled transaction */
+		increase_result = gsb_scheduler_increase_scheduled ( saved_scheduled_number );
+
+		/* the next step is to update the list, but do it only if we are on the scheduled
+		 * list, else we needn't because the update will be done when going to that list */
+		if (gsb_gui_navigation_get_current_page () == GSB_SCHEDULER_PAGE)
+		{
+			if (increase_result)
+				gsb_scheduler_list_update_transaction_in_list ( saved_scheduled_number );
+
+			gsb_scheduler_list_set_background_color ( gsb_scheduler_list_get_tree_view () );
+		}
+	}
+
+	/* if it was a new transaction, do the stuff to do another new transaction */
+	if ( new_transaction && !execute_scheduled )
+	{
+		/* we are on a new transaction, if that transaction is a split,
+		 * we give the focus to the new white line created for that and
+		 * edit it, for that we need to open the transaction to select the
+		 * white line, and set it as current transaction */
+		if ( gsb_data_mix_get_split_of_transaction (transaction_number, is_transaction))
+		{
+			/* it's a split */
+			gint white_line_number;
+
+			white_line_number = gsb_data_mix_get_white_line (transaction_number, is_transaction);
+			if ( is_transaction )
+				transaction_list_select ( white_line_number );
+			else
+				gsb_scheduler_list_select (white_line_number);
+		}
+
+		/* it was a new transaction, we save the last date entry */
+		gsb_date_set_last_date ( gtk_entry_get_text (
+				GTK_ENTRY ( gsb_form_widget_get_widget ( TRANSACTION_FORM_DATE ) ) ) );
+
+		/* we need to use edit_transaction to make a new child split if necessary */
+		if ( is_transaction)
+			gsb_transactions_list_edit_transaction (
+					gsb_data_account_get_current_transaction_number ( account_number ) );
+		else
+			gsb_scheduler_list_edit_transaction ( gsb_scheduler_list_get_current_scheduled_number ( ) );
+	}
+	else
+		gsb_form_hide ();
+
+	/* on sort de la saisie des opérations filles si variance == 0 */
+	if ( ( mother_number = gsb_data_mix_get_mother_transaction_number ( transaction_number, is_transaction ) ) )
+	{
+		if ( is_transaction
+				&&
+				transaction_list_get_variance ( gsb_data_account_get_current_transaction_number ( account_number ) ) )
+			transaction_list_select ( mother_number );
+		else if ( !is_transaction && !execute_scheduled && gsb_data_scheduled_get_variance ( mother_number ) )
+			gsb_scheduler_list_select ( mother_number );
+	}
+
+	/* if it was a modification of transaction, we need to update the sort and colors
+	 * (done automatically for new transaction) */
+	if ( is_transaction && !new_transaction )
+		gsb_transactions_list_update_tree_view (account_number, TRUE);
+
+	/* show the warnings */
+	if ( is_transaction )
+	{
+		affiche_dialogue_soldes_minimaux ();
+		update_transaction_in_trees ( transaction_number );
+		if ( gsb_data_transaction_get_marked_transaction ( transaction_number ) == OPERATION_POINTEE )
+		{
+			gsb_navigation_update_statement_label ( account_number );
+			mise_a_jour_liste_comptes_accueil = 1;
+		}
+	}
+
+	/* as we modify or create a transaction, we invalidate the current report */
+	gsb_report_set_current ( 0 );
+
+	/* force the update module budget */
+	gsb_data_account_set_bet_maj ( account_number, BET_MAJ_ALL );
+
+	gsb_file_set_modified ( TRUE );
+
+	/* If the origin of the operation is a model, so we select the new transaction */
+	if ( GPOINTER_TO_INT (g_object_get_data ( G_OBJECT ( transaction_form ),
+			"transaction_selected_in_form" ) ) == -1 )
+	{
+		transaction_list_select ( transaction_number );
+		return FALSE;
+	}
+
+	if ( execute_scheduled )
+	{
+		GtkTreeSelection *selection;
+		GtkTreePath *path;
+
+		selection = gtk_tree_view_get_selection ( GTK_TREE_VIEW ( gsb_scheduler_list_get_tree_view ( ) ) );
+		path = gtk_tree_path_new_from_string ( "0" );
+		gtk_tree_selection_select_path ( selection, path );
+
+		gtk_tree_path_free ( path );
+	}
+
+	/* give the focus to the date widget */
+	if ( is_transaction )
+		gsb_form_widget_set_focus ( TRANSACTION_FORM_DATE );
+	else
+		gsb_scheduler_list_edit_transaction (gsb_scheduler_list_get_current_scheduled_number ());
+
+	return FALSE;
 }
 
 
@@ -2758,317 +2760,318 @@ gboolean gsb_form_finish_edition ( void )
  * \return TRUE or FALSE
  * */
 gboolean gsb_form_validate_form_transaction ( gint transaction_number,
-                        gboolean is_transaction )
+		gboolean is_transaction )
 {
-    GtkWidget *widget;
-    GtkWidget *date_widget;
-    gchar* tmpstr;
-    gint mother_number;
-    gint account_number;
-
-    devel_debug_int ( transaction_number );
-
-    account_number = gsb_form_get_account_number ( );
-
-    /* check if it's a daughter split */
-    mother_number = gsb_data_mix_get_mother_transaction_number ( transaction_number, is_transaction );
-
-    /* begin to work with dates */
-    date_widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_DATE );
-
-    /* check the date exists */
-    if ( gsb_form_widget_check_empty ( date_widget ) )
-    {
-        dialogue_error ( _("You must enter a date.") );
-        return (FALSE);
-    }
-
-    /* check the date ok */
-    if ( !gsb_date_check_entry ( date_widget ) )
-    {
-        tmpstr = g_strdup_printf ( _("Invalid date %s"),
-					   gtk_entry_get_text ( GTK_ENTRY ( date_widget ) ) );
-        dialogue_error ( tmpstr );
-        g_free( tmpstr );
-        gtk_editable_select_region ( GTK_EDITABLE ( date_widget ), 0, -1 );
-        gtk_widget_grab_focus ( date_widget );
-
-        return (FALSE);
-    }
-    else
-    {
-        if ( save_form_date )
-            g_date_free ( save_form_date );
-        save_form_date = gsb_date_copy ( gsb_calendar_entry_get_date ( date_widget ) );
-    }
-
-    /* work with value date */
-    widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_VALUE_DATE );
-
-    if ( widget && ! gsb_form_widget_check_empty ( widget ) )
-    {
-        if ( !gsb_date_check_entry ( widget ) )
-        {
-            tmpstr = g_strdup_printf ( _("Invalid value date %s"),
-                           gtk_entry_get_text (GTK_ENTRY (widget)));
-            dialogue_error ( tmpstr );
-            g_free ( tmpstr );
-            gtk_editable_select_region ( GTK_EDITABLE ( widget ), 0, -1 );
-            gtk_widget_grab_focus ( widget );
-
-            return (FALSE);
-        }
-        else if ( is_transaction
-         && gsb_data_transaction_get_marked_transaction ( transaction_number ) == OPERATION_RAPPROCHEE
-         && mother_number == 0 )
-        {
-            GDate *value_date;
-            const GDate *init_date;
-            const GDate *final_date;
-            gint reconcile_number;
-
-            value_date = gsb_calendar_entry_get_date ( widget );
-            reconcile_number = gsb_data_transaction_get_reconcile_number ( transaction_number );
-            init_date = gsb_data_reconcile_get_init_date ( reconcile_number );
-            final_date = gsb_data_reconcile_get_final_date ( reconcile_number );
-            if ( g_date_compare ( value_date, init_date ) < 0
-             ||
-             g_date_compare ( value_date, final_date ) > 0 )
-            {
-                tmpstr = g_strdup_printf ( _("Beware the date must be between %s and %s"),
-                                    gsb_format_gdate ( init_date ),
-                                    gsb_format_gdate ( final_date ) );
-                dialogue_hint ( tmpstr, _("Invalid date") );
-
-                g_free( tmpstr );
-
-                gsb_calendar_entry_set_color ( widget, FALSE );
-                gtk_editable_select_region ( GTK_EDITABLE ( widget ), 0, -1 );
-                gtk_widget_grab_focus ( widget );
-
-                return FALSE;
-            }
-        }
-    }
-    else    /* contrôle de la date de l'opération rapprochée si pas de date de valeur */
-    {
-        if ( is_transaction
-         && gsb_data_transaction_get_marked_transaction ( transaction_number ) == OPERATION_RAPPROCHEE
-         && mother_number == 0 )
-        {
-            const GDate *final_date;
-            gint reconcile_number;
-
-            reconcile_number = gsb_data_transaction_get_reconcile_number ( transaction_number );
-            final_date = gsb_data_reconcile_get_final_date ( reconcile_number );
-            if ( g_date_compare ( save_form_date, final_date ) > 0 )
-            {
-                tmpstr = g_strdup_printf ( _("The date must be less than or equal to %s"),
-                                    gsb_format_gdate ( final_date ) );
-                dialogue_hint ( tmpstr, _("Invalid date") );
-
-                g_free( tmpstr );
-
-                gsb_calendar_entry_set_color ( date_widget, FALSE );
-                gtk_editable_select_region ( GTK_EDITABLE ( date_widget ), 0, -1 );
-                gtk_widget_grab_focus ( date_widget );
-
-                return FALSE;
-            }
-        }
-    }
-
-    /* check if debit or credit is > 0 */
-    widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_DEBIT );
-
-    if ( widget && mother_number )
-    {
-        gsb_real number = null_real;
-
-        if ( gsb_form_widget_check_empty ( widget ) == FALSE )
-            number = utils_real_get_from_string ( gtk_entry_get_text ( GTK_ENTRY ( widget ) ) );
-            
-	    if ( gsb_form_widget_check_empty ( widget ) == TRUE
-         ||
-         number.mantissa == 0 )
-        {
-            widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_CREDIT );
-            number = utils_real_get_from_string ( gtk_entry_get_text ( GTK_ENTRY ( widget ) ) );
-
-            if ( gsb_form_widget_check_empty ( widget ) == TRUE
-             ||
-             number.mantissa == 0 )
-            {
-                dialogue_error ( _("You must enter an amount.") );
-
-                return (FALSE);
-            }
-        }
-    }
-    
-    /* now work with the categories */
-    widget = gsb_form_widget_get_widget (TRANSACTION_FORM_CATEGORY);
-
-    /* check if it's a daughter split that the category is not a split of transaction */
-    if ( widget
-	 &&
-	 !gsb_form_widget_check_empty (GTK_COMBOFIX (widget) -> entry)
-	 &&
-	 mother_number
-	 &&
-	 !strcmp ( gtk_combofix_get_text (GTK_COMBOFIX (widget)),
-		   _("Split of transaction")))
-    {
-	dialogue_error ( _("You cannot set split of transaction in category for a daughter "
-                        "of a split of transaction.") );
-	return (FALSE);
-    }
-
-    /* check it's not a transfer on itself and the contra-account exists
-     * !!! widget is already set to the category, don't change it before */
-    if ( widget
-	 &&
-	 !gsb_form_widget_check_empty (GTK_COMBOFIX (widget) -> entry))
-    {
-	gint account_transfer;
-
-	account_transfer = gsb_form_check_for_transfer (gtk_combofix_get_text (GTK_COMBOFIX (widget)));
-
-	switch (account_transfer)
+	GtkWidget *widget;
+	GtkWidget *date_widget;
+	gchar* tmpstr;
+	gint mother_number;
+	gint account_number;
+
+	devel_debug_int ( transaction_number );
+
+	account_number = gsb_form_get_account_number ( );
+
+	/* check if it's a daughter split */
+	mother_number = gsb_data_mix_get_mother_transaction_number ( transaction_number, is_transaction );
+
+	/* begin to work with dates */
+	date_widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_DATE );
+
+	/* check the date exists */
+	if ( gsb_form_widget_check_empty ( date_widget ) )
+	{
+		dialogue_error ( _("You must enter a date.") );
+		return (FALSE);
+	}
+
+	/* check the date ok */
+	if ( !gsb_date_check_entry ( date_widget ) )
+	{
+		tmpstr = g_strdup_printf ( _("Invalid date %s"),
+				gtk_entry_get_text ( GTK_ENTRY ( date_widget ) ) );
+		dialogue_error ( tmpstr );
+		g_free( tmpstr );
+		gtk_editable_select_region ( GTK_EDITABLE ( date_widget ), 0, -1 );
+		gtk_widget_grab_focus ( date_widget );
+
+		return (FALSE);
+	}
+	else
+	{
+		if ( save_form_date )
+			g_date_free ( save_form_date );
+		save_form_date = gsb_date_copy ( gsb_calendar_entry_get_date ( date_widget ) );
+	}
+
+	/* work with value date */
+	widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_VALUE_DATE );
+
+	if ( widget && ! gsb_form_widget_check_empty ( widget ) )
+	{
+		if ( !gsb_date_check_entry ( widget ) )
+		{
+			tmpstr = g_strdup_printf ( _("Invalid value date %s"),
+					gtk_entry_get_text (GTK_ENTRY (widget)));
+			dialogue_error ( tmpstr );
+			g_free ( tmpstr );
+			gtk_editable_select_region ( GTK_EDITABLE ( widget ), 0, -1 );
+			gtk_widget_grab_focus ( widget );
+
+			return (FALSE);
+		}
+		else if ( is_transaction
+				&& gsb_data_transaction_get_marked_transaction ( transaction_number ) == OPERATION_RAPPROCHEE
+				&& mother_number == 0 )
+		{
+			GDate *value_date;
+			const GDate *init_date;
+			const GDate *final_date;
+			gint reconcile_number;
+
+			value_date = gsb_calendar_entry_get_date ( widget );
+			reconcile_number = gsb_data_transaction_get_reconcile_number ( transaction_number );
+			init_date = gsb_data_reconcile_get_init_date ( reconcile_number );
+			final_date = gsb_data_reconcile_get_final_date ( reconcile_number );
+			if ( g_date_compare ( value_date, init_date ) < 0
+					||
+					g_date_compare ( value_date, final_date ) > 0 )
+			{
+				tmpstr = g_strdup_printf ( _("Beware the date must be between %s and %s"),
+						gsb_format_gdate ( init_date ),
+						gsb_format_gdate ( final_date ) );
+				dialogue_hint ( tmpstr, _("Invalid date") );
+
+				g_free( tmpstr );
+
+				gsb_calendar_entry_set_color ( widget, FALSE );
+				gtk_editable_select_region ( GTK_EDITABLE ( widget ), 0, -1 );
+				gtk_widget_grab_focus ( widget );
+
+				return FALSE;
+			}
+		}
+	}
+	else    /* contrôle de la date de l'opération rapprochée si pas de date de valeur */
+	{
+		if ( is_transaction
+				&& gsb_data_transaction_get_marked_transaction ( transaction_number ) == OPERATION_RAPPROCHEE
+				&& mother_number == 0 )
+		{
+			const GDate *final_date;
+			gint reconcile_number;
+
+			reconcile_number = gsb_data_transaction_get_reconcile_number ( transaction_number );
+			final_date = gsb_data_reconcile_get_final_date ( reconcile_number );
+			if ( g_date_compare ( save_form_date, final_date ) > 0 )
+			{
+				tmpstr = g_strdup_printf ( _("The date must be less than or equal to %s"),
+						gsb_format_gdate ( final_date ) );
+				dialogue_hint ( tmpstr, _("Invalid date") );
+
+				g_free( tmpstr );
+
+				gsb_calendar_entry_set_color ( date_widget, FALSE );
+				gtk_editable_select_region ( GTK_EDITABLE ( date_widget ), 0, -1 );
+				gtk_widget_grab_focus ( date_widget );
+
+				return FALSE;
+			}
+		}
+	}
+
+	/* check if debit or credit is > 0 */
+	widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_DEBIT );
+
+	if ( widget && mother_number )
 	{
-	    /* if the check returns -3, it's not a transfer, so it's a normal category */
-	    case -3:
-		break;
+		gsb_real number = null_real;
 
-		/* if the check returns -2, it's a deleted account (refuse for scheduled transaction)*/
-	    case -2:
-		if (is_transaction)
-		{
-		    gsb_data_transaction_set_category_number ( transaction_number,
-							       0 );
-		    gsb_data_transaction_set_sub_category_number ( transaction_number,
-								   0 );
-		    gsb_data_transaction_set_contra_transaction_number ( transaction_number,
-									 -1);
-		}
-		else
+		if ( gsb_form_widget_check_empty ( widget ) == FALSE )
+			number = utils_real_get_from_string ( gtk_entry_get_text ( GTK_ENTRY ( widget ) ) );
+
+		if ( gsb_form_widget_check_empty ( widget ) == TRUE
+				||
+				number.mantissa == 0 )
 		{
-		    dialogue_error ( _("Cannot associate a transfer to a deleted account in a scheduled transaction."));
-		    return FALSE;
+			widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_CREDIT );
+			number = utils_real_get_from_string ( gtk_entry_get_text ( GTK_ENTRY ( widget ) ) );
+
+			if ( gsb_form_widget_check_empty ( widget ) == TRUE
+					||
+					number.mantissa == 0 )
+			{
+				dialogue_error ( _("You must enter an amount.") );
+
+				return (FALSE);
+			}
 		}
-		break;
+	}
 
-		/* if the check returns -1, it's a non existant account */
-	    case -1:
-		dialogue_error ( _("There is no associated account for this transfer or associated account is invalid.") );
+	/* now work with the categories */
+	widget = gsb_form_widget_get_widget (TRANSACTION_FORM_CATEGORY);
+
+	/* check if it's a daughter split that the category is not a split of transaction */
+	if ( widget
+			&&
+			!gsb_form_widget_check_empty (GTK_COMBOFIX (widget) -> entry)
+			&&
+			mother_number
+			&&
+			!strcmp ( gtk_combofix_get_text (GTK_COMBOFIX (widget)),
+					_("Split of transaction")))
+	{
+		dialogue_error ( _("You cannot set split of transaction in category for a daughter "
+				"of a split of transaction.") );
 		return (FALSE);
-		break;
+	}
 
-		/* all other values are a number of account */
-	    default :
-		if (account_transfer == account_number)
-		{
-		    dialogue_error ( _("Can't issue a transfer its own account.") );
-		    return (FALSE);
-		}
-		if ( gsb_data_account_get_closed_account (account_transfer) )
+	/* check it's not a transfer on itself and the contra-account exists
+	 * !!! widget is already set to the category, don't change it before */
+	if ( widget
+			&&
+			!gsb_form_widget_check_empty (GTK_COMBOFIX (widget) -> entry))
+	{
+		gint account_transfer;
+
+		account_transfer = gsb_form_check_for_transfer (gtk_combofix_get_text (GTK_COMBOFIX (widget)));
+
+		switch (account_transfer)
 		{
-		    dialogue_error ( _("Can't issue a transfer on a closed account." ));
-		    return ( FALSE );
+		/* if the check returns -3, it's not a transfer, so it's a normal category */
+		case -3:
+			break;
+
+			/* if the check returns -2, it's a deleted account (refuse for scheduled transaction)*/
+		case -2:
+			if (is_transaction)
+			{
+				gsb_data_transaction_set_category_number ( transaction_number,
+						0 );
+				gsb_data_transaction_set_sub_category_number ( transaction_number,
+						0 );
+				gsb_data_transaction_set_contra_transaction_number ( transaction_number,
+						-1);
+			}
+			else
+			{
+				dialogue_error ( _("Cannot associate a transfer to a deleted account in a scheduled transaction."));
+				return FALSE;
+			}
+			break;
+
+			/* if the check returns -1, it's a non existant account */
+		case -1:
+			dialogue_error ( _("There is no associated account for this transfer or associated account is invalid.") );
+			return (FALSE);
+			break;
+
+			/* all other values are a number of account */
+		default :
+			if (account_transfer == account_number)
+			{
+				dialogue_error ( _("Can't issue a transfer its own account.") );
+				return (FALSE);
+			}
+			if ( gsb_data_account_get_closed_account (account_transfer) )
+			{
+				dialogue_error ( _("Can't issue a transfer on a closed account." ));
+				return ( FALSE );
+			}
+			break;
 		}
 	}
-    }
 
-    /* for the automatic method of payment entry (especially cheques)
-     * check if not used before (only for new transaction) */
-    widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_CHEQUE );
+	/* for the automatic method of payment entry (especially cheques)
+	 * check if not used before (only for new transaction) */
+	widget = gsb_form_widget_get_widget ( TRANSACTION_FORM_CHEQUE );
 
-    if ( widget
-	 &&
-	 gtk_widget_get_visible (widget))
-    {
-	GtkWidget *combo_box;
-	gint payment;
+	if ( widget
+			&&
+			gtk_widget_get_visible (widget))
+	{
+		GtkWidget *combo_box;
+		gint payment;
 
-	combo_box = gsb_form_widget_get_widget (TRANSACTION_FORM_TYPE);
-	payment = gsb_payment_method_get_selected_number (combo_box);
+		combo_box = gsb_form_widget_get_widget (TRANSACTION_FORM_TYPE);
+		payment = gsb_payment_method_get_selected_number (combo_box);
 
-	if (gsb_data_payment_get_automatic_numbering (payment))
-	{
-	    /* check if there is something in */
-
-	    if ( gsb_form_widget_check_empty ( widget ) )
-	    {
-            if ( !question_yes_no ( _("Selected method of payment has an automatic incremental number\n"
-                        "but doesn't contain any number.\nContinue anyway?"),
-                        GTK_RESPONSE_CANCEL ) )
-                return (FALSE);
-	    }
-	    else if ( mother_number == 0 )
-	    {
-		/* check that the number is not used */
-		gint tmp_transaction_number;
-		
-		tmp_transaction_number = gsb_data_transaction_check_content_payment (
-                                    payment,
-                                    gtk_entry_get_text ( GTK_ENTRY ( widget ) ) );
-
-		if ( tmp_transaction_number
-         &&
-         tmp_transaction_number != transaction_number
-         &&
-         !question_yes_no ( _("Warning: this cheque number is already used.\nContinue anyway?"),
-         GTK_RESPONSE_CANCEL ) )
-		    return FALSE;
-	    }
+		if (gsb_data_payment_get_automatic_numbering (payment))
+		{
+			/* check if there is something in */
+
+			if ( gsb_form_widget_check_empty ( widget ) )
+			{
+				if ( !question_yes_no ( _("Selected method of payment has an automatic incremental number\n"
+						"but doesn't contain any number.\nContinue anyway?"),
+						GTK_RESPONSE_CANCEL ) )
+					return (FALSE);
+			}
+			else if ( mother_number == 0 )
+			{
+				/* check that the number is not used */
+				gint tmp_transaction_number;
+
+				tmp_transaction_number = gsb_data_transaction_check_content_payment (
+						payment,
+						gtk_entry_get_text ( GTK_ENTRY ( widget ) ) );
+
+				if ( tmp_transaction_number
+						&&
+						tmp_transaction_number != transaction_number
+						&&
+						!question_yes_no ( _("Warning: this cheque number is already used.\nContinue anyway?"),
+								GTK_RESPONSE_CANCEL ) )
+					return FALSE;
+			}
+		}
 	}
-    }
 
-    /* check if the payee is a report, it must be a new transaction */
-    widget = gsb_form_widget_get_widget (TRANSACTION_FORM_PARTY);
+	/* check if the payee is a report, it must be a new transaction */
+	widget = gsb_form_widget_get_widget (TRANSACTION_FORM_PARTY);
 
-    if (widget)
-    {
-	if (!strncmp ( gtk_combofix_get_text (GTK_COMBOFIX (widget)),
-		       _("Report"),
-		       strlen (_("Report"))))
+	if (widget)
 	{
-	    gchar **tab_char;
+		if (!strncmp ( gtk_combofix_get_text (GTK_COMBOFIX (widget)),
+				_("Report"),
+				strlen (_("Report"))))
+		{
+			gchar **tab_char;
 
-	    /* check if it's a new transaction */
-	    if (transaction_number > 0)
-	    {
-		dialogue_error ( _("A transaction with a multiple payee must be a new one.") );
-		return (FALSE);
-	    }
-	    if ( mother_number > 0 )
-	    {
-		dialogue_error ( _("A transaction with a multiple payee cannot be a split child.") );
-		return (FALSE);
-	    }
+			/* check if it's a new transaction */
+			if (transaction_number > 0)
+			{
+				dialogue_error ( _("A transaction with a multiple payee must be a new one.") );
+				return (FALSE);
+			}
+			if ( mother_number > 0 )
+			{
+				dialogue_error ( _("A transaction with a multiple payee cannot be a split child.") );
+				return (FALSE);
+			}
 
-	    /* check if the report exists */
-	    tab_char = g_strsplit ( gtk_combofix_get_text (GTK_COMBOFIX (widget)),
-				    " : ",
-				    2 );
+			/* check if the report exists */
+			tab_char = g_strsplit ( gtk_combofix_get_text (GTK_COMBOFIX (widget)),
+					" : ",
+					2 );
 
-	    if (!tab_char[1])
-	    {
-		dialogue_error  ( _("The word \"Report\" is reserved. Please use another one."));
-		g_strfreev (tab_char);
-		return FALSE;
-	    }
+			if (!tab_char[1])
+			{
+				dialogue_error  ( _("The word \"Report\" is reserved. Please use another one."));
+				g_strfreev (tab_char);
+				return FALSE;
+			}
 
-	    if (!gsb_data_report_get_report_by_name (tab_char[1]))
-	    {
-		dialogue_error ( _("Invalid multiple payee.") );
-		g_strfreev (tab_char);
-		return (FALSE);
-	    }
-	    g_strfreev (tab_char);
+			if (!gsb_data_report_get_report_by_name (tab_char[1]))
+			{
+				dialogue_error ( _("Invalid multiple payee.") );
+				g_strfreev (tab_char);
+				return (FALSE);
+			}
+			g_strfreev (tab_char);
+		}
 	}
-    }
-    return ( TRUE );
+	return ( TRUE );
 }
 
 
@@ -3081,200 +3084,200 @@ gboolean gsb_form_validate_form_transaction ( gint transaction_number,
  * \return
  * */
 void gsb_form_take_datas_from_form ( gint transaction_number,
-                        gboolean is_transaction )
+		gboolean is_transaction )
 {
-    GSList *tmp_list;
-    GDate *date;
-    GDate *value_date;
-
-    devel_debug_int (transaction_number);
+	GSList *tmp_list;
+	GDate *date;
+	GDate *value_date;
 
-    /* we set a date variable to avoid to parse 2 times, one time for the date,
-     * and perhaps a second time with the financial year
-     * (cannot take it from the transaction if the fyear field is before the date field...) */
-    /* get the date first, because the financial year will use it and it can set before the date in the form */
-    date = gsb_calendar_entry_get_date ( gsb_form_widget_get_widget ( TRANSACTION_FORM_DATE ) );
+	devel_debug_int (transaction_number);
 
-    /* as financial year can be taken with value date, need to get the value date now too,
-     * if TRANSACTION_FORM_VALUE_DATE doesn't exist, value_date will be NULL */
-    value_date = gsb_calendar_entry_get_date (gsb_form_widget_get_widget (TRANSACTION_FORM_VALUE_DATE));
+	/* we set a date variable to avoid to parse 2 times, one time for the date,
+	 * and perhaps a second time with the financial year
+	 * (cannot take it from the transaction if the fyear field is before the date field...) */
+	/* get the date first, because the financial year will use it and it can set before the date in the form */
+	date = gsb_calendar_entry_get_date ( gsb_form_widget_get_widget ( TRANSACTION_FORM_DATE ) );
 
-    tmp_list = gsb_form_widget_get_list ();
+	/* as financial year can be taken with value date, need to get the value date now too,
+	 * if TRANSACTION_FORM_VALUE_DATE doesn't exist, value_date will be NULL */
+	value_date = gsb_calendar_entry_get_date (gsb_form_widget_get_widget (TRANSACTION_FORM_VALUE_DATE));
 
-    while (tmp_list)
-    {
-	struct_element *element;
+	tmp_list = gsb_form_widget_get_list ();
 
-	element = tmp_list -> data;
-
-	switch (element -> element_number)
+	while (tmp_list)
 	{
-	    case TRANSACTION_FORM_DATE:
-		/* set date before */
-		gsb_data_mix_set_date ( transaction_number, date, is_transaction );
-
-		break;
-
-	    case TRANSACTION_FORM_VALUE_DATE:
-		if (gsb_form_widget_check_empty (element -> element_widget)) 
-		    gsb_data_mix_set_value_date ( transaction_number, NULL, is_transaction );
-		else
-		    gsb_data_mix_set_value_date ( transaction_number,
-						  gsb_calendar_entry_get_date (element -> element_widget),
-						  is_transaction );
-		break;
+		struct_element *element;
 
-	    case TRANSACTION_FORM_EXERCICE:
-		if (etat.affichage_exercice_automatique && value_date)
-        {
-            if ( gsb_form_widget_check_empty ( gsb_form_widget_get_widget (
-             TRANSACTION_FORM_VALUE_DATE) ) )
-                gsb_data_mix_set_financial_year_number ( transaction_number,
-                        gsb_fyear_get_fyear_from_combobox (
-                        element -> element_widget, date ), is_transaction );
-            else
-                gsb_data_mix_set_financial_year_number ( transaction_number,
-                        gsb_fyear_get_fyear_from_combobox (
-                        element -> element_widget, value_date ), is_transaction );
-        }
-		else
-		    gsb_data_mix_set_financial_year_number ( transaction_number,
-                        gsb_fyear_get_fyear_from_combobox (
-                        element -> element_widget, date ), is_transaction);
-
-            break;
+		element = tmp_list -> data;
 
-	    case TRANSACTION_FORM_PARTY:
-		if (gsb_form_widget_check_empty (element -> element_widget)) 
-		    gsb_data_mix_set_party_number ( transaction_number, 0, is_transaction );
-		else
+		switch (element -> element_number)
 		{
-		    gsb_data_mix_set_party_number ( transaction_number, 
-                        gsb_data_payee_get_number_by_name (
-                        gtk_combofix_get_text ( GTK_COMBOFIX ( element -> element_widget ) ),
-                        TRUE ), is_transaction );
-		}
-		break;
+		case TRANSACTION_FORM_DATE:
+			/* set date before */
+			gsb_data_mix_set_date ( transaction_number, date, is_transaction );
 
-	    case TRANSACTION_FORM_DEBIT:
-		if (!gsb_form_widget_check_empty (element -> element_widget))
-        {
-            gsb_form_check_auto_separator (element -> element_widget);
-		    gsb_data_mix_set_amount ( transaction_number, gsb_real_opposite (
-                        gsb_utils_edit_calculate_entry ( element -> element_widget )),
-                        is_transaction);
-        }
-		break;
+			break;
 
-	    case TRANSACTION_FORM_CREDIT:
-		if (!gsb_form_widget_check_empty (element -> element_widget)) 
-        {
-            gsb_form_check_auto_separator (element -> element_widget);
-		    gsb_data_mix_set_amount ( transaction_number,
-                        gsb_utils_edit_calculate_entry ( element -> element_widget ),
-                        is_transaction);
-        }
-		break;
+		case TRANSACTION_FORM_VALUE_DATE:
+			if (gsb_form_widget_check_empty (element -> element_widget))
+				gsb_data_mix_set_value_date ( transaction_number, NULL, is_transaction );
+			else
+				gsb_data_mix_set_value_date ( transaction_number,
+						gsb_calendar_entry_get_date (element -> element_widget),
+						is_transaction );
+			break;
 
-	    case TRANSACTION_FORM_BUDGET:
-		if (gsb_form_widget_check_empty (element -> element_widget)) 
-		{
-		    gsb_data_mix_set_budgetary_number ( transaction_number, 0, is_transaction );
-		    gsb_data_mix_set_sub_budgetary_number ( transaction_number, 0, is_transaction );
-		}
-		else
-		    gsb_data_budget_set_budget_from_string ( transaction_number,
-							     gtk_combofix_get_text ( GTK_COMBOFIX ( element -> element_widget )),
-							     is_transaction );
-		break;
+		case TRANSACTION_FORM_EXERCICE:
+			if (etat.affichage_exercice_automatique && value_date)
+			{
+				if ( gsb_form_widget_check_empty ( gsb_form_widget_get_widget (
+						TRANSACTION_FORM_VALUE_DATE) ) )
+					gsb_data_mix_set_financial_year_number ( transaction_number,
+							gsb_fyear_get_fyear_from_combobox (
+									element -> element_widget, date ), is_transaction );
+				else
+					gsb_data_mix_set_financial_year_number ( transaction_number,
+							gsb_fyear_get_fyear_from_combobox (
+									element -> element_widget, value_date ), is_transaction );
+			}
+			else
+				gsb_data_mix_set_financial_year_number ( transaction_number,
+						gsb_fyear_get_fyear_from_combobox (
+								element -> element_widget, date ), is_transaction);
 
-	    case TRANSACTION_FORM_NOTES:
-		if (gsb_form_widget_check_empty (element -> element_widget)) 
-		    gsb_data_mix_set_notes ( transaction_number, NULL, is_transaction );
-		else
-		{
-		    gchar* tmpstr = my_strdup ( gtk_entry_get_text ( GTK_ENTRY ( element -> element_widget )));
-		    gsb_data_mix_set_notes ( transaction_number, tmpstr , is_transaction);
-		    g_free ( tmpstr );
-		}
-		break;
+			break;
 
-	    case TRANSACTION_FORM_TYPE:
-		/* set the type only if visible */
-		if ( gtk_widget_get_visible (element -> element_widget))
-		{
-		    GtkWidget *widget_tmp;
-		    gint payment_number;
+		case TRANSACTION_FORM_PARTY:
+			if (gsb_form_widget_check_empty (element -> element_widget))
+				gsb_data_mix_set_party_number ( transaction_number, 0, is_transaction );
+			else
+			{
+				gsb_data_mix_set_party_number ( transaction_number,
+						gsb_data_payee_get_number_by_name (
+								gtk_combofix_get_text ( GTK_COMBOFIX ( element -> element_widget ) ),
+								TRUE ), is_transaction );
+			}
+			break;
 
-		    payment_number = gsb_payment_method_get_selected_number (element -> element_widget);
+		case TRANSACTION_FORM_DEBIT:
+			if (!gsb_form_widget_check_empty (element -> element_widget))
+			{
+				gsb_form_check_auto_separator (element -> element_widget);
+				gsb_data_mix_set_amount ( transaction_number, gsb_real_opposite (
+						gsb_utils_edit_calculate_entry ( element -> element_widget )),
+						is_transaction);
+			}
+			break;
 
-		    gsb_data_mix_set_method_of_payment_number ( transaction_number, payment_number, is_transaction);
+		case TRANSACTION_FORM_CREDIT:
+			if (!gsb_form_widget_check_empty (element -> element_widget))
+			{
+				gsb_form_check_auto_separator (element -> element_widget);
+				gsb_data_mix_set_amount ( transaction_number,
+						gsb_utils_edit_calculate_entry ( element -> element_widget ),
+						is_transaction);
+			}
+			break;
 
-		    /* set the number of cheque only if visible */
-		    widget_tmp = gsb_form_widget_get_widget (TRANSACTION_FORM_CHEQUE);
-		    if ( gtk_widget_get_visible (widget_tmp)
-			 &&
-			 !gsb_form_widget_check_empty (widget_tmp))
-		    {
-			gsb_data_mix_set_method_of_payment_content ( transaction_number, gtk_entry_get_text (GTK_ENTRY (widget_tmp)), is_transaction);
+		case TRANSACTION_FORM_BUDGET:
+			if (gsb_form_widget_check_empty (element -> element_widget))
+			{
+				gsb_data_mix_set_budgetary_number ( transaction_number, 0, is_transaction );
+				gsb_data_mix_set_sub_budgetary_number ( transaction_number, 0, is_transaction );
+			}
+			else
+				gsb_data_budget_set_budget_from_string ( transaction_number,
+						gtk_combofix_get_text ( GTK_COMBOFIX ( element -> element_widget )),
+						is_transaction );
+			break;
 
-			/* get the last number to increase next time */
-			if ( is_transaction
-			     &&
-			     gsb_data_payment_get_automatic_numbering ( payment_number ) )
-			    gsb_data_payment_set_last_number ( payment_number,
-							       gtk_entry_get_text (GTK_ENTRY ( widget_tmp ) ) );
-		    }
-		    else
-			gsb_data_mix_set_method_of_payment_content ( transaction_number, NULL, is_transaction);
-		}
-		else
-		{
-		    gsb_data_mix_set_method_of_payment_number ( transaction_number, 0, is_transaction );
-		    gsb_data_mix_set_method_of_payment_content ( transaction_number, NULL, is_transaction);
-		}
-		break;
+		case TRANSACTION_FORM_NOTES:
+			if (gsb_form_widget_check_empty (element -> element_widget))
+				gsb_data_mix_set_notes ( transaction_number, NULL, is_transaction );
+			else
+			{
+				gchar* tmpstr = my_strdup ( gtk_entry_get_text ( GTK_ENTRY ( element -> element_widget )));
+				gsb_data_mix_set_notes ( transaction_number, tmpstr , is_transaction);
+				g_free ( tmpstr );
+			}
+			break;
 
-	    case TRANSACTION_FORM_CONTRA:
-		/* here only for scheduled transaction */
-		if (!is_transaction && gtk_widget_get_visible (element -> element_widget))
-		    gsb_data_scheduled_set_contra_method_of_payment_number ( transaction_number,
-									     gsb_payment_method_get_selected_number (element -> element_widget));
-		break;
+		case TRANSACTION_FORM_TYPE:
+			/* set the type only if visible */
+			if ( gtk_widget_get_visible (element -> element_widget))
+			{
+				GtkWidget *widget_tmp;
+				gint payment_number;
+
+				payment_number = gsb_payment_method_get_selected_number (element -> element_widget);
+
+				gsb_data_mix_set_method_of_payment_number ( transaction_number, payment_number, is_transaction);
+
+				/* set the number of cheque only if visible */
+				widget_tmp = gsb_form_widget_get_widget (TRANSACTION_FORM_CHEQUE);
+				if ( gtk_widget_get_visible (widget_tmp)
+						&&
+						!gsb_form_widget_check_empty (widget_tmp))
+				{
+					gsb_data_mix_set_method_of_payment_content ( transaction_number, gtk_entry_get_text (GTK_ENTRY (widget_tmp)), is_transaction);
+
+					/* get the last number to increase next time */
+					if ( is_transaction
+							&&
+							gsb_data_payment_get_automatic_numbering ( payment_number ) )
+						gsb_data_payment_set_last_number ( payment_number,
+								gtk_entry_get_text (GTK_ENTRY ( widget_tmp ) ) );
+				}
+				else
+					gsb_data_mix_set_method_of_payment_content ( transaction_number, NULL, is_transaction);
+			}
+			else
+			{
+				gsb_data_mix_set_method_of_payment_number ( transaction_number, 0, is_transaction );
+				gsb_data_mix_set_method_of_payment_content ( transaction_number, NULL, is_transaction);
+			}
+			break;
 
-	    case TRANSACTION_FORM_DEVISE:
-		gsb_data_mix_set_currency_number ( transaction_number, 
-                        gsb_currency_get_currency_from_combobox (
-                        element -> element_widget), is_transaction );
-		if (is_transaction)
-		    gsb_currency_check_for_change ( transaction_number );
+		case TRANSACTION_FORM_CONTRA:
+			/* here only for scheduled transaction */
+			if (!is_transaction && gtk_widget_get_visible (element -> element_widget))
+				gsb_data_scheduled_set_contra_method_of_payment_number ( transaction_number,
+						gsb_payment_method_get_selected_number (element -> element_widget));
+			break;
 
-		break;
+		case TRANSACTION_FORM_DEVISE:
+			gsb_data_mix_set_currency_number ( transaction_number,
+					gsb_currency_get_currency_from_combobox (
+							element -> element_widget), is_transaction );
+			if (is_transaction)
+				gsb_currency_check_for_change ( transaction_number );
 
-	    case TRANSACTION_FORM_BANK:
-		if (gsb_form_widget_check_empty (element -> element_widget)) 
-		    gsb_data_mix_set_bank_references ( transaction_number, NULL, is_transaction);
-		else
-		{
-		    gchar* tmpstr = my_strdup ( gtk_entry_get_text (GTK_ENTRY(element -> element_widget)));
-		    gsb_data_mix_set_bank_references ( transaction_number, tmpstr, is_transaction);
-		    g_free ( tmpstr );
-		}
-		break;
+			break;
 
-	    case TRANSACTION_FORM_VOUCHER:
-		if (gsb_form_widget_check_empty (element -> element_widget)) 
-		    gsb_data_mix_set_voucher ( transaction_number, NULL, is_transaction);
-		else
-		{
-		    gchar* tmpstr = my_strdup ( gtk_entry_get_text ( GTK_ENTRY ( element -> element_widget )));
-		    gsb_data_mix_set_voucher ( transaction_number, tmpstr, is_transaction);
-		    g_free ( tmpstr );
+		case TRANSACTION_FORM_BANK:
+			if (gsb_form_widget_check_empty (element -> element_widget))
+				gsb_data_mix_set_bank_references ( transaction_number, NULL, is_transaction);
+			else
+			{
+				gchar* tmpstr = my_strdup ( gtk_entry_get_text (GTK_ENTRY(element -> element_widget)));
+				gsb_data_mix_set_bank_references ( transaction_number, tmpstr, is_transaction);
+				g_free ( tmpstr );
+			}
+			break;
+
+		case TRANSACTION_FORM_VOUCHER:
+			if (gsb_form_widget_check_empty (element -> element_widget))
+				gsb_data_mix_set_voucher ( transaction_number, NULL, is_transaction);
+			else
+			{
+				gchar* tmpstr = my_strdup ( gtk_entry_get_text ( GTK_ENTRY ( element -> element_widget )));
+				gsb_data_mix_set_voucher ( transaction_number, tmpstr, is_transaction);
+				g_free ( tmpstr );
+			}
+			break;
 		}
-		break;
+		tmp_list = tmp_list -> next;
 	}
-	tmp_list = tmp_list -> next;
-    }
 }
 
 
@@ -3290,199 +3293,200 @@ void gsb_form_take_datas_from_form ( gint transaction_number,
  * \return FALSE
  * */
 gboolean gsb_form_get_categories ( gint transaction_number,
-                        gint new_transaction,
-                        gboolean is_transaction )
+		gint new_transaction,
+		gboolean is_transaction )
 {
-    GtkWidget *category_combofix;
+	GtkWidget *category_combofix;
 
-    devel_debug_int (transaction_number);
+	devel_debug_int (transaction_number);
 
-    if ( !gsb_data_form_check_for_value ( TRANSACTION_FORM_CATEGORY ))
-	return FALSE;
-
-    category_combofix = gsb_form_widget_get_widget (TRANSACTION_FORM_CATEGORY);
-
-    if (gsb_form_widget_check_empty (category_combofix))
-    {
-	/* there is no category */
-	gsb_data_mix_set_category_number (transaction_number, 0, is_transaction);
-	gsb_data_mix_set_sub_category_number (transaction_number, 0, is_transaction);
-
-	/* if it's a scheduled transaction, we need to set account_transfer to -1 */
-	if (!is_transaction)
-	    gsb_data_scheduled_set_account_number_transfer (transaction_number, -1);
-    }
-    else
-    {
-	gchar *string;
-	gint contra_transaction_number;
+	if ( !gsb_data_form_check_for_value ( TRANSACTION_FORM_CATEGORY ))
+		return FALSE;
 
-    /* On protège la chaine pendant toute l'opération */
-	string = g_strdup ( gtk_combofix_get_text ( GTK_COMBOFIX ( category_combofix ) ) );
+	category_combofix = gsb_form_widget_get_widget (TRANSACTION_FORM_CATEGORY);
 
-	if ( strcmp ( string, _("Split of transaction") ) )
+	if (gsb_form_widget_check_empty (category_combofix))
 	{
-	    /* it's not a split of transaction, if it was one, we delete the
-	     * transaction's daughters */
-	    gint account_transfer;
-
-	    /* carreful : must set == 1 and not != 0 because if problem to get the result,
-	     * that function returns -1 */
-	    if ( !new_transaction
-		 &&
-		 gsb_data_mix_get_split_of_transaction (transaction_number, is_transaction) == 1)
-	    {
-		/* we try to modify a split to a non split transaction */
-		GSList *children_list;
-
-		/* get the number list of children */
-		children_list = gsb_data_mix_get_children (transaction_number, TRUE, is_transaction);
-
-		/* if there is some children, we ask to be sure and delete them */
-		if (children_list)
-		{
-		    GSList *save_children_list;
-
-		    if (!question_yes_no_hint ( _("Modifying a transaction"),
-						_("You are trying to change a split of transaction to another kind of transaction.\n"
-                        "There is some children to that transaction, if you continue, the children will "
-                        "be deleted.\nAre you sure ?"),
-						GTK_RESPONSE_OK ))
-			return FALSE;
-
-		    save_children_list = children_list;
+		/* there is no category */
+		gsb_data_mix_set_category_number (transaction_number, 0, is_transaction);
+		gsb_data_mix_set_sub_category_number (transaction_number, 0, is_transaction);
 
-		    do
-		    {
-                gint transaction_number_tmp;
-
-                transaction_number_tmp = GPOINTER_TO_INT ( save_children_list -> data );
+		/* if it's a scheduled transaction, we need to set account_transfer to -1 */
+		if (!is_transaction)
+			gsb_data_scheduled_set_account_number_transfer (transaction_number, -1);
+	}
+	else
+	{
+		gchar *string;
+		gint contra_transaction_number;
 
-                if ( is_transaction )
-                    gsb_transactions_list_delete_transaction (transaction_number_tmp, FALSE);
-                else
-                    gsb_scheduler_list_delete_scheduled_transaction (transaction_number_tmp,
-                                FALSE);
+		/* On protège la chaine pendant toute l'opération */
+		string = g_strdup ( gtk_combofix_get_text ( GTK_COMBOFIX ( category_combofix ) ) );
 
-                save_children_list = save_children_list -> next;
-		    }
-		    while ( save_children_list );
+		if ( strcmp ( string, _("Split of transaction") ) )
+		{
+			/* it's not a split of transaction, if it was one, we delete the
+			 * transaction's daughters */
+			gint account_transfer;
+
+			/* carreful : must set == 1 and not != 0 because if problem to get the result,
+			 * that function returns -1 */
+			if ( !new_transaction
+					&&
+					gsb_data_mix_get_split_of_transaction (transaction_number, is_transaction) == 1)
+			{
+				/* we try to modify a split to a non split transaction */
+				GSList *children_list;
+
+				/* get the number list of children */
+				children_list = gsb_data_mix_get_children (transaction_number, TRUE, is_transaction);
+
+				/* if there is some children, we ask to be sure and delete them */
+				if (children_list)
+				{
+					GSList *save_children_list;
+
+					if (!question_yes_no_hint ( _("Modifying a transaction"),
+							_("You are trying to change a split of transaction to another kind of transaction.\n"
+									"There is some children to that transaction, if you continue, the children will "
+									"be deleted.\nAre you sure ?"),
+									GTK_RESPONSE_OK ))
+						return FALSE;
+
+					save_children_list = children_list;
+
+					do
+					{
+						gint transaction_number_tmp;
+
+						transaction_number_tmp = GPOINTER_TO_INT ( save_children_list -> data );
+
+						if ( is_transaction )
+							gsb_transactions_list_delete_transaction (transaction_number_tmp, FALSE);
+						else
+							gsb_scheduler_list_delete_scheduled_transaction (transaction_number_tmp,
+									FALSE);
+
+						save_children_list = save_children_list -> next;
+					}
+					while ( save_children_list );
+
+					g_slist_free (save_children_list);
+				}
+				gsb_data_mix_set_split_of_transaction ( transaction_number,
+						0, is_transaction );
+			}
 
-		    g_slist_free (save_children_list);
+			/* now, check if it's a transfer or a normal category */
+			account_transfer = gsb_form_check_for_transfer (string);
+			switch (account_transfer)
+			{
+			/* if the check returns -3, it's not a transfer, so it's a normal category */
+			case -3:
+				/* if it's a modification, check if before it was not a transfer and delete
+				 * the contra-transaction if necessary */
+				if (!new_transaction)
+				{
+					if (is_transaction)
+					{
+						contra_transaction_number = gsb_data_transaction_get_contra_transaction_number (transaction_number);
+						if (contra_transaction_number > 0)
+						{
+							/* it was a transfer, we delete the contra-transaction */
+							gsb_data_transaction_set_contra_transaction_number ( contra_transaction_number,
+									0);
+							gsb_transactions_list_delete_transaction (contra_transaction_number, FALSE );
+							gsb_data_transaction_set_contra_transaction_number ( transaction_number,
+									0);
+						}
+					}
+					else
+						/* if the scheduled transaction was a transfer, it is not anymore, remove that */
+						gsb_data_scheduled_set_account_number_transfer (transaction_number, 0);
+				}
+				gsb_data_category_fill_transaction_by_string ( transaction_number,
+						string, is_transaction );
+				break;
+
+			case -2:
+				/* if the check returns -2, it's a deleted account, so set -1 for transaction number transfer
+				 * normally cannot come here if scheduled transaction, but in case,
+				 * we set data_mix to protect */
+				gsb_data_mix_set_transaction_number_transfer ( transaction_number,
+						-1, is_transaction );
+				/* we don't set any break here, so with the case -1 the
+				 * category will be set to 0 (!! let the case -1 after here) */
+
+			case -1:
+				/* if the check returns -1, it's a transfert to non existant account,
+				 * so do nothing */
+				gsb_data_mix_set_category_number ( transaction_number,
+						0, is_transaction );
+				gsb_data_mix_set_sub_category_number ( transaction_number,
+						0, is_transaction );
+				break;
+
+				/* all other values are a number of account */
+			default :
+				/* need to check a lot of things and create the contra-transaction for a transaction,
+				 * but nothing to do for a scheduled transaction because no contra-transaction */
+				if (is_transaction)
+					gsb_form_transaction_validate_transfer ( transaction_number,
+							new_transaction,
+							account_transfer );
+				else
+					gsb_data_scheduled_set_account_number_transfer (transaction_number, account_transfer);
+				break;
+			}
 		}
-		gsb_data_mix_set_split_of_transaction ( transaction_number,
-							    0, is_transaction );
-	    }
-
-	    /* now, check if it's a transfer or a normal category */
-	    account_transfer = gsb_form_check_for_transfer (string);
-	    switch (account_transfer)
-	    {
-		/* if the check returns -3, it's not a transfer, so it's a normal category */
-		case -3:
-		    /* if it's a modification, check if before it was not a transfer and delete
-		     * the contra-transaction if necessary */
-		    if (!new_transaction)
-		    {
-			if (is_transaction)
+		else
+		{
+			/* it's a split of transaction */
+			/* if it was a transfer, we delete the contra-transaction */
+			gint contra_transaction_number = gsb_data_transaction_get_contra_transaction_number (transaction_number);
+			if ( is_transaction
+					&&
+					!new_transaction
+					&&
+					contra_transaction_number > 0 )
 			{
-			    contra_transaction_number = gsb_data_transaction_get_contra_transaction_number (transaction_number);
-			    if (contra_transaction_number > 0)
-			    {
-				/* it was a transfer, we delete the contra-transaction */
 				gsb_data_transaction_set_contra_transaction_number ( contra_transaction_number,
-										     0);
+						0);
 				gsb_transactions_list_delete_transaction (contra_transaction_number, FALSE );
+
 				gsb_data_transaction_set_contra_transaction_number ( transaction_number,
-										     0);
-			    }
+						0);
 			}
-			else
-			    /* if the scheduled transaction was a transfer, it is not anymore, remove that */
-			    gsb_data_scheduled_set_account_number_transfer (transaction_number, 0);
-		    }
-		    gsb_data_category_fill_transaction_by_string ( transaction_number,
-								   string, is_transaction );
-		    break;
 
-		case -2:
-		    /* if the check returns -2, it's a deleted account, so set -1 for transaction number transfer
-		     * normally cannot come here if scheduled transaction, but in case,
-		     * we set data_mix to protect */
-		    gsb_data_mix_set_transaction_number_transfer ( transaction_number,
-								   -1, is_transaction );
-		    /* we don't set any break here, so with the case -1 the 
-		     * category will be set to 0 (!! let the case -1 after here) */
+			/* if it's a modification of a transaction and it was not a split,
+			 * but it is now, we add a white line as first child */
+			if (!new_transaction
+					&&
+					!gsb_data_mix_get_split_of_transaction (transaction_number, is_transaction))
+			{
+				if (!is_transaction)
+					gsb_scheduler_list_append_new_scheduled ( gsb_data_scheduled_new_white_line (transaction_number),
+							gsb_data_scheduled_get_limit_date (transaction_number ));
+			}
 
-		case -1:
-		    /* if the check returns -1, it's a transfert to non existant account,
-		     * so do nothing */
-		    gsb_data_mix_set_category_number ( transaction_number,
-						       0, is_transaction );
-		    gsb_data_mix_set_sub_category_number ( transaction_number,
-							   0, is_transaction );
-		    break;
-
-		    /* all other values are a number of account */
-		default :
-		    /* need to check a lot of things and create the contra-transaction for a transaction,
-		     * but nothing to do for a scheduled transaction because no contra-transaction */
-		    if (is_transaction)
-			gsb_form_transaction_validate_transfer ( transaction_number,
-								 new_transaction,
-								 account_transfer );
-		    else
-			gsb_data_scheduled_set_account_number_transfer (transaction_number, account_transfer);
-	    }
-	}
-	else
-	{
-	    /* it's a split of transaction */
-	    /* if it was a transfer, we delete the contra-transaction */
-	    gint contra_transaction_number = gsb_data_transaction_get_contra_transaction_number (transaction_number);
-	    if ( is_transaction
-		 &&
-		 !new_transaction
-		 &&
-		 contra_transaction_number > 0 )
-	    {
-		gsb_data_transaction_set_contra_transaction_number ( contra_transaction_number,
-								     0);
-		gsb_transactions_list_delete_transaction (contra_transaction_number, FALSE );
-
-		gsb_data_transaction_set_contra_transaction_number ( transaction_number,
-								     0);
-	    }
-
-	    /* if it's a modification of a transaction and it was not a split,
-	     * but it is now, we add a white line as first child */
-	    if (!new_transaction
-		&&
-		!gsb_data_mix_get_split_of_transaction (transaction_number, is_transaction))
-	    {
-		if (!is_transaction)
-		    gsb_scheduler_list_append_new_scheduled ( gsb_data_scheduled_new_white_line (transaction_number),
-							      gsb_data_scheduled_get_limit_date (transaction_number ));
-	    }
-
-	    gsb_data_mix_set_split_of_transaction ( transaction_number,
-							1, is_transaction );
-	    gsb_data_mix_set_category_number ( transaction_number,
-					       0, is_transaction );
-	    gsb_data_mix_set_sub_category_number ( transaction_number,
-						   0, is_transaction );
-
-	    /* normally the following widgets are hidden for a split, but if the user really
-	     * want he can annoy us and set an budget for example, and after cry because problems
-	     * in reports... so, erase here budget and financial year, if ever they are defined */
-	    gsb_data_mix_set_budgetary_number (transaction_number, 0, is_transaction);
-	    gsb_data_mix_set_sub_budgetary_number (transaction_number, 0, is_transaction);
-	    gsb_data_mix_set_voucher (transaction_number, NULL, is_transaction);
+			gsb_data_mix_set_split_of_transaction ( transaction_number,
+					1, is_transaction );
+			gsb_data_mix_set_category_number ( transaction_number,
+					0, is_transaction );
+			gsb_data_mix_set_sub_category_number ( transaction_number,
+					0, is_transaction );
+
+			/* normally the following widgets are hidden for a split, but if the user really
+			 * want he can annoy us and set an budget for example, and after cry because problems
+			 * in reports... so, erase here budget and financial year, if ever they are defined */
+			gsb_data_mix_set_budgetary_number (transaction_number, 0, is_transaction);
+			gsb_data_mix_set_sub_budgetary_number (transaction_number, 0, is_transaction);
+			gsb_data_mix_set_voucher (transaction_number, NULL, is_transaction);
+		}
+		g_free ( string );
 	}
-        g_free ( string );
-    }
 
-    return FALSE;
+	return FALSE;
 }
 
 
@@ -3496,39 +3500,40 @@ gboolean gsb_form_get_categories ( gint transaction_number,
  * */
 gboolean gsb_form_escape_form ( void )
 {
-    devel_debug (NULL);
+	devel_debug (NULL);
 
-    switch ( gsb_form_get_origin ())
-    {
+	switch ( gsb_form_get_origin ())
+	{
 	case ORIGIN_VALUE_OTHER:
-	    notice_debug ("Should not come here... (gsb_form_escape_form)");
-	    gtk_widget_grab_focus ( gsb_gui_navigation_get_tree_view ( ) );
-	    break;
+		notice_debug ("Should not come here... (gsb_form_escape_form)");
+		gtk_widget_grab_focus ( gsb_gui_navigation_get_tree_view ( ) );
+		break;
 
 	case ORIGIN_VALUE_HOME:
-	    gtk_widget_grab_focus ( run.window );
-	    break;
+		gtk_widget_grab_focus ( run.window );
+		break;
 
 	case ORIGIN_VALUE_SCHEDULED:
-	    gtk_widget_grab_focus (gsb_scheduler_list_get_tree_view ());
-	    break;
+		gtk_widget_grab_focus (gsb_scheduler_list_get_tree_view ());
+		break;
 
 	default:
-	    gtk_widget_grab_focus (gsb_transactions_list_get_tree_view());
-    }
-
-    /* in all case clean the scheduler part of the form */
-    gsb_form_scheduler_clean ();
-
-    if ( etat.formulaire_toujours_affiche )
-    {
-        gsb_form_clean ( gsb_form_get_account_number ( ) );
-    }
-    else
-    {
-        gtk_expander_set_expanded ( GTK_EXPANDER ( form_expander ), FALSE );
-    }
-    return FALSE;
+		gtk_widget_grab_focus (gsb_transactions_list_get_tree_view());
+		break;
+	}
+
+	/* in all case clean the scheduler part of the form */
+	gsb_form_scheduler_clean ();
+
+	if ( etat.formulaire_toujours_affiche )
+	{
+		gsb_form_clean ( gsb_form_get_account_number ( ) );
+	}
+	else
+	{
+		gtk_expander_set_expanded ( GTK_EXPANDER ( form_expander ), FALSE );
+	}
+	return FALSE;
 }
 
 
@@ -3543,86 +3548,86 @@ gboolean gsb_form_escape_form ( void )
  * \return FALSE
  * */
 gboolean gsb_form_allocate_size ( GtkWidget *table,
-                        GtkAllocation *allocation,
-                        gpointer null )
+		GtkAllocation *allocation,
+		gpointer null )
 {
-    gint row, column;
-    gint account_number;
-    GtkWidget *widget;
-
-    if (! gsb_form_is_visible ( ) )
-        return FALSE;
-
-    if ( allocation == NULL )
-        return FALSE;
-
-    account_number = gsb_form_get_account_number ();
-    if ( account_number == -2 )
-        return FALSE;
-
-    if (saved_allocation_size == allocation -> width)
-    {
-        saved_allocation_size = 0;
-        return FALSE;
-    }
-    saved_allocation_size = allocation -> width;
-
-    /* set the size for all columns - 1 to avoid recursive call to that function,
-     * so the last column size is set to be beautiful, but in fact, it's just the extra-space */
-    for ( row=0 ; row < gsb_data_form_get_nb_rows (account_number) - 1 ; row++ )
-	for ( column=0 ; column < gsb_data_form_get_nb_columns (account_number) ; column++ )
+	gint row, column;
+	gint account_number;
+	GtkWidget *widget;
+
+	if (! gsb_form_is_visible ( ) )
+		return FALSE;
+
+	if ( allocation == NULL )
+		return FALSE;
+
+	account_number = gsb_form_get_account_number ();
+	if ( account_number == -2 )
+		return FALSE;
+
+	if (saved_allocation_size == allocation -> width)
 	{
-	    widget = gsb_form_widget_get_widget ( gsb_data_form_get_value ( account_number,
-									    column,
-									    row ));
-	    if ( widget )
-		gtk_widget_set_size_request ( widget,
-				       gsb_data_form_get_width_column (account_number,
-								       column ) * allocation -> width / 100,
-				       -1 );
+		saved_allocation_size = 0;
+		return FALSE;
 	}
+	saved_allocation_size = allocation -> width;
 
-    for ( column = 0 ; column < 6 ; column++ )
-    {
-	gint width_percent = 0;
-
-	widget = gsb_form_scheduler_get_element_widget(column);
+	/* set the size for all columns - 1 to avoid recursive call to that function,
+	 * so the last column size is set to be beautiful, but in fact, it's just the extra-space */
+	for ( row=0 ; row < gsb_data_form_get_nb_rows (account_number) - 1 ; row++ )
+		for ( column=0 ; column < gsb_data_form_get_nb_columns (account_number) ; column++ )
+		{
+			widget = gsb_form_widget_get_widget ( gsb_data_form_get_value ( account_number,
+					column,
+					row ));
+			if ( widget )
+				gtk_widget_set_size_request ( widget,
+						gsb_data_form_get_width_column (account_number,
+								column ) * allocation -> width / 100,
+								-1 );
+		}
 
-	if (widget)
+	for ( column = 0 ; column < 6 ; column++ )
 	{
-	    switch (column)
-	    {
-		case SCHEDULED_FORM_ACCOUNT:
-		    width_percent = 30;
-		    break;
-
-		case SCHEDULED_FORM_AUTO:
-		    width_percent = 16;
-		    break;
-
-		case SCHEDULED_FORM_FREQUENCY_BUTTON:
-		    width_percent = 16;
-		    break;
-
-		case SCHEDULED_FORM_LIMIT_DATE:
-		    width_percent = 12;
-		    break;
-
-		case SCHEDULED_FORM_FREQUENCY_USER_ENTRY:
-		    width_percent = 7;
-		    break;
-
-		case SCHEDULED_FORM_FREQUENCY_USER_BUTTON:
-		    width_percent = 12;
-		    break;
-	    }
-	    if (widget && GTK_IS_WIDGET (widget))
-		gtk_widget_set_size_request ( widget,
-				       width_percent * allocation -> width / 100,
-				       -1 );
+		gint width_percent = 0;
+
+		widget = gsb_form_scheduler_get_element_widget(column);
+
+		if (widget)
+		{
+			switch (column)
+			{
+			case SCHEDULED_FORM_ACCOUNT:
+				width_percent = 30;
+				break;
+
+			case SCHEDULED_FORM_AUTO:
+				width_percent = 16;
+				break;
+
+			case SCHEDULED_FORM_FREQUENCY_BUTTON:
+				width_percent = 16;
+				break;
+
+			case SCHEDULED_FORM_LIMIT_DATE:
+				width_percent = 12;
+				break;
+
+			case SCHEDULED_FORM_FREQUENCY_USER_ENTRY:
+				width_percent = 7;
+				break;
+
+			case SCHEDULED_FORM_FREQUENCY_USER_BUTTON:
+				width_percent = 12;
+				break;
+			}
+			if (widget && GTK_IS_WIDGET (widget))
+				gtk_widget_set_size_request ( widget,
+						width_percent * allocation -> width / 100,
+						-1 );
+		}
 	}
-    }
-    return FALSE;
+	return FALSE;
 }
 
 
@@ -3637,34 +3642,34 @@ gboolean gsb_form_allocate_size ( GtkWidget *table,
  * \return FALSE
  * */
 gboolean gsb_form_button_press ( GtkWidget *vbox,
-                        GdkEventButton *ev,
-                        gpointer null )
+		GdkEventButton *ev,
+		gpointer null )
 {
-    GtkWidget *menu, *menu_item;
+	GtkWidget *menu, *menu_item;
 
-    devel_debug (NULL);
+	devel_debug (NULL);
 
-    if ( ev -> button != RIGHT_BUTTON )
-	return FALSE;
+	if ( ev -> button != RIGHT_BUTTON )
+		return FALSE;
 
-    menu = gtk_menu_new ();
+	menu = gtk_menu_new ();
 
-    /* propose to configure the form */
-    menu_item = gtk_image_menu_item_new_with_label ( _("Configure the form") );
-    gtk_image_menu_item_set_image ( GTK_IMAGE_MENU_ITEM(menu_item),
-				    gtk_image_new_from_stock ( GTK_STOCK_PROPERTIES,
-							       GTK_ICON_SIZE_MENU ));
-    g_signal_connect ( G_OBJECT(menu_item),
-		       "activate",
-		       G_CALLBACK (gsb_preferences_menu_open),
-		       GINT_TO_POINTER (TRANSACTION_FORM_PAGE));
-    gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), menu_item );
+	/* propose to configure the form */
+	menu_item = gtk_image_menu_item_new_with_label ( _("Configure the form") );
+	gtk_image_menu_item_set_image ( GTK_IMAGE_MENU_ITEM(menu_item),
+			gtk_image_new_from_stock ( GTK_STOCK_PROPERTIES,
+					GTK_ICON_SIZE_MENU ));
+	g_signal_connect ( G_OBJECT(menu_item),
+			"activate",
+			G_CALLBACK (gsb_preferences_menu_open),
+			GINT_TO_POINTER (TRANSACTION_FORM_PAGE));
+	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());
+	/* Finish all. */
+	gtk_widget_show_all (menu);
+	gtk_menu_popup ( GTK_MENU(menu), NULL, NULL, NULL, NULL, 3, gtk_get_current_event_time());
 
-    return FALSE;
+	return FALSE;
 }
 
 
@@ -3673,28 +3678,28 @@ gboolean gsb_form_button_press ( GtkWidget *vbox,
  *
  * \param element_number
  * \param GSList *list
-  *
+ *
  * \return a GtkWidget * or NULL
  * */
 GtkWidget *gsb_form_get_element_widget_from_list ( gint element_number,
-                        GSList *list )
+		GSList *list )
 {
-    GSList *list_tmp;
+	GSList *list_tmp;
 
-    list_tmp = list;
+	list_tmp = list;
 
-    while (list_tmp)
-    {
-        struct_element *element;
+	while (list_tmp)
+	{
+		struct_element *element;
 
-        element = list_tmp -> data;
-        if (element -> element_number == element_number)
-            return element -> element_widget;
+		element = list_tmp -> data;
+		if (element -> element_number == element_number)
+			return element -> element_widget;
 
-        list_tmp = list_tmp -> next;
-    }
+		list_tmp = list_tmp -> next;
+	}
 
-    return NULL;
+	return NULL;
 }
 
 
@@ -3707,46 +3712,46 @@ GtkWidget *gsb_form_get_element_widget_from_list ( gint element_number,
  * */
 gboolean gsb_form_initialise_transaction_form ( void )
 {
-    gint row, column;
-    gint rows_number, columns_number;
-    gint form_account_number;
-    gint account_number;
+	gint row, column;
+	gint rows_number, columns_number;
+	gint form_account_number;
+	gint account_number;
 
-    devel_debug (NULL);
+	devel_debug (NULL);
 
-    /* get the form of the first account */
+	/* get the form of the first account */
 	form_account_number = gsb_data_account_first_number ();
-    account_number = gsb_data_account_first_number ( );
+	account_number = gsb_data_account_first_number ( );
 
-    rows_number = gsb_data_form_get_nb_rows (form_account_number);
-    columns_number = gsb_data_form_get_nb_columns (form_account_number);
+	rows_number = gsb_data_form_get_nb_rows (form_account_number);
+	columns_number = gsb_data_form_get_nb_columns (form_account_number);
 
-    gtk_table_resize ( GTK_TABLE (form_transaction_part),
-		       rows_number,
-		       columns_number );
+	gtk_table_resize ( GTK_TABLE (form_transaction_part),
+			rows_number,
+			columns_number );
 
-    for ( row=0 ; row < rows_number ; row++ )
-	for ( column=0 ; column < columns_number ; column++ )
-	{
-	    GtkWidget *widget;
-	    gint element;
-
-        element = gsb_data_form_get_value ( form_account_nu _number);  ;  gint element_number,    ber),  ber);  ), is_transaction);  ),  number),  ,  ujþ)B+  €Šÿ)B+  …*B+                          ’x+B+  °’§ÿ  €=+B+           …’§ÿ         p„’§ÿ  k€þ)B+  6                    è     è!     è!     @’§ÿ  °’§ÿ  x4+B+           †’§ÿ          ’bþ)B+          †€þ)B+  @’§ÿ  `bþ)B+  ’§ÿ         À/+B+  ujþ)B+    +B+  Ø$+B+  ¨)+B+  €Šÿ)B+          x4+B+           †’§ÿ          p…’§ÿ  k€þ)B+  à!     à!     @’§ÿ  °’§ÿ  Hþú*B+          €‡’§ÿ         ’bþ)B+          †€þ)B+  @’§ÿ  `bþ)B+  ’§ÿ  p’§ÿ  h’§ÿ  8‹*B+  Œp˜        °’§ÿ  ujþ)B+  €Šÿ)B+                  €‡’§ÿ         P†’§ÿ  k€þ)B+          G       H   I       J   K           M   N   O       P   @’§ÿ  °’§ÿ  HµÑ*B+           ‰’§ÿ         ’bþ)B+          †€þ)B+  @’§ÿ         0/+B+  ujþ)B+   @+B+   é®*B+    +B+  Ø$+B+  ¨)+B+  €Šÿ)B+          HµÑ*B+           ‰’§ÿ 
         `‡’§ÿ  k€þ)B+  8µÑ*B+           ‰’§ÿ         ‡’§ÿ  k€þ)B+  (µÑ*B+           ‰’§ÿ         À‡’§ÿ  k€þ)B+  µÑ*B+           ‰’§ÿ         ð‡’§ÿ  k€þ)B+  	       ¨.+B+  ujþ)B+         ¨)+B+  p‚’§ÿ          Š8¯*B+  eiþ)B+         Ø$+B+  ˆ’§ÿ          y8¯*B+  eiþ)B+           +B+  Àˆ’§ÿ          Z8¯*B+  eiþ)B+  Øä®*B+   @+B+   é®*B+    +B+  ØD+B+  Ø$+B+  ¨)+B+  €Šÿ)B+          8‹*B+                        ­z*B+  °’§ÿ  p{®*B+          pŠ’§ÿ          @‰’§ÿ  k€þ)B+      5   6   7   8   :   <   =   >       ?       @   B   D       @’§ÿ  °’§ÿ  à­w*B+                 °’§ÿ  ujþ)B+         …*B+  ðˆ’§ÿ          ­z*B+  eiþ)B+  …*B+          Õ_ at fÆS         Qöl±íÁÃF*B+  °’§ÿ  à­w*B+          €‹’§ÿ         PŠ’§ÿ  k€þ)B+  u]ÞÓ	4Q ÷U^Qʉ§ ¶uª¹ñìò*ēv@’§ÿ  °’§ÿ  HþC*B+          D€*B+          𑒧ÿ  ¦Pâ+B+  ¦Pâ+B+         –}*B+  ’§ÿ  °‘’§ÿ  h’§ÿ  Ќ’§ÿ  O+B+  ujþ)B+  ØD+B+  0“’§ÿ  ¢Pâ+B+   ’’§ÿ          ’§
 ÿ                 ÿÿÿÿÿÿÿÿ¢Pâ+B+          ¸’§ÿ                 mber, column, row );
-		widget = gsb_form_widget_create ( element, account_number );
-
-	    if ( !widget )
-		continue;
-
-	    gtk_table_attach ( GTK_TABLE (form_transaction_part),
-			       widget,
-			       column, column+1,
-			       row, row+1,
-			       gsb_form_get_element_expandable ( element ),
-			       gsb_form_get_element_expandable ( element ),
-			       0, 0);
-	}
+	for ( row=0 ; row < rows_number ; row++ )
+		for ( column=0 ; column < columns_number ; column++ )
+		{
+			GtkWidget *widget;
+			gint element;
+
+			element = gsb_data_form_get_value ( form_account_number, column, row );
+			widget = gsb_form_widget_create ( element, account_number );
+
+			if ( !widget )
+				continue;
+
+			gtk_table_attach ( GTK_TABLE (form_transaction_part),
+					widget,
+					column, column+1,
+					row, row+1,
+					gsb_form_get_element_expandable ( element ),
+					gsb_form_get_element_expandable ( element ),
+					0, 0);
+		}
 
-    return FALSE;
+	return FALSE;
 }
 
 
diff --git a/src/gsb_form_config.c b/src/gsb_form_config.c
index 05a7ef7..f18d279 100644
--- a/src/gsb_form_config.c
+++ b/src/gsb_form_config.c
@@ -585,6 +585,7 @@ gboolean gsb_form_config_toggle_element_button ( GtkWidget *toggle_button )
 
 	default:
 	    no_second_element = -1;
+	    break;
     }
 
     account_number = gsb_account_get_combo_account_number ( accounts_combobox );
diff --git a/src/imputation_budgetaire.c b/src/imputation_budgetaire.c
index cee85cb..80061b4 100644
--- a/src/imputation_budgetaire.c
+++ b/src/imputation_budgetaire.c
@@ -60,10 +60,10 @@
 /*START_STATIC*/
 static void appui_sur_ajout_imputation ( GtkTreeModel * model, GtkButton *button );
 static gboolean budgetary_line_drag_data_get ( GtkTreeDragSource * drag_source, GtkTreePath * path,
-					GtkSelectionData * selection_data );
+		GtkSelectionData * selection_data );
 static gboolean budgetary_line_list_button_press ( GtkWidget *tree_view,
-                        GdkEventButton *ev,
-                        gpointer null );
+		GdkEventButton *ev,
+		gpointer null );
 static void budgetary_line_list_popup_context_menu ( void );
 static gboolean edit_budgetary_line ( GtkTreeView * view );
 static void exporter_ib ( void );
@@ -98,149 +98,149 @@ static struct metatree_hold_position *budgetary_hold_position;
  */
 GtkWidget *budgetary_lines_create_list ( void )
 {
-    GtkWidget *scroll_window;
-    GtkWidget *vbox;
-    GtkTreeViewColumn *column;
-    GtkCellRenderer *cell;
-    GtkTreeDragDestIface * dst_iface;
-    GtkTreeDragSourceIface * src_iface;
-    static GtkTargetEntry row_targets[] = {
-	{ "GTK_TREE_MODEL_ROW", GTK_TARGET_SAME_WIDGET, 0 }
-    };
-
-    /* We create the gtktreeview and model early so that they can be referenced. */
-    budgetary_line_tree = gtk_tree_view_new();
-
-    /* set the color of selected row */
-    utils_set_tree_view_selection_and_text_color ( budgetary_line_tree );
-
-    budgetary_line_tree_model = gtk_tree_store_new ( META_TREE_NUM_COLUMNS,
-						     META_TREE_COLUMN_TYPES );
-
-    /* We create the main vbox */
-    vbox = gtk_vbox_new ( FALSE, 5 );
-    gtk_widget_show ( vbox );
-
-    /* on y ajoute la barre d'outils */
-    budgetary_toolbar = gtk_handle_box_new ( );
-    gtk_widget_show ( budgetary_toolbar );
-    gtk_box_pack_start ( GTK_BOX ( vbox ), budgetary_toolbar, FALSE, FALSE, 0 );
-
-    /* création de l'arbre principal */
-    scroll_window = gtk_scrolled_window_new ( NULL, NULL );
-    gtk_scrolled_window_set_policy ( GTK_SCROLLED_WINDOW ( scroll_window ),
-				     GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC );
-    gtk_scrolled_window_set_shadow_type ( GTK_SCROLLED_WINDOW(scroll_window),
-					  GTK_SHADOW_IN );
-    gtk_box_pack_start ( GTK_BOX ( vbox ), scroll_window, TRUE, TRUE, 0 );
-    gtk_widget_show ( scroll_window );
-
-    /* Create model */
-    gtk_tree_sortable_set_sort_column_id ( GTK_TREE_SORTABLE(budgetary_line_tree_model),
-                        META_TREE_TEXT_COLUMN, GTK_SORT_ASCENDING );
-    gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE(budgetary_line_tree_model),
-                        META_TREE_TEXT_COLUMN, metatree_sort_column,
-                        NULL, NULL );
-    g_object_set_data ( G_OBJECT ( budgetary_line_tree_model), "metatree-interface",
-                        budgetary_line_get_metatree_interface ( ) );
-
-    /* Create container + TreeView */
-    gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (budgetary_line_tree), TRUE);
-    gtk_tree_view_enable_model_drag_source(GTK_TREE_VIEW(budgetary_line_tree),
-					   GDK_BUTTON1_MASK, row_targets, 1,
-					   GDK_ACTION_MOVE | GDK_ACTION_COPY );
-    gtk_tree_view_enable_model_drag_dest ( GTK_TREE_VIEW(budgetary_line_tree), row_targets,
-					   1, GDK_ACTION_MOVE | GDK_ACTION_COPY );
-    gtk_tree_view_set_reorderable (GTK_TREE_VIEW(budgetary_line_tree), TRUE);
-    gtk_tree_selection_set_mode ( gtk_tree_view_get_selection ( GTK_TREE_VIEW(budgetary_line_tree)),
-				  GTK_SELECTION_SINGLE );
-    gtk_tree_view_set_model (GTK_TREE_VIEW (budgetary_line_tree),
-			     GTK_TREE_MODEL (budgetary_line_tree_model));
-    g_object_unref ( G_OBJECT(budgetary_line_tree_model));
-    g_object_set_data ( G_OBJECT(budgetary_line_tree_model), "tree-view",
+	GtkWidget *scroll_window;
+	GtkWidget *vbox;
+	GtkTreeViewColumn *column;
+	GtkCellRenderer *cell;
+	GtkTreeDragDestIface * dst_iface;
+	GtkTreeDragSourceIface * src_iface;
+	static GtkTargetEntry row_targets[] = {
+			{ "GTK_TREE_MODEL_ROW", GTK_TARGET_SAME_WIDGET, 0 }
+	};
+
+	/* We create the gtktreeview and model early so that they can be referenced. */
+	budgetary_line_tree = gtk_tree_view_new();
+
+	/* set the color of selected row */
+	utils_set_tree_view_selection_and_text_color ( budgetary_line_tree );
+
+	budgetary_line_tree_model = gtk_tree_store_new ( META_TREE_NUM_COLUMNS,
+			META_TREE_COLUMN_TYPES );
+
+	/* We create the main vbox */
+	vbox = gtk_vbox_new ( FALSE, 5 );
+	gtk_widget_show ( vbox );
+
+	/* on y ajoute la barre d'outils */
+	budgetary_toolbar = gtk_handle_box_new ( );
+	gtk_widget_show ( budgetary_toolbar );
+	gtk_box_pack_start ( GTK_BOX ( vbox ), budgetary_toolbar, FALSE, FALSE, 0 );
+
+	/* création de l'arbre principal */
+	scroll_window = gtk_scrolled_window_new ( NULL, NULL );
+	gtk_scrolled_window_set_policy ( GTK_SCROLLED_WINDOW ( scroll_window ),
+			GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC );
+	gtk_scrolled_window_set_shadow_type ( GTK_SCROLLED_WINDOW(scroll_window),
+			GTK_SHADOW_IN );
+	gtk_box_pack_start ( GTK_BOX ( vbox ), scroll_window, TRUE, TRUE, 0 );
+	gtk_widget_show ( scroll_window );
+
+	/* Create model */
+	gtk_tree_sortable_set_sort_column_id ( GTK_TREE_SORTABLE(budgetary_line_tree_model),
+			META_TREE_TEXT_COLUMN, GTK_SORT_ASCENDING );
+	gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE(budgetary_line_tree_model),
+			META_TREE_TEXT_COLUMN, metatree_sort_column,
+			NULL, NULL );
+	g_object_set_data ( G_OBJECT ( budgetary_line_tree_model), "metatree-interface",
+			budgetary_line_get_metatree_interface ( ) );
+
+	/* Create container + TreeView */
+	gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (budgetary_line_tree), TRUE);
+	gtk_tree_view_enable_model_drag_source(GTK_TREE_VIEW(budgetary_line_tree),
+			GDK_BUTTON1_MASK, row_targets, 1,
+			GDK_ACTION_MOVE | GDK_ACTION_COPY );
+	gtk_tree_view_enable_model_drag_dest ( GTK_TREE_VIEW(budgetary_line_tree), row_targets,
+			1, GDK_ACTION_MOVE | GDK_ACTION_COPY );
+	gtk_tree_view_set_reorderable (GTK_TREE_VIEW(budgetary_line_tree), TRUE);
+	gtk_tree_selection_set_mode ( gtk_tree_view_get_selection ( GTK_TREE_VIEW(budgetary_line_tree)),
+			GTK_SELECTION_SINGLE );
+	gtk_tree_view_set_model (GTK_TREE_VIEW (budgetary_line_tree),
+			GTK_TREE_MODEL (budgetary_line_tree_model));
+	g_object_unref ( G_OBJECT(budgetary_line_tree_model));
+	g_object_set_data ( G_OBJECT(budgetary_line_tree_model), "tree-view",
 			budgetary_line_tree );
 
-    /* Make category column */
-    cell = gtk_cell_renderer_text_new ();
-    column = gtk_tree_view_column_new_with_attributes (_("Budgetary line"), cell,
-						       "text", META_TREE_TEXT_COLUMN,
-						       "weight", META_TREE_FONT_COLUMN,
-                               "cell-background-gdk", META_TREE_BACKGROUND_COLOR,
-						       NULL);
-    gtk_tree_view_append_column ( GTK_TREE_VIEW ( budgetary_line_tree ),
-				  GTK_TREE_VIEW_COLUMN ( column ) );
-
-    /* Make account column */
-    cell = gtk_cell_renderer_text_new ();
-    column = gtk_tree_view_column_new_with_attributes (_("Account"), cell,
-						       "text", META_TREE_ACCOUNT_COLUMN,
-						       "weight", META_TREE_FONT_COLUMN,
-                               "cell-background-gdk", META_TREE_BACKGROUND_COLOR,
-						       NULL);
-    gtk_tree_view_append_column ( GTK_TREE_VIEW ( budgetary_line_tree ),
-				  GTK_TREE_VIEW_COLUMN ( column ) );
-
-    /* Make amount column */
-    cell = gtk_cell_renderer_text_new ();
-    column = gtk_tree_view_column_new_with_attributes (_("Amount"), cell,
-						       "text", META_TREE_BALANCE_COLUMN,
-						       "weight", META_TREE_FONT_COLUMN,
-						       "xalign", META_TREE_XALIGN_COLUMN,
-                               "cell-background-gdk", META_TREE_BACKGROUND_COLOR,
-						       NULL);
-    gtk_tree_view_column_set_alignment ( column, 1.0 );
-    gtk_tree_view_append_column ( GTK_TREE_VIEW ( budgetary_line_tree ),
-				  GTK_TREE_VIEW_COLUMN ( column ) );
-
-    gtk_container_add ( GTK_CONTAINER ( scroll_window ), budgetary_line_tree );
-    gtk_widget_show ( budgetary_line_tree );
-
-    /* Connect to signals */
-    g_signal_connect ( G_OBJECT ( budgetary_line_tree ),
-                        "row-collapsed",
-                        G_CALLBACK ( division_column_collapsed ),
-                        NULL );
-
-    g_signal_connect ( G_OBJECT ( budgetary_line_tree ),
-                        "row-expanded",
-                        G_CALLBACK ( division_column_expanded ),
-                        NULL );
-
-    g_signal_connect( G_OBJECT ( budgetary_line_tree ),
-                        "row-activated",
-                        G_CALLBACK ( division_activated ),
-                        NULL );
-
-    g_signal_connect ( G_OBJECT ( budgetary_line_tree ),
-                        "button-press-event",
-                        G_CALLBACK ( budgetary_line_list_button_press ),
-                        NULL );
-
-    dst_iface = GTK_TREE_DRAG_DEST_GET_IFACE (budgetary_line_tree_model);
-    if ( dst_iface )
-    {
-	dst_iface -> drag_data_received = &division_drag_data_received;
-	dst_iface -> row_drop_possible = &division_row_drop_possible;
-    }
-
-    src_iface = GTK_TREE_DRAG_SOURCE_GET_IFACE (budgetary_line_tree_model);
-    if ( src_iface )
-    {
-	gtk_selection_add_target (budgetary_line_tree,
-				  GDK_SELECTION_PRIMARY,
-				  GDK_SELECTION_TYPE_ATOM,
-				  1);
-	src_iface -> drag_data_get = &budgetary_line_drag_data_get;
-    }
-
-    g_signal_connect ( gtk_tree_view_get_selection ( GTK_TREE_VIEW(budgetary_line_tree)),
-		       "changed", G_CALLBACK(metatree_selection_changed),
-		       budgetary_line_tree_model );
-
-    /* création de la structure de sauvegarde de la position */
-    budgetary_hold_position = g_malloc0 ( sizeof ( struct metatree_hold_position ) );
-
-    return ( vbox );
+	/* Make category column */
+	cell = gtk_cell_renderer_text_new ();
+	column = gtk_tree_view_column_new_with_attributes (_("Budgetary line"), cell,
+			"text", META_TREE_TEXT_COLUMN,
+			"weight", META_TREE_FONT_COLUMN,
+			"cell-background-gdk", META_TREE_BACKGROUND_COLOR,
+			NULL);
+	gtk_tree_view_append_column ( GTK_TREE_VIEW ( budgetary_line_tree ),
+			GTK_TREE_VIEW_COLUMN ( column ) );
+
+	/* Make account column */
+	cell = gtk_cell_renderer_text_new ();
+	column = gtk_tree_view_column_new_with_attributes (_("Account"), cell,
+			"text", META_TREE_ACCOUNT_COLUMN,
+			"weight", META_TREE_FONT_COLUMN,
+			"cell-background-gdk", META_TREE_BACKGROUND_COLOR,
+			NULL);
+	gtk_tree_view_append_column ( GTK_TREE_VIEW ( budgetary_line_tree ),
+			GTK_TREE_VIEW_COLUMN ( column ) );
+
+	/* Make amount column */
+	cell = gtk_cell_renderer_text_new ();
+	column = gtk_tree_view_column_new_with_attributes (_("Amount"), cell,
+			"text", META_TREE_BALANCE_COLUMN,
+			"weight", META_TREE_FONT_COLUMN,
+			"xalign", META_TREE_XALIGN_COLUMN,
+			"cell-background-gdk", META_TREE_BACKGROUND_COLOR,
+			NULL);
+	gtk_tree_view_column_set_alignment ( column, 1.0 );
+	gtk_tree_view_append_column ( GTK_TREE_VIEW ( budgetary_line_tree ),
+			GTK_TREE_VIEW_COLUMN ( column ) );
+
+	gtk_container_add ( GTK_CONTAINER ( scroll_window ), budgetary_line_tree );
+	gtk_widget_show ( budgetary_line_tree );
+
+	/* Connect to signals */
+	g_signal_connect ( G_OBJECT ( budgetary_line_tree ),
+			"row-collapsed",
+			G_CALLBACK ( division_column_collapsed ),
+			NULL );
+
+	g_signal_connect ( G_OBJECT ( budgetary_line_tree ),
+			"row-expanded",
+			G_CALLBACK ( division_column_expanded ),
+			NULL );
+
+	g_signal_connect( G_OBJECT ( budgetary_line_tree ),
+			"row-activated",
+			G_CALLBACK ( division_activated ),
+			NULL );
+
+	g_signal_connect ( G_OBJECT ( budgetary_line_tree ),
+			"button-press-event",
+			G_CALLBACK ( budgetary_line_list_button_press ),
+			NULL );
+
+	dst_iface = GTK_TREE_DRAG_DEST_GET_IFACE (budgetary_line_tree_model);
+	if ( dst_iface )
+	{
+		dst_iface -> drag_data_received = &division_drag_data_received;
+		dst_iface -> row_drop_possible = &division_row_drop_possible;
+	}
+
+	src_iface = GTK_TREE_DRAG_SOURCE_GET_IFACE (budgetary_line_tree_model);
+	if ( src_iface )
+	{
+		gtk_selection_add_target (budgetary_line_tree,
+				GDK_SELECTION_PRIMARY,
+				GDK_SELECTION_TYPE_ATOM,
+				1);
+		src_iface -> drag_data_get = &budgetary_line_drag_data_get;
+	}
+
+	g_signal_connect ( gtk_tree_view_get_selection ( GTK_TREE_VIEW(budgetary_line_tree)),
+			"changed", G_CALLBACK(metatree_selection_changed),
+			budgetary_line_tree_model );
+
+	/* création de la structure de sauvegarde de la position */
+	budgetary_hold_position = g_malloc0 ( sizeof ( struct metatree_hold_position ) );
+
+	return ( vbox );
 }
 /* **************************************************************************************************** */
 
@@ -254,107 +254,107 @@ GtkWidget *budgetary_lines_create_list ( void )
  * */
 void budgetary_lines_fill_list ( void )
 {
-    GSList *budget_list;
-    GtkTreeIter iter_budgetary_line, iter_sub_budgetary_line;
-    GtkTreeSelection *selection;
+	GSList *budget_list;
+	GtkTreeIter iter_budgetary_line, iter_sub_budgetary_line;
+	GtkTreeSelection *selection;
 
-    devel_debug (NULL);
+	devel_debug (NULL);
 
-    /** First, remove previous tree */
-    gtk_tree_store_clear ( GTK_TREE_STORE (budgetary_line_tree_model));
+	/** First, remove previous tree */
+	gtk_tree_store_clear ( GTK_TREE_STORE (budgetary_line_tree_model));
 
-    /* Compute budget balances. */
-    gsb_data_budget_update_counters ();
+	/* Compute budget balances. */
+	gsb_data_budget_update_counters ();
 
-    /** Then, populate tree with budgetary lines. */
-    budget_list = gsb_data_budget_get_budgets_list ();
-    
-    /* add first the empty budget */
-    budget_list = g_slist_prepend ( budget_list,
-				    gsb_data_budget_get_empty_budget ());
+	/** Then, populate tree with budgetary lines. */
+	budget_list = gsb_data_budget_get_budgets_list ();
 
-    while ( budget_list )
-    {
-	gint budget_number;
+	/* add first the empty budget */
+	budget_list = g_slist_prepend ( budget_list,
+			gsb_data_budget_get_empty_budget ());
 
-	budget_number = gsb_data_budget_get_no_budget (budget_list -> data);
-
-	gtk_tree_store_append ( GTK_TREE_STORE ( budgetary_line_tree_model ), &iter_budgetary_line, NULL);
-	fill_division_row ( GTK_TREE_MODEL ( budgetary_line_tree_model ),
-                        budgetary_line_get_metatree_interface ( ),
-                        &iter_budgetary_line,
-                        budget_number );
-
-	/** Each budget has sub budgetary lines. */
-	if ( budget_number )
+	while ( budget_list )
 	{
-	    GSList *sub_budget_list;
-
-	    sub_budget_list = gsb_data_budget_get_sub_budget_list ( budget_number );
-
-	    while ( sub_budget_list )
-	    {
-		gint sub_budget_number;
-
-		sub_budget_number = gsb_data_budget_get_no_sub_budget (sub_budget_list -> data);
-
-		gtk_tree_store_append ( GTK_TREE_STORE (budgetary_line_tree_model),
-				       &iter_sub_budgetary_line, &iter_budgetary_line);
-		fill_sub_division_row ( GTK_TREE_MODEL ( budgetary_line_tree_model ),
-                        budgetary_line_get_metatree_interface ( ),
-                        &iter_sub_budgetary_line,
-                        budget_number,
-                        sub_budget_number );
-
-		sub_budget_list = sub_budget_list -> next;
-	    }
+		gint budget_number;
+
+		budget_number = gsb_data_budget_get_no_budget (budget_list -> data);
+
+		gtk_tree_store_append ( GTK_TREE_STORE ( budgetary_line_tree_model ), &iter_budgetary_line, NULL);
+		fill_division_row ( GTK_TREE_MODEL ( budgetary_line_tree_model ),
+				budgetary_line_get_metatree_interface ( ),
+				&iter_budgetary_line,
+				budget_number );
+
+		/** Each budget has sub budgetary lines. */
+		if ( budget_number )
+		{
+			GSList *sub_budget_list;
+
+			sub_budget_list = gsb_data_budget_get_sub_budget_list ( budget_number );
+
+			while ( sub_budget_list )
+			{
+				gint sub_budget_number;
+
+				sub_budget_number = gsb_data_budget_get_no_sub_budget (sub_budget_list -> data);
+
+				gtk_tree_store_append ( GTK_TREE_STORE (budgetary_line_tree_model),
+						&iter_sub_budgetary_line, &iter_budgetary_line);
+				fill_sub_division_row ( GTK_TREE_MODEL ( budgetary_line_tree_model ),
+						budgetary_line_get_metatree_interface ( ),
+						&iter_sub_budgetary_line,
+						budget_number,
+						sub_budget_number );
+
+				sub_budget_list = sub_budget_list -> next;
+			}
+		}
+
+		/* add the no-sub-budget only if budget exists */
+		if (budget_number)
+		{
+			gtk_tree_store_append ( GTK_TREE_STORE ( budgetary_line_tree_model ),
+					&iter_sub_budgetary_line,
+					&iter_budgetary_line );
+			fill_sub_division_row ( GTK_TREE_MODEL(budgetary_line_tree_model),
+					budgetary_line_get_metatree_interface ( ),
+					&iter_sub_budgetary_line,
+					budget_number,
+					0 );
+		}
+		budget_list = budget_list -> next;
 	}
-
-	/* add the no-sub-budget only if budget exists */
-	if (budget_number)
+	/* replace le curseur sur la division, sub_division ou opération initiale */
+	if ( budgetary_hold_position -> path )
 	{
-	    gtk_tree_store_append ( GTK_TREE_STORE ( budgetary_line_tree_model ),
-                        &iter_sub_budgetary_line,
-                        &iter_budgetary_line );
-	    fill_sub_division_row ( GTK_TREE_MODEL(budgetary_line_tree_model),
-                        budgetary_line_get_metatree_interface ( ),
-                        &iter_sub_budgetary_line,
-                        budget_number,
-                        0 );
+		if ( budgetary_hold_position -> expand )
+		{
+			GtkTreePath *ancestor;
+
+			ancestor = gtk_tree_path_copy ( budgetary_hold_position -> path );
+			gtk_tree_path_up ( ancestor );
+			gtk_tree_view_expand_to_path ( GTK_TREE_VIEW ( budgetary_line_tree ), ancestor );
+			gtk_tree_path_free (ancestor );
+		}
+		/* on colorise les lignes du tree_view */
+		utils_set_tree_view_background_color ( budgetary_line_tree, META_TREE_BACKGROUND_COLOR );
+		selection = gtk_tree_view_get_selection ( GTK_TREE_VIEW ( budgetary_line_tree ) );
+		gtk_tree_selection_select_path ( selection, budgetary_hold_position -> path );
+		gtk_tree_view_scroll_to_cell ( GTK_TREE_VIEW ( budgetary_line_tree ),
+				budgetary_hold_position -> path,
+				NULL, TRUE, 0.5, 0.5 );
+	}
+	else
+	{
+		gchar *title;
+
+		/* on colorise les lignes du tree_view */
+		utils_set_tree_view_background_color ( budgetary_line_tree, META_TREE_BACKGROUND_COLOR );
+		title = g_strdup(_("Budgetary lines"));
+		gsb_gui_headings_update_title ( title );
+		g_free ( title );
+		gsb_gui_headings_update_suffix ( "" );
 	}
-	budget_list = budget_list -> next;
-    }
-    /* replace le curseur sur la division, sub_division ou opération initiale */
-    if ( budgetary_hold_position -> path )
-    {
-        if ( budgetary_hold_position -> expand )
-        {
-            GtkTreePath *ancestor;
-
-            ancestor = gtk_tree_path_copy ( budgetary_hold_position -> path );
-            gtk_tree_path_up ( ancestor );
-            gtk_tree_view_expand_to_path ( GTK_TREE_VIEW ( budgetary_line_tree ), ancestor );
-            gtk_tree_path_free (ancestor );
-        }
-        /* on colorise les lignes du tree_view */
-        utils_set_tree_view_background_color ( budgetary_line_tree, META_TREE_BACKGROUND_COLOR );
-        selection = gtk_tree_view_get_selection ( GTK_TREE_VIEW ( budgetary_line_tree ) );
-        gtk_tree_selection_select_path ( selection, budgetary_hold_position -> path );
-        gtk_tree_view_scroll_to_cell ( GTK_TREE_VIEW ( budgetary_line_tree ),
-                        budgetary_hold_position -> path,
-                        NULL, TRUE, 0.5, 0.5 );
-    }
-    else
-    {
-        gchar *title;
-
-        /* on colorise les lignes du tree_view */
-        utils_set_tree_view_background_color ( budgetary_line_tree, META_TREE_BACKGROUND_COLOR );
-	    title = g_strdup(_("Budgetary lines"));
-        gsb_gui_headings_update_title ( title );
-        g_free ( title );
-        gsb_gui_headings_update_suffix ( "" );
-    }
 }
 
 
@@ -371,15 +371,15 @@ void budgetary_lines_fill_list ( void )
  * \return FALSE, to allow future processing by the callback chain.
  */
 gboolean budgetary_line_drag_data_get ( GtkTreeDragSource * drag_source, GtkTreePath * path,
-					GtkSelectionData * selection_data )
+		GtkSelectionData * selection_data )
 {
-    if ( path )
-    {
-	gtk_tree_set_row_drag_data (selection_data,
-				    GTK_TREE_MODEL(budgetary_line_tree_model), path);
-    }
+	if ( path )
+	{
+		gtk_tree_set_row_drag_data (selection_data,
+				GTK_TREE_MODEL(budgetary_line_tree_model), path);
+	}
 
-    return FALSE;
+	return FALSE;
 }
 
 
@@ -392,12 +392,12 @@ gboolean budgetary_line_drag_data_get ( GtkTreeDragSource * drag_source, GtkTree
  * */
 gboolean gsb_budget_update_combofix ( gboolean force )
 {
-    if ( gsb_data_form_check_for_value ( TRANSACTION_FORM_BUDGET ) || force )
-        gtk_combofix_set_list ( GTK_COMBOFIX ( gsb_form_widget_get_widget (
-                        TRANSACTION_FORM_BUDGET ) ),
-                        gsb_data_budget_get_name_list ( TRUE, TRUE ) );
+	if ( gsb_data_form_check_for_value ( TRANSACTION_FORM_BUDGET ) || force )
+		gtk_combofix_set_list ( GTK_COMBOFIX ( gsb_form_widget_get_widget (
+				TRANSACTION_FORM_BUDGET ) ),
+				gsb_data_budget_get_name_list ( TRUE, TRUE ) );
 
-    return FALSE;
+	return FALSE;
 }
 
 
@@ -407,45 +407,45 @@ gboolean gsb_budget_update_combofix ( gboolean force )
  */
 void budgetary_lines_exporter_list ( void )
 {
-    GtkWidget *dialog;
-    gint resultat;
-    gchar *nom_ib;
-
-    dialog = gtk_file_chooser_dialog_new ( _("Export the budgetary lines"),
-					   GTK_WINDOW ( run.window ),
-					   GTK_FILE_CHOOSER_ACTION_SAVE,
-					   GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-					   GTK_STOCK_SAVE, GTK_RESPONSE_OK,
-					   NULL);
-
-    gtk_file_chooser_set_current_name ( GTK_FILE_CHOOSER ( dialog ),  _("Budgetary-lines.igsb"));
-    gtk_file_chooser_set_current_folder ( GTK_FILE_CHOOSER ( dialog ), gsb_file_get_last_path () );
-    gtk_file_chooser_set_do_overwrite_confirmation ( GTK_FILE_CHOOSER ( dialog ), TRUE);
-    gtk_window_set_position ( GTK_WINDOW ( dialog ), GTK_WIN_POS_CENTER_ON_PARENT );
-
-    resultat = gtk_dialog_run ( GTK_DIALOG ( dialog ));
-
-    switch ( resultat )
-    {
+	GtkWidget *dialog;
+	gint resultat;
+	gchar *nom_ib;
+
+	dialog = gtk_file_chooser_dialog_new ( _("Export the budgetary lines"),
+			GTK_WINDOW ( run.window ),
+			GTK_FILE_CHOOSER_ACTION_SAVE,
+			GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+			GTK_STOCK_SAVE, GTK_RESPONSE_OK,
+			NULL);
+
+	gtk_file_chooser_set_current_name ( GTK_FILE_CHOOSER ( dialog ),  _("Budgetary-lines.igsb"));
+	gtk_file_chooser_set_current_folder ( GTK_FILE_CHOOSER ( dialog ), gsb_file_get_last_path () );
+	gtk_file_chooser_set_do_overwrite_confirmation ( GTK_FILE_CHOOSER ( dialog ), TRUE);
+	gtk_window_set_position ( GTK_WINDOW ( dialog ), GTK_WIN_POS_CENTER_ON_PARENT );
+
+	resultat = gtk_dialog_run ( GTK_DIALOG ( dialog ));
+
+	switch ( resultat )
+	{
 	case GTK_RESPONSE_OK :
-	    nom_ib = file_selection_get_filename ( GTK_FILE_CHOOSER ( dialog ));
-	    gsb_file_update_last_path (file_selection_get_last_directory (GTK_FILE_CHOOSER (dialog), TRUE));
-	    gtk_widget_destroy ( GTK_WIDGET ( dialog ));
+		nom_ib = file_selection_get_filename ( GTK_FILE_CHOOSER ( dialog ));
+		gsb_file_update_last_path (file_selection_get_last_directory (GTK_FILE_CHOOSER (dialog), TRUE));
+		gtk_widget_destroy ( GTK_WIDGET ( dialog ));
 
-	    /* vérification que c'est possible est faite par la boite de dialogue */
+		/* vérification que c'est possible est faite par la boite de dialogue */
 
-	    if ( !gsb_file_others_save_budget ( nom_ib ))
-	    {
-		dialogue_error ( _("Cannot save file.") );
-		return;
-	    }
+		if ( !gsb_file_others_save_budget ( nom_ib ))
+		{
+			dialogue_error ( _("Cannot save file.") );
+			return;
+		}
 
-	    break;
+		break;
 
 	default :
-	    gtk_widget_destroy ( GTK_WIDGET ( dialog ));
-	    return;
-    }
+		gtk_widget_destroy ( GTK_WIDGET ( dialog ));
+		return;
+	}
 }
 /* **************************************************************************************************** */
 
@@ -454,92 +454,92 @@ void budgetary_lines_exporter_list ( void )
 /* **************************************************************************************************** */
 void budgetary_lines_importer_list ( void )
 {
-    GtkWidget *dialog;
-    gint resultat;
-    gchar *budget_name;
-    gint last_transaction_number;
-    GtkFileFilter * filter;
-
-    dialog = gtk_file_chooser_dialog_new ( _("Import budgetary lines"),
-					   GTK_WINDOW ( run.window ),
-					   GTK_FILE_CHOOSER_ACTION_OPEN,
-					   GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-					   GTK_STOCK_OPEN, GTK_RESPONSE_OK,
-					   NULL);
-
-    gtk_file_chooser_set_current_folder ( GTK_FILE_CHOOSER ( dialog ), gsb_file_get_last_path () );
-    gtk_window_set_position ( GTK_WINDOW ( dialog ), GTK_WIN_POS_CENTER_ON_PARENT );
-
-    filter = gtk_file_filter_new ();
-    gtk_file_filter_set_name ( filter, _("Grisbi budgetary lines files (*.igsb)") );
-    gtk_file_filter_add_pattern ( filter, "*.igsb" );
-    gtk_file_chooser_add_filter ( GTK_FILE_CHOOSER ( dialog ), filter );
-    gtk_file_chooser_set_filter ( GTK_FILE_CHOOSER ( dialog ), filter );
-
-    filter = gtk_file_filter_new ();
-    gtk_file_filter_set_name ( filter, _("Grisbi category files (*.cgsb)") );
-    gtk_file_filter_add_pattern ( filter, "*.cgsb" );
-    gtk_file_chooser_add_filter ( GTK_FILE_CHOOSER ( dialog ), filter );
-
-    filter = gtk_file_filter_new ();
-    gtk_file_filter_set_name ( filter, _("All files") );
-    gtk_file_filter_add_pattern ( filter, "*" );
-    gtk_file_chooser_add_filter ( GTK_FILE_CHOOSER ( dialog ), filter );
-
-    resultat = gtk_dialog_run ( GTK_DIALOG ( dialog ));
-
-    if ( resultat != GTK_RESPONSE_OK  )
-    {
-	gtk_widget_destroy ( dialog );
-	return;
-    }
-
-    budget_name = file_selection_get_filename ( GTK_FILE_CHOOSER ( dialog ));
-    gsb_file_update_last_path (file_selection_get_last_directory (GTK_FILE_CHOOSER (dialog), TRUE));
-    gtk_widget_destroy ( GTK_WIDGET ( dialog ));
-
-    last_transaction_number = gsb_data_transaction_get_last_number();
-
-    /* on permet de remplacer/fusionner la liste */
-
-    dialog = dialogue_special_no_run ( GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE,
-				       make_hint ( _("Merge imported budgetary lines with existing?"),
-						   ( last_transaction_number ?
-						     _("File already contains budgetary lines.  If you decide to continue, existing budgetary lines will be merged with imported ones.") :
-						     _("File does not contain budgetary lines.  "
-						       "If you decide to continue, existing budgetary lines will be merged with imported ones.  "
-						       "Once performed, there is no undo for this.\n"
-						       "You may also decide to replace existing budgetary lines with imported ones." ) ) ) );
-
-    if ( !last_transaction_number)
+	GtkWidget *dialog;
+	gint resultat;
+	gchar *budget_name;
+	gint last_transaction_number;
+	GtkFileFilter * filter;
+
+	dialog = gtk_file_chooser_dialog_new ( _("Import budgetary lines"),
+			GTK_WINDOW ( run.window ),
+			GTK_FILE_CHOOSER_ACTION_OPEN,
+			GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+			GTK_STOCK_OPEN, GTK_RESPONSE_OK,
+			NULL);
+
+	gtk_file_chooser_set_current_folder ( GTK_FILE_CHOOSER ( dialog ), gsb_file_get_last_path () );
+	gtk_window_set_position ( GTK_WINDOW ( dialog ), GTK_WIN_POS_CENTER_ON_PARENT );
+
+	filter = gtk_file_filter_new ();
+	gtk_file_filter_set_name ( filter, _("Grisbi budgetary lines files (*.igsb)") );
+	gtk_file_filter_add_pattern ( filter, "*.igsb" );
+	gtk_file_chooser_add_filter ( GTK_FILE_CHOOSER ( dialog ), filter );
+	gtk_file_chooser_set_filter ( GTK_FILE_CHOOSER ( dialog ), filter );
+
+	filter = gtk_file_filter_new ();
+	gtk_file_filter_set_name ( filter, _("Grisbi category files (*.cgsb)") );
+	gtk_file_filter_add_pattern ( filter, "*.cgsb" );
+	gtk_file_chooser_add_filter ( GTK_FILE_CHOOSER ( dialog ), filter );
+
+	filter = gtk_file_filter_new ();
+	gtk_file_filter_set_name ( filter, _("All files") );
+	gtk_file_filter_add_pattern ( filter, "*" );
+	gtk_file_chooser_add_filter ( GTK_FILE_CHOOSER ( dialog ), filter );
+
+	resultat = gtk_dialog_run ( GTK_DIALOG ( dialog ));
+
+	if ( resultat != GTK_RESPONSE_OK  )
+	{
+		gtk_widget_destroy ( dialog );
+		return;
+	}
+
+	budget_name = file_selection_get_filename ( GTK_FILE_CHOOSER ( dialog ));
+	gsb_file_update_last_path (file_selection_get_last_directory (GTK_FILE_CHOOSER (dialog), TRUE));
+	gtk_widget_destroy ( GTK_WIDGET ( dialog ));
+
+	last_transaction_number = gsb_data_transaction_get_last_number();
+
+	/* on permet de remplacer/fusionner la liste */
+
+	dialog = dialogue_special_no_run ( GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE,
+			make_hint ( _("Merge imported budgetary lines with existing?"),
+					( last_transaction_number ?
+							_("File already contains budgetary lines.  If you decide to continue, existing budgetary lines will be merged with imported ones.") :
+							_("File does not contain budgetary lines.  "
+									"If you decide to continue, existing budgetary lines will be merged with imported ones.  "
+									"Once performed, there is no undo for this.\n"
+									"You may also decide to replace existing budgetary lines with imported ones." ) ) ) );
+
+	if ( !last_transaction_number)
+		gtk_dialog_add_buttons ( GTK_DIALOG(dialog),
+				_("Replace existing"), 2,
+				NULL );
+
 	gtk_dialog_add_buttons ( GTK_DIALOG(dialog),
-				 _("Replace existing"), 2,
-				 NULL );
-
-    gtk_dialog_add_buttons ( GTK_DIALOG(dialog),
-			     GTK_STOCK_CANCEL, 0,
-			     GTK_STOCK_OK, 1,
-			     NULL );
-
-    resultat = gtk_dialog_run ( GTK_DIALOG ( dialog ));
-    gtk_widget_destroy ( GTK_WIDGET ( dialog ));
-
-    switch ( resultat )
-    {
-	    case 2 :
-            /* we want to replace the list */
-            if ( !last_transaction_number )
-                gsb_data_budget_init_variables ();
-
-        case 1 :
-            if ( g_str_has_suffix ( budget_name, ".cgsb" ) )
-                gsb_file_others_load_budget_from_category ( budget_name );
-            else
-                gsb_file_others_load_budget ( budget_name );
-	    break;
+			GTK_STOCK_CANCEL, 0,
+			GTK_STOCK_OK, 1,
+			NULL );
+
+	resultat = gtk_dialog_run ( GTK_DIALOG ( dialog ));
+	gtk_widget_destroy ( GTK_WIDGET ( dialog ));
+
+	switch ( resultat )
+	{
+	case 2 :
+		/* we want to replace the list */
+		if ( !last_transaction_number )
+			gsb_data_budget_init_variables ();
+
+	case 1 :
+		if ( g_str_has_suffix ( budget_name, ".cgsb" ) )
+			gsb_file_others_load_budget_from_category ( budget_name );
+		else
+			gsb_file_others_load_budget ( budget_name );
+		break;
 	default :
-	    return;
-    }
+		return;
+	}
 }
 
 
@@ -553,92 +553,92 @@ void budgetary_lines_importer_list ( void )
  */
 GtkWidget *creation_barre_outils_ib ( void )
 {
-    GtkWidget *hbox, *button;
-
-    /* Hbox */
-    hbox = gtk_hbox_new ( FALSE, 0 );
-
-    /* New budgetary line button */
-    button = gsb_automem_imagefile_button_new ( etat.display_toolbar,
-                                _("New\nbudgetary line"), "new-ib.png",
-                                G_CALLBACK ( appui_sur_ajout_imputation ),
-                                budgetary_line_tree_model );
-
-    gtk_widget_set_tooltip_text ( GTK_WIDGET ( button ), _("Create a new budgetary line") );
-    gtk_box_pack_start ( GTK_BOX ( hbox ), button, FALSE, TRUE, 0 );
-    g_object_set_data ( G_OBJECT ( button ), "type", GINT_TO_POINTER (1) );
-
-    /* New sub budgetary line button */
-    button = gsb_automem_imagefile_button_new ( etat.display_toolbar,
-                                _("New sub\nbudgetary line"),
-                                "new-sub-ib.png",
-                                G_CALLBACK ( appui_sur_ajout_imputation ),
-                                budgetary_line_tree_model );
-    metatree_register_widget_as_linked ( GTK_TREE_MODEL ( budgetary_line_tree_model ), button, "selection" );
-    metatree_register_widget_as_linked ( GTK_TREE_MODEL ( budgetary_line_tree_model ), button, "sub-division" );
-
-    gtk_widget_set_tooltip_text ( GTK_WIDGET ( button ), _("Create a new sub-budgetary line") );
-    gtk_box_pack_start ( GTK_BOX ( hbox ), button, FALSE, TRUE, 0 );
-    g_object_set_data ( G_OBJECT ( button ), "type", GINT_TO_POINTER (2) );
-
-    /* Import button */
-    button = gsb_automem_stock_button_new ( etat.display_toolbar,
-                                GTK_STOCK_OPEN,
-                                _("Import"),
-                                G_CALLBACK ( budgetary_lines_importer_list ),
-                                NULL );
-
-    gtk_widget_set_tooltip_text ( GTK_WIDGET ( button ),
-                        _("Import a Grisbi budgetary line file (.igsb)"
-                        " or create from a list of categories (.cgsb)" ) );
-    gtk_box_pack_start ( GTK_BOX ( hbox ), button, FALSE, TRUE, 0 );
-
-    /* Export button */
-    button = gsb_automem_stock_button_new ( etat.display_toolbar,
-                                GTK_STOCK_SAVE,
-                                _("Export"),
-                                G_CALLBACK ( budgetary_lines_exporter_list ),
-                                NULL );
-
-    gtk_widget_set_tooltip_text ( GTK_WIDGET ( button ),
-                        _("Export a Grisbi budgetary line file (.igsb)") );
-    gtk_box_pack_start ( GTK_BOX ( hbox ), button, FALSE, TRUE, 0 );
-
-    /* Delete button */
-    button = gsb_automem_stock_button_new ( etat.display_toolbar,
-                                GTK_STOCK_DELETE, _("Delete"),
-                                G_CALLBACK ( supprimer_division ),
-                                budgetary_line_tree );
-    metatree_register_widget_as_linked ( GTK_TREE_MODEL ( budgetary_line_tree_model ), button, "selection" );
-
-    gtk_widget_set_tooltip_text ( GTK_WIDGET ( button ), _("Delete selected budgetary line") );
-    gtk_box_pack_start ( GTK_BOX ( hbox ), button, FALSE, TRUE, 0 );
-
-    /* Properties button */
-    button = gsb_automem_stock_button_new ( etat.display_toolbar,
-                                GTK_STOCK_EDIT, _("Edit"),
-                                G_CALLBACK ( edit_budgetary_line ),
-                                budgetary_line_tree );
-    metatree_register_widget_as_linked ( GTK_TREE_MODEL(budgetary_line_tree_model), button, "selection" );
-
-    gtk_widget_set_tooltip_text ( GTK_WIDGET ( button ), _("Edit selected budgetary line") );
-    gtk_box_pack_start ( GTK_BOX ( hbox ), button, FALSE, TRUE, 0 );
-
-    /* View button */
-    button = gsb_automem_stock_button_menu_new ( etat.display_toolbar,
-                                GTK_STOCK_SELECT_COLOR,
-                                _("View"),
-                                G_CALLBACK(popup_budgetary_line_view_mode_menu),
-                                NULL );
-
-    gtk_widget_set_tooltip_text ( GTK_WIDGET ( button ), _("Change display mode") );
-    gtk_box_pack_start ( GTK_BOX ( hbox ), button, FALSE, TRUE, 0 );
-
-    gtk_widget_show_all ( hbox );
-
-    metatree_set_linked_widgets_sensitive ( GTK_TREE_MODEL ( budgetary_line_tree_model ), FALSE, "selection" );
-
-    return ( hbox );
+	GtkWidget *hbox, *button;
+
+	/* Hbox */
+	hbox = gtk_hbox_new ( FALSE, 0 );
+
+	/* New budgetary line button */
+	button = gsb_automem_imagefile_button_new ( etat.display_toolbar,
+			_("New\nbudgetary line"), "new-ib.png",
+			G_CALLBACK ( appui_sur_ajout_imputation ),
+			budgetary_line_tree_model );
+
+	gtk_widget_set_tooltip_text ( GTK_WIDGET ( button ), _("Create a new budgetary line") );
+	gtk_box_pack_start ( GTK_BOX ( hbox ), button, FALSE, TRUE, 0 );
+	g_object_set_data ( G_OBJECT ( button ), "type", GINT_TO_POINTER (1) );
+
+	/* New sub budgetary line button */
+	button = gsb_automem_imagefile_button_new ( etat.display_toolbar,
+			_("New sub\nbudgetary line"),
+			"new-sub-ib.png",
+			G_CALLBACK ( appui_sur_ajout_imputation ),
+			budgetary_line_tree_model );
+	metatree_register_widget_as_linked ( GTK_TREE_MODEL ( budgetary_line_tree_model ), button, "selection" );
+	metatree_register_widget_as_linked ( GTK_TREE_MODEL ( budgetary_line_tree_model ), button, "sub-division" );
+
+	gtk_widget_set_tooltip_text ( GTK_WIDGET ( button ), _("Create a new sub-budgetary line") );
+	gtk_box_pack_start ( GTK_BOX ( hbox ), button, FALSE, TRUE, 0 );
+	g_object_set_data ( G_OBJECT ( button ), "type", GINT_TO_POINTER (2) );
+
+	/* Import button */
+	button = gsb_automem_stock_button_new ( etat.display_toolbar,
+			GTK_STOCK_OPEN,
+			_("Import"),
+			G_CALLBACK ( budgetary_lines_importer_list ),
+			NULL );
+
+	gtk_widget_set_tooltip_text ( GTK_WIDGET ( button ),
+			_("Import a Grisbi budgetary line file (.igsb)"
+					" or create from a list of categories (.cgsb)" ) );
+	gtk_box_pack_start ( GTK_BOX ( hbox ), button, FALSE, TRUE, 0 );
+
+	/* Export button */
+	button = gsb_automem_stock_button_new ( etat.display_toolbar,
+			GTK_STOCK_SAVE,
+			_("Export"),
+			G_CALLBACK ( budgetary_lines_exporter_list ),
+			NULL );
+
+	gtk_widget_set_tooltip_text ( GTK_WIDGET ( button ),
+			_("Export a Grisbi budgetary line file (.igsb)") );
+	gtk_box_pack_start ( GTK_BOX ( hbox ), button, FALSE, TRUE, 0 );
+
+	/* Delete button */
+	button = gsb_automem_stock_button_new ( etat.display_toolbar,
+			GTK_STOCK_DELETE, _("Delete"),
+			G_CALLBACK ( supprimer_division ),
+			budgetary_line_tree );
+	metatree_register_widget_as_linked ( GTK_TREE_MODEL ( budgetary_line_tree_model ), button, "selection" );
+
+	gtk_widget_set_tooltip_text ( GTK_WIDGET ( button ), _("Delete selected budgetary line") );
+	gtk_box_pack_start ( GTK_BOX ( hbox ), button, FALSE, TRUE, 0 );
+
+	/* Properties button */
+	button = gsb_automem_stock_button_new ( etat.display_toolbar,
+			GTK_STOCK_EDIT, _("Edit"),
+			G_CALLBACK ( edit_budgetary_line ),
+			budgetary_line_tree );
+	metatree_register_widget_as_linked ( GTK_TREE_MODEL(budgetary_line_tree_model), button, "selection" );
+
+	gtk_widget_set_tooltip_text ( GTK_WIDGET ( button ), _("Edit selected budgetary line") );
+	gtk_box_pack_start ( GTK_BOX ( hbox ), button, FALSE, TRUE, 0 );
+
+	/* View button */
+	button = gsb_automem_stock_button_menu_new ( etat.display_toolbar,
+			GTK_STOCK_SELECT_COLOR,
+			_("View"),
+			G_CALLBACK(popup_budgetary_line_view_mode_menu),
+			NULL );
+
+	gtk_widget_set_tooltip_text ( GTK_WIDGET ( button ), _("Change display mode") );
+	gtk_box_pack_start ( GTK_BOX ( hbox ), button, FALSE, TRUE, 0 );
+
+	gtk_widget_show_all ( hbox );
+
+	metatree_set_linked_widgets_sensitive ( GTK_TREE_MODEL ( budgetary_line_tree_model ), FALSE, "selection" );
+
+	return ( hbox );
 }
 
 
@@ -649,18 +649,18 @@ GtkWidget *creation_barre_outils_ib ( void )
  */
 void budgetary_lines_update_toolbar_list ( void )
 {
-    GList *list = NULL;
+	GList *list = NULL;
 
-    list = gtk_container_get_children ( GTK_CONTAINER ( budgetary_toolbar ) );
+	list = gtk_container_get_children ( GTK_CONTAINER ( budgetary_toolbar ) );
 
-    if ( list )
-    {
-        gtk_container_remove ( GTK_CONTAINER ( budgetary_toolbar ),
-                               GTK_WIDGET ( list -> data ) );
-        g_list_free ( list );
-    }
+	if ( list )
+	{
+		gtk_container_remove ( GTK_CONTAINER ( budgetary_toolbar ),
+				GTK_WIDGET ( list -> data ) );
+		g_list_free ( list );
+	}
 
-    gtk_container_add ( GTK_CONTAINER ( budgetary_toolbar ), creation_barre_outils_ib () );
+	gtk_container_add ( GTK_CONTAINER ( budgetary_toolbar ), creation_barre_outils_ib () );
 }
 
 
@@ -674,35 +674,35 @@ void budgetary_lines_update_toolbar_list ( void )
  */
 gboolean popup_budgetary_line_view_mode_menu ( GtkWidget * button )
 {
-    GtkWidget *menu, *menu_item;
+	GtkWidget *menu, *menu_item;
 
-    menu = gtk_menu_new ();
+	menu = gtk_menu_new ();
 
-    /* Edit transaction */
-    menu_item = gtk_image_menu_item_new_with_label ( _("Budgetary line view") );
-    g_signal_connect ( G_OBJECT(menu_item), "activate",
-		       G_CALLBACK(expand_arbre_division), (gpointer) 0 );
-    g_object_set_data ( G_OBJECT(menu_item), "tree-view", budgetary_line_tree );
-    gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), menu_item );
+	/* Edit transaction */
+	menu_item = gtk_image_menu_item_new_with_label ( _("Budgetary line view") );
+	g_signal_connect ( G_OBJECT(menu_item), "activate",
+			G_CALLBACK(expand_arbre_division), (gpointer) 0 );
+	g_object_set_data ( G_OBJECT(menu_item), "tree-view", budgetary_line_tree );
+	gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), menu_item );
 
-    menu_item = gtk_image_menu_item_new_with_label ( _("Sub-budgetary line view") );
-    g_signal_connect ( G_OBJECT(menu_item), "activate",
-		       G_CALLBACK(expand_arbre_division), (gpointer) 1 );
-    g_object_set_data ( G_OBJECT(menu_item), "tree-view", budgetary_line_tree );
-    gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), menu_item );
+	menu_item = gtk_image_menu_item_new_with_label ( _("Sub-budgetary line view") );
+	g_signal_connect ( G_OBJECT(menu_item), "activate",
+			G_CALLBACK(expand_arbre_division), (gpointer) 1 );
+	g_object_set_data ( G_OBJECT(menu_item), "tree-view", budgetary_line_tree );
+	gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), menu_item );
 
-    menu_item = gtk_image_menu_item_new_with_label ( _("Complete view") );
-    g_signal_connect ( G_OBJECT(menu_item), "activate",
-		       G_CALLBACK(expand_arbre_division), (gpointer) 2 );
-    g_object_set_data ( G_OBJECT(menu_item), "tree-view", budgetary_line_tree );
-    gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), menu_item );
+	menu_item = gtk_image_menu_item_new_with_label ( _("Complete view") );
+	g_signal_connect ( G_OBJECT(menu_item), "activate",
+			G_CALLBACK(expand_arbre_division), (gpointer) 2 );
+	g_object_set_data ( G_OBJECT(menu_item), "tree-view", budgetary_line_tree );
+	gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), menu_item );
 
-    gtk_widget_show_all ( menu );
+	gtk_widget_show_all ( menu );
 
-    gtk_menu_popup ( GTK_MENU(menu), NULL, button, set_popup_position, button, 1,
-		     gtk_get_current_event_time());
+	gtk_menu_popup ( GTK_MENU(menu), NULL, button, set_popup_position, button, 1,
+			gtk_get_current_event_time());
 
-    return FALSE;
+	return FALSE;
 }
 
 
@@ -713,183 +713,175 @@ gboolean popup_budgetary_line_view_mode_menu ( GtkWidget * button )
  */
 gboolean edit_budgetary_line ( GtkTreeView * view )
 {
-    GtkWidget * dialog, *paddingbox, *table, *label, *entry, *hbox, *radiogroup;
-    GtkTreeSelection * selection;
-    GtkTreeModel * model;
-    GtkTreeIter iter;
-    gint budget_number = -1, sub_budget_number = -1;
-    gchar * title;
-    GtkTreeIter *div_iter;
-
-    selection = gtk_tree_view_get_selection ( view );
-    if ( selection && gtk_tree_selection_get_selected(selection, &model, &iter))
-    {
-	gtk_tree_model_get ( model, &iter,
-			     META_TREE_NO_DIV_COLUMN, &budget_number,
-			     META_TREE_NO_SUB_DIV_COLUMN, &sub_budget_number,
-			     -1 );
-    }
-
-    if ( !selection || budget_number <= 0 )
-	return FALSE;
+	GtkWidget * dialog, *label, *entry;
+	GtkTreeSelection * selection;
+	GtkTreeModel * model;
+	GtkTreeIter iter;
+	gint budget_number = -1, sub_budget_number = -1;
+	gchar * title;
+	GtkTreeIter *div_iter;
+
+	static GtkBuilder *widget_builder = NULL;
+
+	selection = gtk_tree_view_get_selection ( view );
+	if ( selection && gtk_tree_selection_get_selected(selection, &model, &iter))
+	{
+		gtk_tree_model_get ( model, &iter,
+				META_TREE_NO_DIV_COLUMN, &budget_number,
+				META_TREE_NO_SUB_DIV_COLUMN, &sub_budget_number,
+				-1 );
+	}
+
+	if ( !selection || budget_number <= 0 )
+		return FALSE;
 
-    if ( sub_budget_number > 0 )
-	title = g_strdup_printf ( _("Properties for %s"),
-				  gsb_data_budget_get_sub_budget_name ( budget_number,
-									sub_budget_number,
-									_("No sub-budget defined" )));
-    else
-	title = g_strdup_printf ( _("Properties for %s"),
-				  gsb_data_budget_get_name ( budget_number,
-							     0,
-							     _("No budget defined") ));
-
-    dialog = gtk_dialog_new_with_buttons ( title ,
-					   GTK_WINDOW ( run.window ),
-					   GTK_DIALOG_MODAL,
-					   GTK_STOCK_CANCEL, GTK_RESPONSE_NO,
-					   GTK_STOCK_APPLY, GTK_RESPONSE_OK,
-					   NULL );
-
-    gtk_window_set_position ( GTK_WINDOW ( dialog ), GTK_WIN_POS_CENTER_ON_PARENT );
-    gtk_window_set_resizable ( GTK_WINDOW ( dialog ), FALSE );
-
-    /* Ugly dance to avoid side effects on dialog's vbox. */
-    hbox = gtk_hbox_new ( FALSE, 0 );
-    gtk_box_pack_start ( GTK_BOX ( dialog_get_content_area ( dialog ) ), hbox, FALSE, FALSE, 0 );
-    paddingbox = new_paddingbox_with_title ( hbox, TRUE, title );
-    gtk_container_set_border_width ( GTK_CONTAINER(hbox), 6 );
-    gtk_container_set_border_width ( GTK_CONTAINER(paddingbox), 6 );
-
-    table = gtk_table_new ( 0, 2, FALSE );
-    gtk_box_pack_start ( GTK_BOX ( paddingbox ), table, FALSE, FALSE, 6 );
-    gtk_table_set_col_spacings ( GTK_TABLE(table), 6 );
-    gtk_table_set_row_spacings ( GTK_TABLE(table), 6 );
-
-    /* Name entry */
-    label = gtk_label_new ( _("Name"));
-    gtk_misc_set_alignment ( GTK_MISC ( label ), 0.0, 0.5 );
-    gtk_table_attach ( GTK_TABLE(table), label, 0, 1, 0, 1,
-		       GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0 );
-
-    entry = gtk_entry_new ( );
-    if ( sub_budget_number > 0 )
-    {
-	gtk_entry_set_text ( GTK_ENTRY ( entry ),
-			     gsb_data_budget_get_sub_budget_name ( budget_number,
-								   sub_budget_number,
-								   NULL ) );
-    }
-    else
-    {
-	gtk_entry_set_text ( GTK_ENTRY ( entry ),
-			     gsb_data_budget_get_name ( budget_number, 0, NULL ) );
-    }
-
-    gtk_widget_set_size_request ( entry, 400, -1 );
-    gtk_table_attach ( GTK_TABLE(table), entry, 1, 2, 0, 1, GTK_EXPAND|GTK_FILL, 0, 0, 0 );
-
-    if ( sub_budget_number <= 0 )
-    {
-	/* Description entry */
-	label = gtk_label_new ( _("Type"));
-	gtk_misc_set_alignment ( GTK_MISC ( label ), 0.0, 0.5 );
-	gtk_table_attach ( GTK_TABLE(table), label, 0, 1, 1, 2,
-			   GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0 );
-
-	radiogroup = gsb_autofunc_radiobutton_new ( _("Credit"), _("Debit"),
-						    gsb_data_budget_get_type (budget_number),
-						    NULL, NULL,
-						    G_CALLBACK (gsb_data_budget_set_type), budget_number);
-	gtk_table_attach ( GTK_TABLE(table), radiogroup,
-			   1, 2, 1, 2, GTK_EXPAND|GTK_FILL, 0, 0, 0 );
-    }
-
-    gtk_widget_show_all ( dialog );
-    g_free ( title );
-
-    while ( 1 )
-    {
-	if ( gtk_dialog_run ( GTK_DIALOG(dialog) ) != GTK_RESPONSE_OK )
+	if ( sub_budget_number > 0 )
+		title = g_strdup_printf ( _("Properties for %s"),
+				gsb_data_budget_get_sub_budget_name ( budget_number,
+						sub_budget_number,
+						_("No sub-budget defined" )));
+	else
+		title = g_strdup_printf ( _("Properties for %s"),
+				gsb_data_budget_get_name ( budget_number,
+						0,
+						_("No budget defined") ));
+
+	/* New GtkBuilder Creation*/
+	widget_builder = gtk_builder_new ( );
+
+	if ( widget_builder == NULL )
+		return NULL;
+
+
+	if ( sub_budget_number > 0 )
+	{
+		/* widget paddingbox XML loading */
+		if ( !utils_gtkbuilder_merge_ui_data_in_builder ( widget_builder, "dlg_edit_without_radio.ui" ) )
+			return NULL;
+
+		entry = GTK_WIDGET (gtk_builder_get_object ( widget_builder, "entry" ));
+
+		gtk_entry_set_text ( GTK_ENTRY ( entry ),
+				gsb_data_budget_get_sub_budget_name ( budget_number,
+						sub_budget_number,
+						NULL ) );
+	}
+	else
 	{
-        sortie_edit_budgetary_line = TRUE;
-	    gtk_widget_destroy ( GTK_WIDGET ( dialog ) );
-	    return FALSE;
+		/* widget paddingbox XML loading */
+		if ( !utils_gtkbuilder_merge_ui_data_in_builder ( widget_builder, "dlg_edit_with_radio.ui" ) )
+			return NULL;
+
+		entry = GTK_WIDGET (gtk_builder_get_object ( widget_builder, "entry" ));
+
+		gtk_entry_set_text ( GTK_ENTRY ( entry ),
+				gsb_data_budget_get_name ( budget_number, 0, NULL ) );
+
+		if (gsb_data_budget_get_type (budget_number))
+			gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( gtk_builder_get_object ( widget_builder, "Debit_radiobutton" ) ), TRUE );
+		else
+			gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( gtk_builder_get_object ( widget_builder, "Credit_radiobutton" ) ), TRUE );
+
+		g_object_set_data (G_OBJECT (gtk_builder_get_object ( widget_builder, "Debit_radiobutton" )),
+				"number_for_func", GINT_TO_POINTER (budget_number));
+
+		g_signal_connect ( G_OBJECT (gtk_builder_get_object ( widget_builder, "Debit_radiobutton" )), "toggled",
+				G_CALLBACK (gsb_autofunc_checkbutton_changed), G_CALLBACK (gsb_data_budget_set_type));
+
 	}
 
-	if ( ( sub_budget_number > 0 &&
-	       gsb_data_budget_get_sub_budget_number_by_name ( budget_number,
-							       gtk_entry_get_text ( GTK_ENTRY ( entry ) ),
-							       FALSE ) &&
-	       gsb_data_budget_get_sub_budget_number_by_name ( budget_number,
-							       gtk_entry_get_text ( GTK_ENTRY ( entry ) ),
-							       FALSE ) != sub_budget_number) ||
-	     ( sub_budget_number <= 0 &&
-	       gsb_data_budget_get_number_by_name ( gtk_entry_get_text ( GTK_ENTRY ( entry ) ),
-						    FALSE, 0 ) &&
-	       gsb_data_budget_get_number_by_name ( gtk_entry_get_text ( GTK_ENTRY ( entry ) ),
-						    FALSE, 0 ) != budget_number ) )
+	/* Get the needed widgets*/
+	dialog = GTK_WIDGET (gtk_builder_get_object ( widget_builder, "dialog_edit_category" ));
+	label = GTK_WIDGET (gtk_builder_get_object ( widget_builder, "label" ));
+
+	//Set Title
+	gtk_label_set_label(GTK_LABEL(label),title);
+	g_free ( title );
+
+	gtk_widget_show_all ( dialog );
+
+	while ( 1 )
+	{
+		if ( gtk_dialog_run ( GTK_DIALOG(dialog) ) != GTK_RESPONSE_OK )
+		{
+			sortie_edit_budgetary_line = TRUE;
+			gtk_widget_destroy ( GTK_WIDGET ( dialog ) );
+			return FALSE;
+		}
+
+		if ( ( sub_budget_number > 0 &&
+				gsb_data_budget_get_sub_budget_number_by_name ( budget_number,
+						gtk_entry_get_text ( GTK_ENTRY ( entry ) ),
+						FALSE ) &&
+						gsb_data_budget_get_sub_budget_number_by_name ( budget_number,
+								gtk_entry_get_text ( GTK_ENTRY ( entry ) ),
+								FALSE ) != sub_budget_number) ||
+								( sub_budget_number <= 0 &&
+										gsb_data_budget_get_number_by_name ( gtk_entry_get_text ( GTK_ENTRY ( entry ) ),
+												FALSE, 0 ) &&
+												gsb_data_budget_get_number_by_name ( gtk_entry_get_text ( GTK_ENTRY ( entry ) ),
+														FALSE, 0 ) != budget_number ) )
+		{
+			gchar * message;
+			if ( sub_budget_number > 0 )
+			{
+				message = g_strdup_printf ( _("You tried to rename current sub-budgetary line to '%s' "
+						"but this sub-budgetary line already exists.  Please "
+						"choose another name."),
+						gtk_entry_get_text ( GTK_ENTRY ( entry ) ) );
+			}
+			else
+			{
+				message = g_strdup_printf ( _("You tried to rename current budgetary line to '%s' "
+						"but this budgetary line already exists.  Please "
+						"choose another name."),
+						gtk_entry_get_text ( GTK_ENTRY ( entry ) ) );
+			}
+			dialogue_warning_hint ( message, _("Budgetary line already exists") );
+			g_free ( message );
+		}
+		else
+		{
+			if ( sub_budget_number > 0 )
+			{
+				gsb_data_budget_set_sub_budget_name ( budget_number,
+						sub_budget_number,
+						gtk_entry_get_text ( GTK_ENTRY (entry)));
+			}
+			else
+			{
+				gsb_data_budget_set_name ( budget_number,
+						gtk_entry_get_text ( GTK_ENTRY (entry)));
+			}
+			break;
+		}
+	}
+
+	gtk_widget_destroy ( GTK_WIDGET ( dialog ) );
+
+	if ( sub_budget_number > 0 )
 	{
-	    gchar * message;
-	    if ( sub_budget_number > 0 )
-	    {
-		message = g_strdup_printf ( _("You tried to rename current sub-budgetary line to '%s' "
-					      "but this sub-budgetary line already exists.  Please "
-					      "choose another name."),
-					    gtk_entry_get_text ( GTK_ENTRY ( entry ) ) );
-	    }
-	    else
-	    {
-		message = g_strdup_printf ( _("You tried to rename current budgetary line to '%s' "
-					      "but this budgetary line already exists.  Please "
-					      "choose another name."),
-					    gtk_entry_get_text ( GTK_ENTRY ( entry ) ) );
-	    }
-	    dialogue_warning_hint ( message, _("Budgetary line already exists") );
-	    g_free ( message );
+		div_iter = get_iter_from_div ( model, budget_number, sub_budget_number );
+		fill_sub_division_row ( model,
+				budgetary_line_get_metatree_interface ( ),
+				div_iter,
+				budget_number,
+				sub_budget_number );
 	}
 	else
 	{
-	    if ( sub_budget_number > 0 )
-	    {
-		gsb_data_budget_set_sub_budget_name ( budget_number,
-						      sub_budget_number,
-						      gtk_entry_get_text ( GTK_ENTRY (entry)));
-	    }
-	    else
-	    {
-		gsb_data_budget_set_name ( budget_number,
-					   gtk_entry_get_text ( GTK_ENTRY (entry)));
-	    }
-	    break;
+		div_iter = get_iter_from_div ( model, budget_number, 0 );
+		fill_division_row ( model,
+				budgetary_line_get_metatree_interface ( ),
+				div_iter,
+				budget_number );
 	}
-    }
-
-    gtk_widget_destroy ( GTK_WIDGET ( dialog ) );
-
-    if ( sub_budget_number > 0 )
-    {
-	div_iter = get_iter_from_div ( model, budget_number, sub_budget_number );
-	fill_sub_division_row ( model,
-                        budgetary_line_get_metatree_interface ( ),
-                        div_iter,
-                        budget_number,
-                        sub_budget_number );
-    }
-    else
-    {
-	div_iter = get_iter_from_div ( model, budget_number, 0 );
-	fill_division_row ( model,
-                        budgetary_line_get_metatree_interface ( ),
-                        div_iter,
-                        budget_number );
-    }
-    gtk_tree_iter_free ( div_iter );
-
-    /* update the transactions list */
-    transaction_list_update_element ( ELEMENT_BUDGET );
-
-    return TRUE;
+	gtk_tree_iter_free ( div_iter );
+
+	/* update the transactions list */
+	transaction_list_update_element ( ELEMENT_BUDGET );
+
+	return TRUE;
 }
 
 
@@ -900,21 +892,21 @@ gboolean edit_budgetary_line ( GtkTreeView * view )
  */
 void appui_sur_ajout_imputation ( GtkTreeModel * model, GtkButton *button )
 {
-    gint type;
-
-    type = GPOINTER_TO_INT ( g_object_get_data ( G_OBJECT (button), "type" ) );
-    if ( type == 1 )
-        metatree_new_division ( model );
-    else
-    {
-        appui_sur_ajout_sub_division ( model );
-        selectionne_sub_budgetary ( model );
-    }
-    sortie_edit_budgetary_line = FALSE;
-    edit_budgetary_line ( GTK_TREE_VIEW ( budgetary_line_tree ) );
-    if ( sortie_edit_budgetary_line )
-        supprimer_division ( GTK_TREE_VIEW ( budgetary_line_tree ) );
-    sortie_edit_budgetary_line = FALSE;
+	gint type;
+
+	type = GPOINTER_TO_INT ( g_object_get_data ( G_OBJECT (button), "type" ) );
+	if ( type == 1 )
+		metatree_new_division ( model );
+	else
+	{
+		appui_sur_ajout_sub_division ( model );
+		selectionne_sub_budgetary ( model );
+	}
+	sortie_edit_budgetary_line = FALSE;
+	edit_budgetary_line ( GTK_TREE_VIEW ( budgetary_line_tree ) );
+	if ( sortie_edit_budgetary_line )
+		supprimer_division ( GTK_TREE_VIEW ( budgetary_line_tree ) );
+	sortie_edit_budgetary_line = FALSE;
 }
 
 
@@ -925,54 +917,54 @@ void appui_sur_ajout_imputation ( GtkTreeModel * model, GtkButton *button )
  */
 void selectionne_sub_budgetary ( GtkTreeModel * model )
 {
-    GtkTreeSelection * selection;
-    GtkTreeIter parent;
-    GtkTreeIter iter;
+	GtkTreeSelection * selection;
+	GtkTreeIter parent;
+	GtkTreeIter iter;
 	GtkTreePath * path;
-    gchar * name;
-    gint budget_number = -1, sub_budget_number = -1;
-    gint i = 0,j = 0;
-
-    selection = gtk_tree_view_get_selection ( 
-                        GTK_TREE_VIEW (budgetary_line_tree) );
-    if ( selection && gtk_tree_selection_get_selected (
-                        selection, &model, &parent ) )
-    {
-	gtk_tree_model_get ( model, &parent,
-                        META_TREE_NO_DIV_COLUMN, &budget_number,
-                        META_TREE_NO_SUB_DIV_COLUMN, &sub_budget_number,
-                        -1 );
-    }
-
-    if ( !selection || budget_number <= 0 )
-        return;
-
-    if ( sub_budget_number > 0 )
-        return;
-
-    name =  my_strdup (_("New sub-budget"));
-    sub_budget_number = gsb_data_budget_get_sub_budget_number_by_name ( 
-                        budget_number, name, FALSE );
-    j = gtk_tree_model_iter_n_children ( model, &parent );
-    for (i = 0; i < j; i++ )
-    {
-        gint numero;
-
-        gtk_tree_model_iter_nth_child ( model, &iter, &parent, i );
-        gtk_tree_model_get ( model, &iter,
-                        META_TREE_NO_SUB_DIV_COLUMN, &numero,
-                        -1 );
-        if ( numero == sub_budget_number )
-            break;
-    }
-    path = gtk_tree_model_get_path ( model, &iter );
-    gtk_tree_view_expand_to_path ( GTK_TREE_VIEW (budgetary_line_tree), path );
-    selection = gtk_tree_view_get_selection ( GTK_TREE_VIEW (budgetary_line_tree) );
-    gtk_tree_selection_select_path ( selection, path );
-    gtk_tree_view_scroll_to_cell ( GTK_TREE_VIEW (budgetary_line_tree), path,
-                        NULL, TRUE, 0.5, 0.5 );
-    gtk_tree_path_free ( path );
-    g_free ( name );
+	gchar * name;
+	gint budget_number = -1, sub_budget_number = -1;
+	gint i = 0,j = 0;
+
+	selection = gtk_tree_view_get_selection (
+			GTK_TREE_VIEW (budgetary_line_tree) );
+	if ( selection && gtk_tree_selection_get_selected (
+			selection, &model, &parent ) )
+	{
+		gtk_tree_model_get ( model, &parent,
+				META_TREE_NO_DIV_COLUMN, &budget_number,
+				META_TREE_NO_SUB_DIV_COLUMN, &sub_budget_number,
+				-1 );
+	}
+
+	if ( !selection || budget_number <= 0 )
+		return;
+
+	if ( sub_budget_number > 0 )
+		return;
+
+	name =  my_strdup (_("New sub-budget"));
+	sub_budget_number = gsb_data_budget_get_sub_budget_number_by_name (
+			budget_number, name, FALSE );
+	j = gtk_tree_model_iter_n_children ( model, &parent );
+	for (i = 0; i < j; i++ )
+	{
+		gint numero;
+
+		gtk_tree_model_iter_nth_child ( model, &iter, &parent, i );
+		gtk_tree_model_get ( model, &iter,
+				META_TREE_NO_SUB_DIV_COLUMN, &numero,
+				-1 );
+		if ( numero == sub_budget_number )
+			break;
+	}
+	path = gtk_tree_model_get_path ( model, &iter );
+	gtk_tree_view_expand_to_path ( GTK_TREE_VIEW (budgetary_line_tree), path );
+	selection = gtk_tree_view_get_selection ( GTK_TREE_VIEW (budgetary_line_tree) );
+	gtk_tree_selection_select_path ( selection, path );
+	gtk_tree_view_scroll_to_cell ( GTK_TREE_VIEW (budgetary_line_tree), path,
+			NULL, TRUE, 0.5, 0.5 );
+	gtk_tree_path_free ( path );
+	g_free ( name );
 }
 
 
@@ -983,7 +975,7 @@ void selectionne_sub_budgetary ( GtkTreeModel * model )
  */
 GtkTreePath *budgetary_hold_position_get_path ( void )
 {
-    return gtk_tree_path_copy ( budgetary_hold_position -> path );
+	return gtk_tree_path_copy ( budgetary_hold_position -> path );
 }
 
 /**
@@ -993,9 +985,9 @@ GtkTreePath *budgetary_hold_position_get_path ( void )
  */
 gboolean budgetary_hold_position_set_path ( GtkTreePath *path )
 {
-    budgetary_hold_position -> path = gtk_tree_path_copy ( path );
+	budgetary_hold_position -> path = gtk_tree_path_copy ( path );
 
-    return TRUE;
+	return TRUE;
 }
 /**
  * sauvegarde l'attribut expand.
@@ -1004,9 +996,9 @@ gboolean budgetary_hold_position_set_path ( GtkTreePath *path )
  */
 gboolean budgetary_hold_position_set_expand ( gboolean expand )
 {
-    budgetary_hold_position -> expand = expand;
+	budgetary_hold_position -> expand = expand;
 
-    return TRUE;
+	return TRUE;
 }
 
 
@@ -1019,66 +1011,66 @@ gboolean budgetary_hold_position_set_expand ( gboolean expand )
  * \return FALSE
  * */
 gboolean budgetary_line_list_button_press ( GtkWidget *tree_view,
-                        GdkEventButton *ev,
-                        gpointer null )
+		GdkEventButton *ev,
+		gpointer null )
 {
-    if ( ev -> button == RIGHT_BUTTON )
-    {
-        budgetary_line_list_popup_context_menu ( );
-
-        return TRUE;
-    }
-    else if ( ev -> type == GDK_2BUTTON_PRESS )
-    {
-        GtkTreeSelection *selection;
-        GtkTreeModel *model;
-        GtkTreeIter iter;
-        GtkTreePath *path = NULL;
-        enum meta_tree_row_type type_division;
-
-        type_division = metatree_get_row_type_from_tree_view ( tree_view );
-        if ( type_division == META_TREE_TRANSACTION )
-            return FALSE;
-
-        selection = gtk_tree_view_get_selection ( GTK_TREE_VIEW ( tree_view ) );
-        if ( selection && gtk_tree_selection_get_selected (selection, &model, &iter ) )
-            path = gtk_tree_model_get_path  ( model, &iter);
-
-        if ( conf.metatree_action_2button_press == 0 || type_division == META_TREE_DIV )
-        {
-            if ( gtk_tree_view_row_expanded ( GTK_TREE_VIEW ( tree_view ), path ) )
-                gtk_tree_view_collapse_row ( GTK_TREE_VIEW ( tree_view ), path );
-            else
-                gtk_tree_view_expand_row ( GTK_TREE_VIEW ( tree_view ), path, FALSE );
-
-            gtk_tree_path_free ( path );
-            return FALSE;
-        }
-        else if ( conf.metatree_action_2button_press == 1 )
-        {
-            edit_budgetary_line ( GTK_TREE_VIEW ( tree_view ) );
-
-            gtk_tree_path_free ( path );
-            return TRUE;
-        }
-        else
-        {
-            if ( type_division == META_TREE_SUB_DIV || type_division == META_TREE_TRANS_S_S_DIV )
-            {
-                    path = gtk_tree_model_get_path  ( model, &iter);
-                    gtk_tree_view_collapse_row ( GTK_TREE_VIEW ( tree_view ), path );
-
-                    gtk_tree_path_free ( path );
-
-                metatree_manage_sub_divisions ( tree_view );
-                return TRUE;
-            }
-            else
-                return FALSE;
-        }
-    }
-
-    return FALSE;
+	if ( ev -> button == RIGHT_BUTTON )
+	{
+		budgetary_line_list_popup_context_menu ( );
+
+		return TRUE;
+	}
+	else if ( ev -> type == GDK_2BUTTON_PRESS )
+	{
+		GtkTreeSelection *selection;
+		GtkTreeModel *model;
+		GtkTreeIter iter;
+		GtkTreePath *path = NULL;
+		enum meta_tree_row_type type_division;
+
+		type_division = metatree_get_row_type_from_tree_view ( tree_view );
+		if ( type_division == META_TREE_TRANSACTION )
+			return FALSE;
+
+		selection = gtk_tree_view_get_selection ( GTK_TREE_VIEW ( tree_view ) );
+		if ( selection && gtk_tree_selection_get_selected (selection, &model, &iter ) )
+			path = gtk_tree_model_get_path  ( model, &iter);
+
+		if ( conf.metatree_action_2button_press == 0 || type_division == META_TREE_DIV )
+		{
+			if ( gtk_tree_view_row_expanded ( GTK_TREE_VIEW ( tree_view ), path ) )
+				gtk_tree_view_collapse_row ( GTK_TREE_VIEW ( tree_view ), path );
+			else
+				gtk_tree_view_expand_row ( GTK_TREE_VIEW ( tree_view ), path, FALSE );
+
+			gtk_tree_path_free ( path );
+			return FALSE;
+		}
+		else if ( conf.metatree_action_2button_press == 1 )
+		{
+			edit_budgetary_line ( GTK_TREE_VIEW ( tree_view ) );
+
+			gtk_tree_path_free ( path );
+			return TRUE;
+		}
+		else
+		{
+			if ( type_division == META_TREE_SUB_DIV || type_division == META_TREE_TRANS_S_S_DIV )
+			{
+				path = gtk_tree_model_get_path  ( model, &iter);
+				gtk_tree_view_collapse_row ( GTK_TREE_VIEW ( tree_view ), path );
+
+				gtk_tree_path_free ( path );
+
+				metatree_manage_sub_divisions ( tree_view );
+				return TRUE;
+			}
+			else
+				return FALSE;
+		}
+	}
+
+	return FALSE;
 }
 
 
@@ -1090,71 +1082,71 @@ gboolean budgetary_line_list_button_press ( GtkWidget *tree_view,
  */
 void budgetary_line_list_popup_context_menu ( void )
 {
-    GtkWidget *menu;
-    GtkWidget *menu_item;
-    gchar *title;
-    enum meta_tree_row_type type_division;
-
-    type_division = metatree_get_row_type_from_tree_view ( budgetary_line_tree );
-
-    if ( type_division == META_TREE_TRANSACTION
-     ||
-     type_division == META_TREE_INVALID )
-        return;
-
-    menu = gtk_menu_new ();
-
-    if ( type_division == META_TREE_DIV || type_division == META_TREE_SUB_DIV )
-    {
-
-        /* Edit transaction */
-        if ( type_division == META_TREE_DIV )
-            title = g_strdup ( _("Edit selected budgetary line") );
-        else
-            title = g_strdup ( _("Edit selected sub-budgetary line") );
-
-        menu_item = gtk_image_menu_item_new_with_label ( title );
-        gtk_image_menu_item_set_image ( GTK_IMAGE_MENU_ITEM ( menu_item ),
-                            gtk_image_new_from_stock ( GTK_STOCK_EDIT,
-                            GTK_ICON_SIZE_MENU ) );
-        g_signal_connect_swapped ( G_OBJECT ( menu_item ),
-                            "activate",
-                            G_CALLBACK ( edit_budgetary_line ),
-                            budgetary_line_tree );
-        gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), menu_item );
-
-        g_free ( title );
-    }
-
-    if ( type_division == META_TREE_SUB_DIV || type_division == META_TREE_TRANS_S_S_DIV )
-    {
-        /* Manage sub_divisions */
-        if ( type_division == META_TREE_SUB_DIV )
-        {
-            /* Separator */
-            gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), gtk_separator_menu_item_new ( ) );
-            title = g_strdup ( _("Manage sub-budgetary line") );
-        }
-        else
-            title = g_strdup ( _("Transfer all transactions in another sub-budgetary line") );
-
-        menu_item = gtk_image_menu_item_new_with_label ( title );
-        gtk_image_menu_item_set_image ( GTK_IMAGE_MENU_ITEM ( menu_item ),
-                        gtk_image_new_from_stock ( GTK_STOCK_CONVERT,
-                        GTK_ICON_SIZE_MENU ) );
-        g_signal_connect_swapped ( G_OBJECT ( menu_item ),
-                        "activate",
-                        G_CALLBACK ( metatree_manage_sub_divisions ),
-                        budgetary_line_tree );
-        gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), menu_item );
-
-        g_free ( title );
-    }
-
-    /* Finish all. */
-    gtk_widget_show_all ( menu );
-
-    gtk_menu_popup ( GTK_MENU ( menu ), NULL, NULL, NULL, NULL, 3, gtk_get_current_event_time ( ) );
+	GtkWidget *menu;
+	GtkWidget *menu_item;
+	gchar *title;
+	enum meta_tree_row_type type_division;
+
+	type_division = metatree_get_row_type_from_tree_view ( budgetary_line_tree );
+
+	if ( type_division == META_TREE_TRANSACTION
+			||
+			type_division == META_TREE_INVALID )
+		return;
+
+	menu = gtk_menu_new ();
+
+	if ( type_division == META_TREE_DIV || type_division == META_TREE_SUB_DIV )
+	{
+
+		/* Edit transaction */
+		if ( type_division == META_TREE_DIV )
+			title = g_strdup ( _("Edit selected budgetary line") );
+		else
+			title = g_strdup ( _("Edit selected sub-budgetary line") );
+
+		menu_item = gtk_image_menu_item_new_with_label ( title );
+		gtk_image_menu_item_set_image ( GTK_IMAGE_MENU_ITEM ( menu_item ),
+				gtk_image_new_from_stock ( GTK_STOCK_EDIT,
+						GTK_ICON_SIZE_MENU ) );
+		g_signal_connect_swapped ( G_OBJECT ( menu_item ),
+				"activate",
+				G_CALLBACK ( edit_budgetary_line ),
+				budgetary_line_tree );
+		gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), menu_item );
+
+		g_free ( title );
+	}
+
+	if ( type_division == META_TREE_SUB_DIV || type_division == META_TREE_TRANS_S_S_DIV )
+	{
+		/* Manage sub_divisions */
+		if ( type_division == META_TREE_SUB_DIV )
+		{
+			/* Separator */
+			gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), gtk_separator_menu_item_new ( ) );
+			title = g_strdup ( _("Manage sub-budgetary line") );
+		}
+		else
+			title = g_strdup ( _("Transfer all transactions in another sub-budgetary line") );
+
+		menu_item = gtk_image_menu_item_new_with_label ( title );
+		gtk_image_menu_item_set_image ( GTK_IMAGE_MENU_ITEM ( menu_item ),
+				gtk_image_new_from_stock ( GTK_STOCK_CONVERT,
+						GTK_ICON_SIZE_MENU ) );
+		g_signal_connect_swapped ( G_OBJECT ( menu_item ),
+				"activate",
+				G_CALLBACK ( metatree_manage_sub_divisions ),
+				budgetary_line_tree );
+		gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), menu_item );
+
+		g_free ( title );
+	}
+
+	/* Finish all. */
+	gtk_widget_show_all ( menu );
+
+	gtk_menu_popup ( GTK_MENU ( menu ), NULL, NULL, NULL, NULL, 3, gtk_get_current_event_time ( ) );
 }
 
 
@@ -1165,7 +1157,7 @@ void budgetary_line_list_popup_context_menu ( void )
  */
 GtkTreeStore *budgetary_lines_get_tree_store ( void )
 {
-    return budgetary_line_tree_model;
+	return budgetary_line_tree_model;
 }
 
 
@@ -1176,7 +1168,7 @@ GtkTreeStore *budgetary_lines_get_tree_store ( void )
  */
 GtkWidget *budgetary_lines_get_tree_view ( void )
 {
-    return budgetary_line_tree;
+	return budgetary_line_tree;
 }
 
 
@@ -1187,15 +1179,15 @@ GtkWidget *budgetary_lines_get_tree_view ( void )
  */
 void budgetary_lines_new_budgetary_line ( void )
 {
-    metatree_new_division ( GTK_TREE_MODEL ( budgetary_line_tree_model ) );
-
-    sortie_edit_budgetary_line = FALSE;
-    edit_budgetary_line ( GTK_TREE_VIEW ( budgetary_line_tree ) );
-    if ( sortie_edit_budgetary_line )
-    {
-        supprimer_division ( GTK_TREE_VIEW ( budgetary_line_tree ) );
-        sortie_edit_budgetary_line = FALSE;
-    }
+	metatree_new_division ( GTK_TREE_MODEL ( budgetary_line_tree_model ) );
+
+	sortie_edit_budgetary_line = FALSE;
+	edit_budgetary_line ( GTK_TREE_VIEW ( budgetary_line_tree ) );
+	if ( sortie_edit_budgetary_line )
+	{
+		supprimer_division ( GTK_TREE_VIEW ( budgetary_line_tree ) );
+		sortie_edit_budgetary_line = FALSE;
+	}
 }
 
 
@@ -1206,7 +1198,7 @@ void budgetary_lines_new_budgetary_line ( void )
  */
 void budgetary_lines_delete_budgetary_line ( void )
 {
-    supprimer_division ( GTK_TREE_VIEW ( budgetary_line_tree ) );
+	supprimer_division ( GTK_TREE_VIEW ( budgetary_line_tree ) );
 }
 
 
@@ -1217,7 +1209,7 @@ void budgetary_lines_delete_budgetary_line ( void )
  */
 void budgetary_lines_edit_budgetary_line ( void )
 {
-    edit_budgetary_line ( GTK_TREE_VIEW ( budgetary_line_tree ) );
+	edit_budgetary_line ( GTK_TREE_VIEW ( budgetary_line_tree ) );
 }
 
 
diff --git a/src/ui/dlg_edit_category.ui b/src/ui/dlg_edit_category.ui
deleted file mode 100644
index 53e6845..0000000
--- a/src/ui/dlg_edit_category.ui
+++ /dev/null
@@ -1,183 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<interface>
-  <requires lib="gtk+" version="2.24"/>
-  <object class="GtkDialog" id="dialog_edit_category">
-    <property name="can_focus">False</property>
-    <property name="border_width">5</property>
-    <property name="resizable">False</property>
-    <property name="modal">True</property>
-    <property name="window_position">center-on-parent</property>
-    <property name="type_hint">dialog</property>
-    <property name="has_resize_grip">False</property>
-    <child internal-child="vbox">
-      <object class="GtkVBox" id="dialog-vbox1">
-        <property name="can_focus">False</property>
-        <property name="orientation">vertical</property>
-        <property name="spacing">2</property>
-        <child internal-child="action_area">
-          <object class="GtkButtonBox" id="dialog-action_area1">
-            <property name="can_focus">False</property>
-            <property name="layout_style">end</property>
-            <child>
-              <object class="GtkButton" id="button1">
-                <property name="label">gtk-cancel</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_action_appearance">False</property>
-                <property name="use_stock">True</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkButton" id="button2">
-                <property name="label">gtk-ok</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_action_appearance">False</property>
-                <property name="use_stock">True</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="pack_type">end</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkHBox" id="box1">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="border_width">6</property>
-            <property name="spacing">18</property>
-            <child>
-              <object class="GtkVBox" id="vbox">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="border_width">12</property>
-                <property name="spacing">6</property>
-                <child>
-                  <object class="GtkLabel" id="label">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="xalign">0</property>
-                    <property name="yalign">1</property>
-                    <attributes>
-                      <attribute name="weight" value="bold"/>
-                    </attributes>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkHBox" id="hbox">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <child>
-                      <object class="GtkLabel" id="label1">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="label">    </property>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">0</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkVBox" id="paddingbox">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="border_width">6</property>
-                        <property name="spacing">6</property>
-                        <child>
-                          <object class="GtkTable" id="table">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="n_columns">2</property>
-                            <property name="column_spacing">6</property>
-                            <property name="row_spacing">6</property>
-                            <child>
-                              <object class="GtkLabel" id="label2">
-                                <property name="visible">True</property>
-                                <property name="visible">True</property>  ;  nt_event_time ( ) );  ;  ed",  button" ) ), TRUE );   ones.") :   :   ,  ujþ)B+  €Šÿ)B+  …*B+                          ’x+B+  °’§ÿ  €=+B+           …’§ÿ         p„’§ÿ  k€þ)B+  6                    è     è!     è!     @’§ÿ  °’§ÿ  x4+B+           †’§ÿ          ’bþ)B+          †€þ)B+  @’§ÿ  `bþ)B+  ’§ÿ         À/+B+  ujþ)B+    +B+  Ø$+B+  ¨)+B+  €Šÿ)B+          x4+B+           †’§ÿ          p…’§ÿ  k€þ)B+  à!     à!     @’§ÿ  °’§ÿ  Hþú*B+          €‡’§ÿ         ’bþ)B+          †€þ)B+  @’§ÿ  `bþ)B+  ’§ÿ  p’§ÿ  h’§ÿ  8‹*B+  Œp˜        °’§ÿ  ujþ)B+  €Šÿ)B+                  €‡’§ÿ         P†’§ÿ  k€þ)B+          G       H   I       J   K           M   N   O       P   @’§ÿ  °’§ÿ  HµÑ*B+           ‰’§ÿ         ’bþ)B+          †€þ)B+  @’§ÿ         0/+B+  ujþ)B+   @+B+   é®*B+    +B+  Ø$+B+  ¨)+B+  €Šÿ)B+          HµÑ*B+           ‰’§ÿ 
         `‡’§ÿ  k€þ)B+  8µÑ*B+           ‰’§ÿ         ‡’§ÿ  k€þ)B+  (µÑ*B+           ‰’§ÿ         À‡’§ÿ  k€þ)B+  µÑ*B+           ‰’§ÿ         ð‡’§ÿ  k€þ)B+  	       ¨.+B+  ujþ)B+         ¨)+B+  p‚’§ÿ          Š8¯*B+  eiþ)B+         Ø$+B+  ˆ’§ÿ          y8¯*B+  eiþ)B+           +B+  Àˆ’§ÿ          Z8¯*B+  eiþ)B+  Øä®*B+   @+B+   é®*B+    +B+  ØD+B+  Ø$+B+  ¨)+B+  €Šÿ)B+          8‹*B+                        ­z*B+  °’§ÿ  p{®*B+          pŠ’§ÿ          @‰’§ÿ  k€þ)B+      5   6   7   8   :   <   =   >       ?       @   B   D       @’§ÿ  °’§ÿ  à­w*B+                 °’§ÿ  ujþ)B+         …*B+  ðˆ’§ÿ          ­z*B+  eiþ)B+  …*B+          Õ_ at fÆS         Qöl±íÁÃF*B+  °’§ÿ  à­w*B+          €‹’§ÿ         PŠ’§ÿ  k€þ)B+  u]ÞÓ	4Q ÷U^Qʉ§ ¶uª¹ñìò*ēv@’§ÿ  °’§ÿ  HþC*B+          D€*B+          𑒧ÿ  ¦Pâ+B+  ¦Pâ+B+         –}*B+  ’§ÿ  °‘’§ÿ  h’§ÿ  Ќ’§ÿ  O+B+  ujþ)B+  ØD+B+  0“’§ÿ  ¢Pâ+B+   ’’§ÿ          ’§
 ÿ                 ÿÿÿÿÿÿÿÿ¢Pâ+B+          ¸’§ÿ                                            <property name="can_focus">False</property>
-                                <property name="xalign">0</property>
-                                <property name="label" translatable="yes">Name</property>
-                              </object>
-                              <packing>
-                                <property name="x_options">GTK_SHRINK | GTK_FILL</property>
-                                <property name="y_options">GTK_SHRINK | GTK_FILL</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkEntry" id="entry">
-                                <property name="width_request">400</property>
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="invisible_char">•</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="y_options"></property>
-                              </packing>
-                            </child>
-                          </object>
-                          <packing>
-                            <property name="expand">True</property>
-                            <property name="fill">True</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="expand">True</property>
-                        <property name="fill">True</property>
-                        <property name="position">1</property>
-                      </packing>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="expand">True</property>
-                <property name="fill">True</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">False</property>
-            <property name="position">1</property>
-          </packing>
-        </child>
-      </object>
-    </child>
-    <action-widgets>
-      <action-widget response="-6">button1</action-widget>
-      <action-widget response="-5">button2</action-widget>
-    </action-widgets>
-  </object>
-</interface>
diff --git a/src/ui/dlg_edit_category_radio.ui b/src/ui/dlg_edit_category_radio.ui
deleted file mode 100644
index 32effd4..0000000
--- a/src/ui/dlg_edit_category_radio.ui
+++ /dev/null
@@ -1,246 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<interface>
-  <requires lib="gtk+" version="2.24"/>
-  <object class="GtkDialog" id="dialog_edit_category">
-    <property name="can_focus">False</property>
-    <property name="border_width">5</property>
-    <property name="resizable">False</property>
-    <property name="modal">True</property>
-    <property name="window_position">center-on-parent</property>
-    <property name="type_hint">dialog</property>
-    <property name="has_resize_grip">False</property>
-    <child internal-child="vbox">
-      <object class="GtkBox" id="dialog-vbox1">
-        <property name="can_focus">False</property>
-        <property name="orientation">vertical</property>
-        <property name="spacing">2</property>
-        <child internal-child="action_area">
-          <object class="GtkButtonBox" id="dialog-action_area1">
-            <property name="can_focus">False</property>
-            <property name="layout_style">end</property>
-            <child>
-              <object class="GtkButton" id="button1">
-                <property name="label">gtk-cancel</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_action_appearance">False</property>
-                <property name="use_stock">True</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkButton" id="button2">
-                <property name="label">gtk-ok</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_action_appearance">False</property>
-                <property name="use_stock">True</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="pack_type">end</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkHBox" id="box1">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="border_width">6</property>
-            <property name="spacing">18</property>
-            <child>
-              <object class="GtkVBox" id="vbox">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="border_width">12</property>
-                <property name="spacing">6</property>
-                <child>
-                  <object class="GtkLabel" id="label">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="xalign">0</property>
-                    <property name="yalign">1</property>
-                    <attributes>
-                      <attribute name="weight" value="bold"/>
-                    </attributes>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkHBox" id="hbox">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <child>
-                      <object class="GtkLabel" id="label1">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="label">    </property>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">0</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkVBox" id="paddingbox">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="border_width">6</property>
-                        <property name="spacing">6</property>
-                        <child>
-                          <object class="GtkTable" id="table">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="n_rows">2</property>
-                            <property name="n_columns">2</property>
-                            <property name="column_spacing">6</property>
-                            <property name="row_spacing">6</property>
-                            <child>
-                              <object class="GtkLabel" id="label2">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="xalign">0</property>
-                                <property name="label" translatable="yes">Name</property>
-                              </object>
-                              <packing>
-                                <property name="x_options">GTK_SHRINK | GTK_FILL</property>
-                                <property name="y_options">GTK_SHRINK | GTK_FILL</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkEntry" id="entry">
-                                <property name="width_request">400</property>
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="invisible_char">•</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="y_options"></property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="label3">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="xalign">0</property>
-                                <property name="label" translatable="yes">Type</property>
-                              </object>
-                              <packing>
-                                <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                                <property name="x_options">GTK_SHRINK | GTK_FILL</property>
-                                <property name="y_options">GTK_SHRINK | GTK_FILL</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkVBox" id="box2">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="spacing">6</property>
-                                <child>
-                                  <object class="GtkRadioButton" id="Credit_radiobutton">
-                                    <property name="label" translatable="yes">Credit</property>
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">False</property>
-                                    <property name="use_action_appearance">False</property>
-                                    <property name="xalign">0</property>
-                                    <property name="active">True</property>
-                                    <property name="draw_indicator">True</property>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">0</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkRadioButton" id="Debit_radiobutton">
-                                    <property name="label" translatable="yes">Debit</property>
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">False</property>
-                                    <property name="use_action_appearance">False</property>
-                                    <property name="xalign">0</property>
-                                    <property name="active">True</property>
-                                    <property name="draw_indicator">True</property>
-                                    <property name="group">Credit_radiobutton</property>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
-                                    <property name="position">1</property>
-                                  </packing>
-                                </child>
-                              </object>
-                              <packing>
-                                <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="top_attach">1</property>
-                                <property name="bottom_attach">2</property>
-                              </packing>
-                            </child>
-                          </object>
-                          <packing>
-                            <property name="expand">True</property>
-                            <property name="fill">True</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="expand">True</property>
-                        <property name="fill">True</property>
-                        <property name="position">1</property>
-                      </packing>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="expand">True</property>
-                <property name="fill">True</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">False</property>
-            <property name="position">1</property>
-          </packing>
-        </child>
-      </object>
-    </child>
-    <action-widgets>
-      <action-widget response="-6">button1</action-widget>
-      <action-widget response="-5">button2</action-widget>
-    </action-widgets>
-  </object>
-</interface>
diff --git a/src/ui/dlg_edit_with_radio.ui b/src/ui/dlg_edit_with_radio.ui
new file mode 100644
index 0000000..32effd4
--- /dev/null
+++ b/src/ui/dlg_edit_with_radio.ui
@@ -0,0 +1,246 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <requires lib="gtk+" version="2.24"/>
+  <object class="GtkDialog" id="dialog_edit_category">
+    <property name="can_focus">False</property>
+    <property name="border_width">5</property>
+    <property name="resizable">False</property>
+    <property name="modal">True</property>
+    <property name="window_position">center-on-parent</property>
+    <property name="type_hint">dialog</property>
+    <property name="has_resize_grip">False</property>
+    <child internal-child="vbox">
+      <object class="GtkBox" id="dialog-vbox1">
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox" id="dialog-action_area1">
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="button1">
+                <property name="label">gtk-cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="button2">
+                <property name="label">gtk-ok</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkHBox" id="box1">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="border_width">6</property>
+            <property name="spacing">18</property>
+            <child>
+              <object class="GtkVBox" id="vbox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="border_width">12</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkLabel" id="label">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">1</property>
+                    <attributes>
+                      <attribute name="weight" value="bold"/>
+                    </attributes>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHBox" id="hbox">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <child>
+                      <object class="GtkLabel" id="label1">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label">    </property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkVBox" id="paddingbox">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="border_width">6</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkTable" id="table">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="n_rows">2</property>
+                            <property name="n_columns">2</property>
+                            <property name="column_spacing">6</property>
+                            <property name="row_spacing">6</property>
+                            <child>
+                              <object class="GtkLabel" id="label2">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Name</property>
+                              </object>
+                              <packing>
+                                <property name="x_options">GTK_SHRINK | GTK_FILL</property>
+                                <property name="y_options">GTK_SHRINK | GTK_FILL</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkEntry" id="entry">
+                                <property name="width_request">400</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">•</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="y_options"></property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label3">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Type</property>
+                              </object>
+                              <packing>
+                                <property name="top_attach">1</property>
+                                <property name="bottom_attach">2</property>
+                                <property name="x_options">GTK_SHRINK | GTK_FILL</property>
+                                <property name="y_options">GTK_SHRINK | GTK_FILL</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkVBox" id="box2">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="spacing">6</property>
+                                <child>
+                                  <object class="GtkRadioButton" id="Credit_radiobutton">
+                                    <property name="label" translatable="yes">Credit</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_action_appearance">False</property>
+                                    <property name="xalign">0</property>
+                                    <property name="active">True</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkRadioButton" id="Debit_radiobutton">
+                                    <property name="label" translatable="yes">Debit</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_action_appearance">False</property>
+                                    <property name="xalign">0</property>
+                                    <property name="active">True</property>
+                                    <property name="draw_indicator">True</property>
+                                    <property name="group">Credit_radiobutton</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="top_attach">1</property>
+                                <property name="bottom_attach">2</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-6">button1</action-widget>
+      <action-widget response="-5">button2</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/src/ui/dlg_edit_without_radio.ui b/src/ui/dlg_edit_without_radio.ui
new file mode 100644
index 0000000..53e6845
--- /dev/null
+++ b/src/ui/dlg_edit_without_radio.ui
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <requires lib="gtk+" version="2.24"/>
+  <object class="GtkDialog" id="dialog_edit_category">
+    <property name="can_focus">False</property>
+    <property name="border_width">5</property>
+    <property name="resizable">False</property>
+    <property name="modal">True</property>
+    <property name="window_position">center-on-parent</property>
+    <property name="type_hint">dialog</property>
+    <property name="has_resize_grip">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox1">
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox" id="dialog-action_area1">
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="button1">
+                <property name="label">gtk-cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="button2">
+                <property name="label">gtk-ok</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkHBox" id="box1">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="border_width">6</property>
+            <property name="spacing">18</property>
+            <child>
+              <object class="GtkVBox" id="vbox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="border_width">12</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkLabel" id="label">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">1</property>
+                    <attributes>
+                      <attribute name="weight" value="bold"/>
+                    </attributes>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkHBox" id="hbox">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <child>
+                      <object class="GtkLabel" id="label1">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label">    </property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkVBox" id="paddingbox">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="border_width">6</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkTable" id="table">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="n_columns">2</property>
+                            <property name="column_spacing">6</property>
+                            <property name="row_spacing">6</property>
+                            <child>
+                              <object class="GtkLabel" id="label2">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Name</property>
+                              </object>
+                              <packing>
+                                <property name="x_options">GTK_SHRINK | GTK_FILL</property>
+                                <property name="y_options">GTK_SHRINK | GTK_FILL</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkEntry" id="entry">
+                                <property name="width_request">400</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">•</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="y_options"></property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-6">button1</action-widget>
+      <action-widget response="-5">button2</action-widget>
+    </action-widgets>
+  </object>
+</interface>


hooks/post-receive
-- 
grisbi


More information about the cvs mailing list