[grisbi-cvs] grisbi/src accueil.c, 1.223, 1.224 balance_estimate_data.c, 1.15, 1.16 balance_estimate_future.c, 1.3, 1.4 balance_estimate_future.h, 1.2, 1.3 balance_estimate_tab.c, 1.56, 1.57 dialog.c, 1.79, 1.80 erreur.c, 1.99, 1.100 gsb_data_scheduled.c, 1.30, 1.31 gsb_data_scheduled.h, 1.17, 1.18 gsb_file_config.c, 1.93, 1.94 gsb_form.c, 1.153, 1.154 gsb_form.h, 1.27, 1.28 gsb_form_scheduler.c, 1.39, 1.40 gsb_form_scheduler.h, 1.5, 1.6 gsb_form_widget.c, 1.50, 1.51 gsb_form_widget.h, 1.7, 1.8 gsb_transactions_list.c, 1.203, 1.204 gtk_combofix.c, 1.72, 1.73 import.c, 1.326, 1.327 utils.c, 1.62, 1.63

Pierre Biava pbiava at users.sourceforge.net
Tue Mar 23 23:15:23 CET 2010


Update of /cvsroot/grisbi/grisbi/src
In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv20666/src

Modified Files:
	accueil.c balance_estimate_data.c balance_estimate_future.c 
	balance_estimate_future.h balance_estimate_tab.c dialog.c 
	erreur.c gsb_data_scheduled.c gsb_data_scheduled.h 
	gsb_file_config.c gsb_form.c gsb_form.h gsb_form_scheduler.c 
	gsb_form_scheduler.h gsb_form_widget.c gsb_form_widget.h 
	gsb_transactions_list.c gtk_combofix.c import.c utils.c 
Log Message:
fixed bug 1004 and minor corrections

Index: gsb_form.h
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gsb_form.h,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -d -r1.27 -r1.28
--- gsb_form.h	25 May 2009 19:42:27 -0000	1.27
+++ gsb_form.h	23 Mar 2010 22:15:21 -0000	1.28
@@ -21,6 +21,7 @@
 
 
 /* START_DECLARATION */
+gint gsb_form_get_element_expandable ( gint element_number );
 gboolean gsb_form_allocate_size ( GtkWidget *table,
                         GtkAllocation *allocation,
                         gpointer null );
@@ -46,6 +47,8 @@
 gboolean gsb_form_fill_from_account ( gint account_number );
 gboolean gsb_form_finish_edition ( void );
 gint gsb_form_get_account_number ( void );
+GtkWidget *gsb_form_get_element_widget_from_list ( gint element_number,
+                        GSList *list );
 GtkWidget *gsb_form_get_form_widget ( void );
 gint gsb_form_get_origin ( void );
 GtkWidget *gsb_form_get_scheduler_part ( void );

Index: gtk_combofix.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gtk_combofix.c,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -d -r1.72 -r1.73
--- gtk_combofix.c	13 Feb 2010 17:44:59 -0000	1.72
+++ gtk_combofix.c	23 Mar 2010 22:15:21 -0000	1.73
@@ -716,7 +716,7 @@
 {
     gchar *completed_string = NULL;
     const gchar *entry_string;
-devel_debug_int (insert_text);
+
     entry_string = gtk_entry_get_text ( GTK_ENTRY ( combofix -> entry ) );
 
     if ( strlen ( entry_string ) )

Index: gsb_form_widget.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gsb_form_widget.c,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -d -r1.50 -r1.51
--- gsb_form_widget.c	8 Mar 2010 21:30:01 -0000	1.50
+++ gsb_form_widget.c	23 Mar 2010 22:15:21 -0000	1.51
@@ -55,11 +55,11 @@
 
 /*START_STATIC*/
 static gboolean gsb_form_widget_can_focus ( gint element_number );
-static gboolean gsb_form_widget_entry_get_focus ( GtkWidget *entry,
-                        GdkEventFocus *ev,
-                        gint *ptr_origin );
-static gboolean gsb_form_widget_amount_entry_changed ( GtkWidget *entry,
-				        gpointer null );
+//~ static gboolean gsb_form_widget_entry_get_focus ( GtkWidget *entry,
+                        //~ GdkEventFocus *ev,
+                        //~ gint *ptr_origin );
+//~ static gboolean gsb_form_widget_amount_entry_changed ( GtkWidget *entry,
+				        //~ gpointer null );
 static gboolean gsb_form_combo_selection_changed ( GtkTreeSelection *tree_selection,
 						gint *ptr_origin );
 /*END_STATIC*/
@@ -369,7 +369,6 @@
                        "changed",
                        G_CALLBACK ( gsb_form_combo_selection_changed ),
                        GINT_TO_POINTER ( element_number ) );
-
 	    }
 	    else
 		/* neither an entry, neither a combofix */
@@ -396,25 +395,8 @@
  * */
 GtkWidget *gsb_form_widget_get_widget ( gint element_number )
 {
-    GSList *list_tmp;
-
-    if ( !element_number )
-	return NULL;
-
-    list_tmp = form_list_widgets;
-
-    while (list_tmp)
-    {
-	struct_element *element;
-
-	element = list_tmp -> data;
-
-	if (element -> element_number == element_number)
-	    return element -> element_widget;
-
-	list_tmp = list_tmp -> next;
-    }
-    return NULL;
+    return gsb_form_get_element_widget_from_list ( element_number,
+                        form_list_widgets );
 }
 
 

Index: gsb_data_scheduled.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gsb_data_scheduled.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- gsb_data_scheduled.c	12 Jun 2009 19:06:56 -0000	1.30
+++ gsb_data_scheduled.c	23 Mar 2010 22:15:21 -0000	1.31
@@ -39,51 +39,7 @@
 /*END_INCLUDE*/
 
 
-/**
- * \struct 
- * Describe a scheduled
- */
-typedef struct
-{
-    /** @name general stuff */
-    gint scheduled_number;
-    gint account_number;
-    gsb_real scheduled_amount;
-    gint party_number;
-    gchar *notes;
-    gshort automatic_scheduled;			/**< 0=manual, 1=automatic (scheduled scheduled) */
-    guint financial_year_number;
-
-    /** @name dates of the scheduled */
-    GDate *date;
-
-    /** @name currency stuff */
-    gint currency_number;
-
-    /** @name category stuff */
-    gint category_number;
-    gint sub_category_number;
-    gint budgetary_number;
-    gint sub_budgetary_number;
-    gint account_number_transfer;			/**< -1 for a scheduled neither categ, neither transfer, neither split */
-    gint split_of_scheduled;			/**< 1 if it's a split of scheduled */
-    gint mother_scheduled_number;			/**< for a split, the mother's scheduled number */
-
-    /** @name method of payment */
-    gint method_of_payment_number;
-    gchar *method_of_payment_content;
-    gint contra_method_of_payment_number;
-
-    /** @name specific stuff for scheduled transactions */
-    gint frequency;					/**<  0=once, 1=week, 2=month, 3=year, 4=perso */
-    gint user_interval;					/**<  0=days, 1=monthes, 2=years */
-    gint user_entry;
-    GDate *limit_date;
-} struct_scheduled;
-
-
 /*START_STATIC*/
-static  void _gsb_data_scheduled_free ( struct_scheduled *scheduled);
 static void gsb_data_scheduled_delete_all_scheduled ();
 static gint gsb_data_scheduled_get_last_number (void);
 static gint gsb_data_scheduled_get_last_white_number (void);
@@ -121,10 +77,11 @@
         tmp_list = scheduled_list;
         while (tmp_list)
         {
-	    struct_scheduled *scheduled;
-	    scheduled = tmp_list -> data;
-	    tmp_list = tmp_list -> next;
-            _gsb_data_scheduled_free ( scheduled );
+            struct_scheduled *scheduled;
+
+            scheduled = tmp_list -> data;
+            tmp_list = tmp_list -> next;
+                gsb_data_scheduled_free ( scheduled );
         } 
         g_slist_free ( scheduled_list );
         scheduled_list = NULL;
@@ -1569,7 +1526,7 @@
 /**
  * This internal function is called to free memory used by a struct_scheduled structure.
  */
-static void _gsb_data_scheduled_free ( struct_scheduled *scheduled)
+void gsb_data_scheduled_free ( struct_scheduled *scheduled)
 {
     if ( ! scheduled )
         return;
@@ -1621,7 +1578,7 @@
 	    {
 		scheduled_list = g_slist_remove ( scheduled_list,
 						  scheduled_child );
-		_gsb_data_scheduled_free ( scheduled_child );
+		gsb_data_scheduled_free ( scheduled_child );
 	    }
 	    list_tmp = list_tmp -> next;
 	}
@@ -1630,7 +1587,7 @@
     scheduled_list = g_slist_remove ( scheduled_list,
 				      scheduled );
 
-    _gsb_data_scheduled_free (scheduled);
+    gsb_data_scheduled_free (scheduled);
     return TRUE;
 }
 

Index: erreur.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/erreur.c,v
retrieving revision 1.99
retrieving revision 1.100
diff -u -d -r1.99 -r1.100
--- erreur.c	15 Mar 2010 20:29:47 -0000	1.99
+++ erreur.c	23 Mar 2010 22:15:21 -0000	1.100
@@ -134,13 +134,14 @@
     old_errmsg = errmsg;
     errmsg = g_strconcat ( errmsg, 
 			   "\n\n",
-			   _("Please report this problem to http://www.grisbi.org/bugtracking/.  "),
+			   _("Please report this problem to <tt>http://www.grisbi.org/bugtracking/</tt>.  "),
 			   NULL );
      g_free ( old_errmsg );
 
 #ifdef HAVE_BACKTRACE
     old_errmsg = errmsg;
-    errmsg = g_strconcat ( errmsg, _("Copy and paste the following backtrace with your bug report."),
+    errmsg = g_strconcat ( errmsg, _("Copy and paste the following backtrace with your bug "
+                        "report."),
 			   NULL );
      g_free ( old_errmsg );
 #endif

Index: accueil.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/accueil.c,v
retrieving revision 1.223
retrieving revision 1.224
diff -u -d -r1.223 -r1.224
--- accueil.c	26 Feb 2010 22:21:56 -0000	1.223
+++ accueil.c	23 Mar 2010 22:15:21 -0000	1.224
@@ -316,7 +316,7 @@
 
     parent_save = form_transaction_part -> parent;
 
-    /* crée la boite de dialogue */
+    /* Create the dialog */
     dialog = gtk_dialog_new_with_buttons ( _("Enter a scheduled transaction"),
 					   GTK_WINDOW ( window ),
 					   GTK_DIALOG_MODAL,

Index: gsb_transactions_list.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gsb_transactions_list.c,v
retrieving revision 1.203
retrieving revision 1.204
diff -u -d -r1.203 -r1.204
--- gsb_transactions_list.c	20 Mar 2010 18:37:31 -0000	1.203
+++ gsb_transactions_list.c	23 Mar 2010 22:15:21 -0000	1.204
@@ -26,6 +26,7 @@
 /*START_INCLUDE*/
 #include "gsb_transactions_list.h"
 #include "./accueil.h"
+#include "./balance_estimate_data.h"
 #include "./utils_operations.h"
 #include "./dialog.h"
 #include "./affichage_liste.h"
@@ -941,7 +942,7 @@
     gint transaction_number;
     gint mother_transaction;
 
-    devel_debug (NULL);
+    //~ devel_debug (NULL);
 
     if (gsb_gui_navigation_get_current_account () == -1)
 	return FALSE;
@@ -2417,6 +2418,11 @@
 
     gtk_notebook_set_current_page ( GTK_NOTEBOOK ( notebook_general ), 1 );
 
+#ifdef ENABLE_BALANCE_ESTIMATE
+    /* force the update module budget */
+    bet_data_set_maj ( TRUE );
+#endif /* ENABLE_BALANCE_ESTIMATE */
+
     if ( etat.modification_fichier == 0 )
         modification_fichier ( TRUE );
     return FALSE;

Index: gsb_form.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gsb_form.c,v
retrieving revision 1.153
retrieving revision 1.154
diff -u -d -r1.153 -r1.154
--- gsb_form.c	16 Mar 2010 11:48:43 -0000	1.153
+++ gsb_form.c	23 Mar 2010 22:15:21 -0000	1.154
@@ -95,7 +95,7 @@
 static gboolean gsb_form_get_categories ( gint transaction_number,
                         gint new_transaction,
                         gboolean is_transaction );
-static gint gsb_form_get_element_expandable ( gint element_number );
+//~ static gint gsb_form_get_element_expandable ( gint element_number );
 static gboolean gsb_form_hide ( void );
 static  gboolean gsb_form_size_allocate ( GtkWidget *widget,
                         GtkAllocation *allocation,
@@ -1187,7 +1187,7 @@
 	    return FALSE;
 	    break;
 	    
-	case-1:
+	case -1:
 	    account_number = gsb_form_scheduler_get_account ();
 	    if (account_number == -2 )
 		return FALSE;
@@ -1434,8 +1434,6 @@
 {
     switch ( element_number )
     {
-	case TRANSACTION_FORM_DEVISE:
-	case TRANSACTION_FORM_TYPE:
 	case TRANSACTION_FORM_OP_NB:
 	case TRANSACTION_FORM_MODE:
 	    return GTK_SHRINK;
@@ -2219,7 +2217,6 @@
 }
 
 
-
 /** 
  * called when the user finishes the edition of the form
  * this function works for transaction and scheduled transactions,
@@ -3401,3 +3398,38 @@
 
     return FALSE;
 }
+
+
+/**
+ * return the widget of the element_number given in param in the list
+ *
+ * \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_tmp;
+
+    list_tmp = list;
+
+    while (list_tmp)
+    {
+        struct_element *element;
+
+        element = list_tmp -> data;
+        if (element -> element_number == element_number)
+            return element -> element_widget;
+
+        list_tmp = list_tmp -> next;
+    }
+
+    return NULL;
+}
+
+
+/* Local Variables: */
+/* c-basic-offset: 4 */
+/* End: */

Index: gsb_data_scheduled.h
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gsb_data_scheduled.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- gsb_data_scheduled.h	13 Oct 2008 12:41:59 -0000	1.17
+++ gsb_data_scheduled.h	23 Mar 2010 22:15:21 -0000	1.18
@@ -1,11 +1,57 @@
 #ifndef _GSB_DATA_SCHEDULED_H
 #define _GSB_DATA_SCHEDULED_H (1)
 
+
 /* START_INCLUDE_H */
-#include "././gsb_real.h"
+#include "./gsb_real.h"
 /* END_INCLUDE_H */
 
+
+/**
+ * \struct 
+ * Describe a scheduled
+ */
+typedef struct
+{
+    /** @name general stuff */
+    gint scheduled_number;
+    gint account_number;
+    gsb_real scheduled_amount;
+    gint party_number;
+    gchar *notes;
+    gshort automatic_scheduled;			/**< 0=manual, 1=automatic (scheduled scheduled) */
+    guint financial_year_number;
+
+    /** @name dates of the scheduled */
+    GDate *date;
+
+    /** @name currency stuff */
+    gint currency_number;
+
+    /** @name category stuff */
+    gint category_number;
+    gint sub_category_number;
+    gint budgetary_number;
+    gint sub_budgetary_number;
+    gint account_number_transfer;			/**< -1 for a scheduled neither categ, neither transfer, neither split */
+    gint split_of_scheduled;			/**< 1 if it's a split of scheduled */
+    gint mother_scheduled_number;			/**< for a split, the mother's scheduled number */
+
+    /** @name method of payment */
+    gint method_of_payment_number;
+    gchar *method_of_payment_content;
+    gint contra_method_of_payment_number;
+
+    /** @name specific stuff for scheduled transactions */
+    gint frequency;					/**<  0=once, 1=week, 2=month, 3=year, 4=perso */
+    gint user_interval;					/**<  0=days, 1=monthes, 2=years */
+    gint user_entry;
+    GDate *limit_date;
+} struct_scheduled;
+
+
 /* START_DECLARATION */
+void gsb_data_scheduled_free ( struct_scheduled *scheduled);
 gint gsb_data_scheduled_get_account_number ( gint scheduled_number );
 gint gsb_data_scheduled_get_account_number_transfer ( gint scheduled_number );
 gsb_real gsb_data_scheduled_get_amount ( gint scheduled_number );

Index: utils.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/utils.c,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -d -r1.62 -r1.63
--- utils.c	13 Mar 2010 21:06:58 -0000	1.62
+++ utils.c	23 Mar 2010 22:15:21 -0000	1.63
@@ -157,25 +157,26 @@
 {
     gchar **split;
     gchar *chaine = NULL;
+    gchar* tmp_str;
+
 #ifdef _WIN32
     gboolean use_default_browser = TRUE;
 
     if ( conf.browser_command && strlen ( conf.browser_command ) )
     {
-        use_default_browser = !strcmp( conf.browser_command,ETAT_WWW_BROWSER );
+        use_default_browser = !strcmp ( conf.browser_command,ETAT_WWW_BROWSER );
     }
     
 #else // !_WIN32
-    if ( !( conf.browser_command
-     &&
-     strlen ( conf.browser_command ) ) )
+    if ( !( conf.browser_command && strlen ( conf.browser_command ) ) )
     {
-    
-    gchar* tmpstr = g_strdup_printf ( _("Grisbi was unable to execute a web browser to "
-                        "browse url <tt>%s</tt>.  Please adjust your settings to a valid "
-                        "executable."), url );
-    dialogue_error_hint ( tmpstr, _("Cannot execute web browser") );
-    g_free (tmpstr);
+        tmp_str = g_strdup_printf ( _("Grisbi was unable to execute a web browser to "
+                        "browse url:\n<span foreground=\"blue\">%s</span>.\n\n"
+                        "Please adjust your settings to a valid executable."), url );
+        dialogue_error_hint ( tmp_str, _("Cannot execute web browser") );
+        g_free (tmp_str);
+
+        return FALSE;
     }
 #endif // _WIN32
 
@@ -184,41 +185,42 @@
     if (!use_default_browser)
     {
 #endif // _WIN32
+        /* search if the sequence `%s' is in the string
+         * and split the string before and after this delimiter */
+        split = g_strsplit ( conf.browser_command, "%s", 0 );
 
-    /* search if the sequence `%s' is in the string
-     * and split the string before and after this delimiter */
-    split = g_strsplit ( conf.browser_command, "%s", 0 );
-
-    if ( split[1] )
-    {
-	/* 	il y a bien un %s dans la commande de lancement */
-
-        /* concat the string before %s, the url and the string after %s */
-        gchar* tmpstr = g_strconcat ( " ", url, " ", NULL );
-	chaine = g_strjoinv ( tmpstr, split );
-	g_free(tmpstr);
-	/* add the & character at the end */
-	tmpstr = g_strconcat ( chaine, "&", NULL );
-	g_free(chaine);
-	chaine = tmpstr;
-    }
-    else
-	chaine = g_strconcat ( conf.browser_command, " ", url, "&", NULL ); 
+        if ( split[1] )
+        {
+            /* he has a %s in the command */
+            /* concat the string before %s, the url and the string after %s */
+            tmp_str = g_strconcat ( " ", url, " ", NULL );
+            chaine = g_strjoinv ( tmp_str, split );
+            g_free( tmp_str );
+            g_strfreev ( split );
 
-    g_strfreev(split);
+            /* add the & character at the end */
+            tmp_str = g_strconcat ( chaine, "&", NULL );
+            g_free ( chaine );
+            chaine = tmp_str;
+        }
+        else
+            chaine = g_strconcat ( conf.browser_command, " ", url, "&", NULL ); 
 
-    if ( system ( chaine ) == -1 )
-    {
-    	gchar* tmpstr = g_strdup_printf ( _("Grisbi was unable to execute a web browser to browse url <tt>%s</tt>.\nThe command was: %s.\nPlease adjust your settings to a valid executable."), url, chaine );
-	dialogue_error_hint ( tmpstr, _("Cannot execute web browser") );
-	g_free(tmpstr);
-    }
+        if ( system ( chaine ) == -1 )
+        {
+            tmp_str = g_strdup_printf ( _("Grisbi was unable to execute a web browser to "
+                        "browse url <tt>%s</tt>.\nThe command was: %s.\n"
+                        "Please adjust your settings to a valid executable."),
+                        url, chaine );
+            dialogue_error_hint ( tmp_str, _("Cannot execute web browser") );
+            g_free(tmp_str);
+        }
 
 #ifdef _WIN32
     }
     else
     {
-        win32_shell_execute_open(url);
+        win32_shell_execute_open ( url );
     } 
 #endif // _WIN32
     g_free(chaine);

Index: gsb_file_config.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gsb_file_config.c,v
retrieving revision 1.93
retrieving revision 1.94
diff -u -d -r1.93 -r1.94
--- gsb_file_config.c	13 Mar 2010 21:54:28 -0000	1.93
+++ gsb_file_config.c	23 Mar 2010 22:15:21 -0000	1.94
@@ -225,6 +225,11 @@
                         "Dvips command",
                         NULL );
 
+    conf.browser_command = g_key_file_get_string ( config,
+                        "General",
+                        "Web",
+                        NULL );
+
     conf.pluriel_final = g_key_file_get_integer ( config,
                         "General",
                         "Pluriel_final",
@@ -1354,30 +1359,30 @@
     conf.dvips_command = "dvips";
 
 /* mise en conformité avec les recommandations FreeDesktop. */
-//~ #ifndef _WIN32
-    //~ if ( g_file_test ( "/usr/bin/firefox", G_FILE_TEST_EXISTS ) )
-    //~ {
-    //~ conf.browser_command = g_strdup ( "/usr/bin/firefox" );
-    //~ }
-    //~ else if ( g_file_test ( "/usr/bin/iceweasel", G_FILE_TEST_EXISTS ) )
-    //~ {
-    //~ conf.browser_command = g_strdup ( "/usr/bin/iceweasel" );
-    //~ }
-    //~ else if ( g_file_test ( "/usr/bin/opera", G_FILE_TEST_EXISTS ) )
-    //~ {
-    //~ conf.browser_command = g_strdup ( "/usr/bin/opera" );
-    //~ }
-    //~ else if ( g_file_test ( "/usr/bin/mozilla", G_FILE_TEST_EXISTS ) )
-    //~ {
-    //~ conf.browser_command = g_strdup ( "/usr/bin/mozilla" );
-    //~ }
-    //~ else
-    //~ {
-//~ #endif /* _WIN32 */
-    conf.browser_command = g_strdup (ETAT_WWW_BROWSER);
-//~ #ifndef _WIN32
-    //~ }
-//~ #endif /* _WIN32 */
+#ifndef _WIN32
+    if ( g_file_test ( "/usr/bin/firefox", G_FILE_TEST_EXISTS ) )
+    {
+    conf.browser_command = g_strdup ( "/usr/bin/firefox" );
+    }
+    else if ( g_file_test ( "/usr/bin/iceweasel", G_FILE_TEST_EXISTS ) )
+    {
+    conf.browser_command = g_strdup ( "/usr/bin/iceweasel" );
+    }
+    else if ( g_file_test ( "/usr/bin/opera", G_FILE_TEST_EXISTS ) )
+    {
+    conf.browser_command = g_strdup ( "/usr/bin/opera" );
+    }
+    else if ( g_file_test ( "/usr/bin/mozilla", G_FILE_TEST_EXISTS ) )
+    {
+    conf.browser_command = g_strdup ( "/usr/bin/mozilla" );
+    }
+    else
+    {
+#endif /* _WIN32 */
+    conf.browser_command = g_strdup ( ETAT_WWW_BROWSER );
+#ifndef _WIN32
+    }
+#endif /* _WIN32 */
 
     /* Print */
     etat.print_config.printer = 0;

Index: gsb_form_widget.h
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gsb_form_widget.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- gsb_form_widget.h	4 Feb 2010 20:04:51 -0000	1.7
+++ gsb_form_widget.h	23 Mar 2010 22:15:21 -0000	1.8
@@ -17,6 +17,11 @@
 /* END_INCLUDE_H */
 
 /* START_DECLARATION */
+gboolean gsb_form_widget_entry_get_focus ( GtkWidget *entry,
+                        GdkEventFocus *ev,
+                        gint *ptr_origin );
+gboolean gsb_form_widget_amount_entry_changed ( GtkWidget *entry,
+				        gpointer null );
 gboolean gsb_form_widget_check_empty ( GtkWidget *entry );
 GtkWidget *gsb_form_widget_create ( gint element_number,
                         gint account_number );

Index: dialog.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/dialog.c,v
retrieving revision 1.79
retrieving revision 1.80
diff -u -d -r1.79 -r1.80
--- dialog.c	7 Mar 2010 07:58:04 -0000	1.79
+++ dialog.c	23 Mar 2010 22:15:21 -0000	1.80
@@ -171,7 +171,7 @@
  */
 G_MODULE_EXPORT void dialogue_error_hint ( gchar *text, gchar *hint )
 {
-    dialogue_special ( GTK_MESSAGE_ERROR, make_hint(hint, text) );
+    dialogue_special ( GTK_MESSAGE_ERROR, make_hint (hint, text) );
 }
 
 
@@ -214,7 +214,7 @@
                         GTK_DIALOG_DESTROY_WITH_PARENT,
                         param, GTK_BUTTONS_CLOSE,
                         "%s", text );
-    gtk_label_set_markup ( GTK_LABEL ( GTK_MESSAGE_DIALOG(dialog)->label ), text );
+    gtk_label_set_markup ( GTK_LABEL ( GTK_MESSAGE_DIALOG (dialog)->label ), text );
 
     gtk_window_set_modal ( GTK_WINDOW ( dialog ), TRUE );
     gtk_dialog_run (GTK_DIALOG (dialog));
@@ -582,12 +582,12 @@
  */
 gchar *make_hint ( gchar *hint, gchar *text )
 {
-    gchar *tmpstr;
-
-    tmpstr = g_markup_printf_escaped (
-                        "<span size=\"larger\" weight=\"bold\">%s</span>\n\n%s", hint, text );
+    gchar *tmp_str;
 
-    return tmpstr;
+    tmp_str = g_strconcat ( g_markup_printf_escaped (
+                        "<span size=\"larger\" weight=\"bold\">%s</span>\n\n", hint ),
+                        text, NULL );
+    return tmp_str;
 }
 
 

Index: import.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/import.c,v
retrieving revision 1.326
retrieving revision 1.327
diff -u -d -r1.326 -r1.327
--- import.c	15 Mar 2010 20:29:47 -0000	1.326
+++ import.c	23 Mar 2010 22:15:21 -0000	1.327
@@ -27,6 +27,7 @@
 /*START_INCLUDE*/
 #include "import.h"
 #include "./utils.h"
+#include "./balance_estimate_data.h"
 #include "./import_csv.h"
 #include "./dialog.h"
 #include "./utils_file_selection.h"
@@ -1602,6 +1603,11 @@
                  "with any reconcile number yet.  You may associate them with a reconcilation "
                  "later via the preferences windows.") );
 
+#ifdef ENABLE_BALANCE_ESTIMATE
+    /* force the update module budget */
+    bet_data_set_maj ( TRUE );
+#endif /* ENABLE_BALANCE_ESTIMATE */
+
     if ( etat.modification_fichier == 0 )
         modification_fichier ( TRUE );
 }
@@ -4364,6 +4370,11 @@
     mise_a_jour_soldes_minimaux = 1;
     mise_a_jour_accueil (FALSE);
 
+#ifdef ENABLE_BALANCE_ESTIMATE
+    /* force the update module budget */
+    bet_data_set_maj ( TRUE );
+#endif /* ENABLE_BALANCE_ESTIMATE */
+
     if ( etat.modification_fichier == 0 )
         modification_fichier ( TRUE );
 

Index: gsb_form_scheduler.h
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gsb_form_scheduler.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- gsb_form_scheduler.h	26 Dec 2009 16:57:13 -0000	1.5
+++ gsb_form_scheduler.h	23 Mar 2010 22:15:21 -0000	1.6
@@ -25,6 +25,12 @@
 
 
 /* START_DECLARATION */
+gboolean gsb_form_scheduler_button_press_event ( GtkWidget *entry,
+                        GdkEventButton *ev,
+                        gint *ptr_origin );
+gboolean gsb_form_scheduler_entry_lose_focus ( GtkWidget *entry,
+                        GdkEventFocus *ev,
+                        gint *ptr_origin );
 gboolean gsb_form_scheduler_change_account ( GtkWidget *button,
                         gpointer null );
 gboolean gsb_form_scheduler_clean ( void );

Index: balance_estimate_future.h
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/balance_estimate_future.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- balance_estimate_future.h	20 Mar 2010 18:37:31 -0000	1.2
+++ balance_estimate_future.h	23 Mar 2010 22:15:21 -0000	1.3
@@ -11,6 +11,9 @@
 gboolean bet_future_configure_form_to_future ( void );
 gboolean bet_future_configure_form_to_transaction ( void );
 GtkWidget * bet_future_create_page ( void );
+gboolean bet_future_new_line_dialog ( GtkWidget *tree_view,
+                        GtkTreeModel *tab_model,
+                        gchar *str_date );
 /* END_DECLARATION */
 
 #endif /*_BALANCE_ESTIMATE_FUTURE_H*/

Index: balance_estimate_data.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/balance_estimate_data.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- balance_estimate_data.c	20 Mar 2010 18:37:31 -0000	1.15
+++ balance_estimate_data.c	23 Mar 2010 22:15:21 -0000	1.16
@@ -78,6 +78,9 @@
 /* liste des div et sub_div cochées dans la vue des divisions */
 static GHashTable *bet_hist_div_list;
 
+/** the hashtable which contains all the bet_future structures */
+static GHashTable *bet_future_list;
+
 /* force la mise à jour des données */
 static gboolean bet_maj = FALSE;
 
@@ -95,6 +98,11 @@
                         g_str_equal,
                         (GDestroyNotify) g_free,
                         (GDestroyNotify) free_struct_hist_div );
+    bet_future_list = g_hash_table_new_full ( g_str_hash,
+                        g_str_equal,
+                        (GDestroyNotify) g_free,
+                        (GDestroyNotify) gsb_data_scheduled_free );
+
     return FALSE;
 
 }

Index: balance_estimate_tab.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/balance_estimate_tab.c,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -d -r1.56 -r1.57
--- balance_estimate_tab.c	20 Mar 2010 18:37:31 -0000	1.56
+++ balance_estimate_tab.c	23 Mar 2010 22:15:21 -0000	1.57
@@ -42,6 +42,7 @@
 #include "balance_estimate_tab.h"
 #include "./balance_estimate_config.h"
 #include "./balance_estimate_data.h"
+#include "./balance_estimate_future.h"
 #include "./balance_estimate_hist.h"
 #include "./utils_dates.h"
 #include "./gsb_data_account.h"
@@ -85,6 +86,10 @@
 static gboolean bet_array_list_button_press ( GtkWidget *tree_view,
                         GdkEventButton *ev );
 static void bet_array_list_context_menu ( GtkWidget *tree_view );
+static void bet_array_list_delete_menu ( GtkWidget *menu_item,
+                        GtkTreeSelection *tree_selection );
+static void bet_array_list_insert_menu ( GtkWidget *menu_item,
+                        GtkTreeSelection *tree_selection );
 static void bet_array_list_redo_menu ( GtkWidget *menu_item,
                         GtkTreeSelection *tree_selection );
 static gboolean bet_array_list_set_background_color ( GtkWidget *tree_view );
@@ -121,6 +126,7 @@
 
 enum bet_estimation_tree_columns {
     SPP_ESTIMATE_TREE_SELECT_COLUMN,    /* select column for the balance */
+    SPP_ESTIMATE_TREE_ORIGIN_DATA,      /* origin of data : transaction, scheduled, hist, future */
     SPP_ESTIMATE_TREE_DIVISION_COLUMN,  /* div_number */
     SPP_ESTIMATE_TREE_SUB_DIV_COLUMN,   /* sub_div_nb */
     SPP_ESTIMATE_TREE_DATE_COLUMN,
@@ -135,7 +141,12 @@
     SPP_ESTIMATE_TREE_NUM_COLUMNS
 };
 
-
+enum bet_array_origin_data {
+    SPP_ORIGIN_TRANSACTION,
+    SPP_ORIGIN_SCHEDULED,
+    SPP_ORIGIN_HISTORICAL,
+    SPP_ORIGIN_FUTURE
+};
 
 /*
  * 
@@ -528,6 +539,7 @@
     /* 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 */
@@ -776,6 +788,7 @@
                         SPP_ESTIMATE_TREE_SORT_DATE_COLUMN,
                         &date_value );
             gtk_tree_store_set ( GTK_TREE_STORE ( tab_model ), &iter,
+                        SPP_ESTIMATE_TREE_ORIGIN_DATA, SPP_ORIGIN_SCHEDULED,
                         SPP_ESTIMATE_TREE_DIVISION_COLUMN, 0,
                         SPP_ESTIMATE_TREE_SUB_DIV_COLUMN, 0,
                         SPP_ESTIMATE_TREE_DATE_COLUMN, str_date,
@@ -925,6 +938,7 @@
                         SPP_ESTIMATE_TREE_SORT_DATE_COLUMN,
                         &date_value );
         gtk_tree_store_set ( GTK_TREE_STORE ( tab_model ), &iter,
+                        SPP_ESTIMATE_TREE_ORIGIN_DATA, SPP_ORIGIN_TRANSACTION,
                         SPP_ESTIMATE_TREE_DIVISION_COLUMN, 0,
                         SPP_ESTIMATE_TREE_SUB_DIV_COLUMN, 0,
                         SPP_ESTIMATE_TREE_DATE_COLUMN, str_date,
@@ -1027,6 +1041,7 @@
                         SPP_ESTIMATE_TREE_SORT_DATE_COLUMN,
                         &date_value );
         gtk_tree_store_set ( GTK_TREE_STORE ( tab_model ), &tab_iter,
+                        SPP_ESTIMATE_TREE_ORIGIN_DATA, SPP_ORIGIN_HISTORICAL,
                         SPP_ESTIMATE_TREE_DIVISION_COLUMN, div_number,
                         SPP_ESTIMATE_TREE_SUB_DIV_COLUMN, sub_div_nb,
                         SPP_ESTIMATE_TREE_DATE_COLUMN, str_date,
@@ -1081,14 +1096,26 @@
     GtkTreeModel *model;
     GtkTreeSelection *tree_selection;
     GtkTreeIter iter;
+    GDate *date;
+    GDate *date_jour;
+    gchar *str_date;
     gboolean select = FALSE;
+    gint origine;
 
     tree_selection = gtk_tree_view_get_selection ( GTK_TREE_VIEW ( tree_view ) );
 
     if ( !gtk_tree_selection_get_selected ( GTK_TREE_SELECTION ( tree_selection ),
      &model, &iter ) )
         return;
-    gtk_tree_model_get ( model, &iter, SPP_ESTIMATE_TREE_SELECT_COLUMN, &select, -1 );
+
+    gtk_tree_model_get ( model, &iter, 
+                        SPP_ESTIMATE_TREE_SELECT_COLUMN, &select,
+                        SPP_ESTIMATE_TREE_ORIGIN_DATA, &origine,
+                        SPP_ESTIMATE_TREE_DATE_COLUMN, &str_date,
+                        -1 );
+
+    date = gsb_parse_date_string ( str_date );
+    date_jour = gdate_today ( ); 
 
     menu = gtk_menu_new ();
 
@@ -1118,7 +1145,53 @@
     gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), gtk_separator_menu_item_new ( ) );
     gtk_widget_show ( menu_item );
 
+    menu_item = gtk_image_menu_item_new_with_label ( _("Insert Row") );
+    gtk_image_menu_item_set_image ( GTK_IMAGE_MENU_ITEM ( menu_item ),
+                        gtk_image_new_from_stock ( GTK_STOCK_ADD,
+						GTK_ICON_SIZE_MENU ) );
+    g_signal_connect ( G_OBJECT ( menu_item ),
+                        "activate",
+                        G_CALLBACK ( bet_array_list_insert_menu ),
+                        tree_selection );
+    gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), menu_item );
+
     /* Delete item */
+    switch ( origine )
+    {
+        case SPP_ORIGIN_TRANSACTION:
+        case SPP_ORIGIN_SCHEDULED:
+            if ( g_date_compare ( date, date_jour ) > 0 )
+            {
+                menu_item = gtk_image_menu_item_new_with_label ( _("Delete selection") );
+                gtk_image_menu_item_set_image ( GTK_IMAGE_MENU_ITEM ( menu_item ),
+                        gtk_image_new_from_stock ( GTK_STOCK_DELETE,
+						GTK_ICON_SIZE_MENU ) );
+                g_signal_connect ( G_OBJECT ( menu_item ),
+                        "activate",
+                        G_CALLBACK ( bet_array_list_delete_menu ),
+                        tree_selection );
+                gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), menu_item );
+            }
+            break;
+        case SPP_ORIGIN_HISTORICAL:
+        case SPP_ORIGIN_FUTURE:
+            menu_item = gtk_image_menu_item_new_with_label ( _("Delete selection") );
+            gtk_image_menu_item_set_image ( GTK_IMAGE_MENU_ITEM ( menu_item ),
+                        gtk_image_new_from_stock ( GTK_STOCK_DELETE,
+						GTK_ICON_SIZE_MENU ) );
+            g_signal_connect ( G_OBJECT ( menu_item ),
+                        "activate",
+                        G_CALLBACK ( bet_array_list_delete_menu ),
+                        tree_selection );
+            gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), menu_item );
+            break;
+    }
+            
+    /* Separator */
+    gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ), gtk_separator_menu_item_new ( ) );
+    gtk_widget_show ( menu_item );
+
+    /* redo item */
     menu_item = gtk_image_menu_item_new_with_label ( _("Reset data") );
     gtk_image_menu_item_set_image ( GTK_IMAGE_MENU_ITEM ( menu_item ),
                         gtk_image_new_from_stock ( GTK_STOCK_REFRESH,
@@ -1131,7 +1204,10 @@
 
     /* Finish all. */
     gtk_widget_show_all ( menu );
-    gtk_menu_popup ( GTK_MENU( menu ), NULL, NULL, NULL, NULL, 3, gtk_get_current_event_time ( ) );
+    gtk_menu_popup ( GTK_MENU( menu ), NULL, NULL, NULL, NULL, 3,
+                        gtk_get_current_event_time ( ) );
+
+    g_date_free ( date_jour );
 }
 
 
@@ -1168,6 +1244,66 @@
  * /param row selected
  *
  * */
+void bet_array_list_delete_menu ( GtkWidget *menu_item,
+                        GtkTreeSelection *tree_selection )
+{
+    GtkWidget *tree_view;
+    GtkWidget *notebook;
+    GtkTreeModel *model;
+    GtkTreeIter iter;
+
+    if ( !gtk_tree_selection_get_selected ( GTK_TREE_SELECTION ( tree_selection ),
+     &model, &iter ) )
+        return;
+
+    notebook = g_object_get_data ( G_OBJECT ( notebook_general ), "account_notebook");
+    tree_view = g_object_get_data ( G_OBJECT ( notebook), "bet_estimate_treeview");
+    gtk_tree_store_remove ( GTK_TREE_STORE ( model ), &iter );
+    bet_array_list_set_background_color ( tree_view );
+    bet_array_list_update_balance ( model );
+}
+
+
+
+/**
+ * insert a row
+ *
+ * /param menu item
+ * /param row selected
+ *
+ * */
+void bet_array_list_insert_menu ( GtkWidget *menu_item,
+                        GtkTreeSelection *tree_selection )
+{
+    GtkWidget *tree_view;
+    GtkWidget *notebook;
+    GtkTreeModel *model;
+    GtkTreeIter iter;
+    gchar *str_date;
+
+    if ( !gtk_tree_selection_get_selected ( GTK_TREE_SELECTION ( tree_selection ),
+     &model, &iter ) )
+        return;
+
+    gtk_tree_model_get ( GTK_TREE_MODEL ( model ), &iter,
+                        SPP_ESTIMATE_TREE_DATE_COLUMN, &str_date,
+                        -1 );
+
+    notebook = g_object_get_data ( G_OBJECT ( notebook_general ), "account_notebook");
+    tree_view = g_object_get_data ( G_OBJECT ( notebook), "bet_estimate_treeview");
+    bet_future_new_line_dialog ( tree_view, model, str_date );
+    bet_array_list_set_background_color ( tree_view );
+    bet_array_list_update_balance ( model );
+}
+
+
+/**
+ * init data
+ *
+ * /param menu item
+ * /param row selected
+ *
+ * */
 void bet_array_list_redo_menu ( GtkWidget *menu_item,
                         GtkTreeSelection *tree_selection )
 {

Index: balance_estimate_future.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/balance_estimate_future.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- balance_estimate_future.c	20 Mar 2010 21:09:35 -0000	1.3
+++ balance_estimate_future.c	23 Mar 2010 22:15:21 -0000	1.4
@@ -34,6 +34,12 @@
 #include "./balance_estimate_config.h"
 #include "./balance_estimate_data.h"
 #include "./balance_estimate_hist.h"
+#include "./gsb_combo_box.h"
+#include "./dialog.h"
+#include "./gsb_form.h"
+#include "./gsb_form_scheduler.h"
+#include "./gsb_form_widget.h"
+#include "./gsb_data_form.h"
 #include "./utils_dates.h"
 #include "./gsb_data_account.h"
[...1216 lines suppressed...]
+    }
+
+printf ("frequency = %d date_fin = %s user_frequency = %d user_frequency_button = %d\n",
+        scheduled -> frequency,
+        gsb_format_gdate (scheduled -> limit_date),
+        scheduled -> user_entry,
+        scheduled -> user_interval);
+
+    
+    return TRUE;
+}
+/**
+ *
+ *
+ *
+ *
+ * */
 /* Local Variables: */
 /* c-basic-offset: 4 */
 /* End: */

Index: gsb_form_scheduler.c
===================================================================
RCS file: /cvsroot/grisbi/grisbi/src/gsb_form_scheduler.c,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -d -r1.39 -r1.40
--- gsb_form_scheduler.c	28 Feb 2010 22:10:26 -0000	1.39
+++ gsb_form_scheduler.c	23 Mar 2010 22:15:21 -0000	1.40
@@ -55,12 +55,12 @@
 /*END_INCLUDE*/
 
 /*START_STATIC*/
-static gboolean gsb_form_scheduler_button_press_event ( GtkWidget *entry,
-                        GdkEventButton *ev,
-                        gint *ptr_origin );
-static gboolean gsb_form_scheduler_entry_lose_focus ( GtkWidget *entry,
-                        GdkEventFocus *ev,
-                        gint *ptr_origin );
+//~ static gboolean gsb_form_scheduler_button_press_event ( GtkWidget *entry,
+                        //~ GdkEventButton *ev,
+                        //~ gint *ptr_origin );
+//~ static gboolean gsb_form_scheduler_entry_lose_focus ( GtkWidget *entry,
+                        //~ GdkEventFocus *ev,
+                        //~ gint *ptr_origin );
 static void gsb_form_scheduler_free_content_list ( GSList *content_list );
 static gboolean gsb_form_scheduler_frequency_button_changed ( GtkWidget *combo_box,
                        gpointer null );
@@ -83,16 +83,6 @@
 
 /**
  * \struct
- * Associate an element number for the scheduler part of the form
- * with the pointer to its widget */
-typedef struct
-{
-    gint element_number;
-    GtkWidget *element_widget;
-} scheduled_element;
-
-/**
- * \struct
  * associate an element number and a string value
  * used to keed the content of the form when changing the account
  * because the form is redrawed */
@@ -130,7 +120,7 @@
 gboolean gsb_form_scheduler_create ( GtkWidget *table )
 {
     gint row, column;
-    scheduled_element *element;
+    struct_element *element;
     devel_debug (NULL);
     if (!table)
         return FALSE;
@@ -218,7 +208,7 @@
                         "focus-out-event",
                         G_CALLBACK (gsb_form_scheduler_entry_lose_focus),
                         GINT_TO_POINTER (element_number));
-		    tooltip_text = SPACIFY(_("Custom frequency"));
+		    tooltip_text = SPACIFY(_("Own frequency"));
 		    break;
 
 		case SCHEDULED_FORM_FREQUENCY_USER_BUTTON:
@@ -236,7 +226,7 @@
                         tooltip_text);
 
 	    /* save the element */
-	    element = g_malloc0 (sizeof (scheduled_element));
+	    element = g_malloc0 (sizeof (struct_element));
 	    element -> element_number = element_number;
 	    element -> element_widget = widget;
 	    scheduled_element_list = g_slist_append ( scheduled_element_list,
@@ -277,7 +267,7 @@
 
     while (list_tmp)
     {
-	scheduled_element *element;
+	struct_element *element;
 
 	element = list_tmp -> data;
 	if (element -> element_widget
@@ -661,7 +651,7 @@
 		case SCHEDULED_FORM_FREQUENCY_USER_ENTRY:
 		    gsb_form_widget_set_empty ( widget, TRUE );
 		    gtk_entry_set_text ( GTK_ENTRY ( widget ),
-					 _("User frequency") );
+					 _("Own frequency") );
 		    gtk_widget_set_sensitive ( widget, TRUE );
 		    break;
 	    }
@@ -776,21 +766,8 @@
  * */
 GtkWidget *gsb_form_scheduler_get_element_widget ( gint element_number )
 {
-    GSList *list_tmp;
-
-    list_tmp = scheduled_element_list;
-
-    while (list_tmp)
-    {
-	scheduled_element *element;
-
-	element = list_tmp -> data;
-	if (element -> element_number == element_number)
-	    return element -> element_widget;
-
-	list_tmp = list_tmp -> next;
-    }
-    return NULL;
+    return gsb_form_get_element_widget_from_list ( element_number,
+                        scheduled_element_list );
 }
 
 
@@ -858,7 +835,10 @@
     {
 	case  SCHEDULED_FORM_LIMIT_DATE:
 	    if ( !strlen ( gtk_entry_get_text ( GTK_ENTRY ( entry ) ) ) )
+        {
+            gsb_form_widget_set_empty ( entry, TRUE );
             string = _("Limit date");
+        }
 	    break;
 
 	case  SCHEDULED_FORM_FREQUENCY_USER_ENTRY:
@@ -1257,4 +1237,7 @@
 }
 
 
+/* Local Variables: */
+/* c-basic-offset: 4 */
+/* End: */
 



More information about the cvs mailing list