[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
- Previous message: [grisbi-cvs] grisbi/po POTFILES.in, 1.43, 1.44 cs.po, 1.102, 1.103 da.po, 1.108, 1.109 de.po, 1.182, 1.183 el.po, 1.72, 1.73 eo.po, 1.65, 1.66 es.po, 1.180, 1.181 fa.po, 1.95, 1.96 fr.po, 1.241, 1.242 grisbi.pot, 1.143, 1.144 he.po, 1.101, 1.102 it.po, 1.101, 1.102 nl.po, 1.100, 1.101 pl.po, 1.106, 1.107 pt_BR.po, 1.103, 1.104 ro.po, 1.102, 1.103 ru.po, 1.100, 1.101 zh_CN.po, 1.96, 1.97
- Next message: [grisbi-cvs] grisbi/po es.po,1.181,1.182
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
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: */
- Previous message: [grisbi-cvs] grisbi/po POTFILES.in, 1.43, 1.44 cs.po, 1.102, 1.103 da.po, 1.108, 1.109 de.po, 1.182, 1.183 el.po, 1.72, 1.73 eo.po, 1.65, 1.66 es.po, 1.180, 1.181 fa.po, 1.95, 1.96 fr.po, 1.241, 1.242 grisbi.pot, 1.143, 1.144 he.po, 1.101, 1.102 it.po, 1.101, 1.102 nl.po, 1.100, 1.101 pl.po, 1.106, 1.107 pt_BR.po, 1.103, 1.104 ro.po, 1.102, 1.103 ru.po, 1.100, 1.101 zh_CN.po, 1.96, 1.97
- Next message: [grisbi-cvs] grisbi/po es.po,1.181,1.182
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the cvs
mailing list