]> Dogcows Code - chaz/homebank/blobdiff - src/ui-budget.c
Merge branch 'upstream'
[chaz/homebank] / src / ui-budget.c
index 61b228fed4a9817e86883bbb59e1a5c7acad80f6..5f8c6464810ba126cf2e3ae7abbf91261b1814f3 100644 (file)
@@ -1,5 +1,5 @@
 /*  HomeBank -- Free, easy, personal accounting for everyone.
- *  Copyright (C) 1995-2016 Maxime DOYEN
+ *  Copyright (C) 1995-2019 Maxime DOYEN
  *
  *  This file is part of HomeBank.
  *
@@ -41,23 +41,9 @@ extern struct HomeBank *GLOBALS;
 extern struct Preferences *PREFS;
 
 
+extern gchar *CYA_ABMONTHS[];
 
 
-gchar *months[] = {
-"Jan",
-"Feb",
-"Mar",
-"Apr",
-"May",
-"Jun",
-"Jul",
-"Aug",
-"Sep",
-"Oct",
-"Nov",
-"Dec"
-};
-
 static gchar *ui_bud_manage_getcsvbudgetstr(Category *item);
 static void ui_bud_manage_update(GtkWidget *treeview, gpointer user_data);
 static void ui_bud_manage_set(GtkWidget *widget, gpointer user_data);
@@ -132,7 +118,7 @@ gchar type;
        else
                name = entry->name;
 
-type = (entry->flags & GF_INCOME) ? '+' : '-';
+       type = category_get_type_char(entry);
 
        #if MYDEBUG
                string = g_markup_printf_escaped("%s ::(f=%d, %c)", name, entry->flags, type );
@@ -232,6 +218,9 @@ GtkTreeViewColumn  *column;
        treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
        g_object_unref(store);
 
+       gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (treeview), PREFS->grid_lines);
+       gtk_tree_view_set_enable_tree_lines(GTK_TREE_VIEW (treeview), TRUE);
+       
        /* column 1 */
        renderer = gtk_cell_renderer_text_new ();
        g_object_set(renderer, 
@@ -283,7 +272,9 @@ char buf[G_ASCII_DTOSTR_BUF_SIZE];
        {
                if( item->budget[0] )
                {
-                       g_ascii_dtostr (buf, sizeof (buf), item->budget[0]);
+                       //g_ascii_dtostr (buf, sizeof (buf), item->budget[0]);
+                       //#1750257 use locale numdigit
+                       g_snprintf(buf, sizeof (buf), "%.2f", item->budget[0]);
                        retval = g_strdup(buf);
 
                        //DB( g_print(" => %d: %s\n", 0, retval) );
@@ -299,7 +290,9 @@ char buf[G_ASCII_DTOSTR_BUF_SIZE];
                        //{
                        gchar *tmp = retval;
 
-                               g_ascii_dtostr (buf, sizeof (buf), item->budget[i]);
+                               //g_ascii_dtostr (buf, sizeof (buf), item->budget[i]);
+                               //#1750257 use locale numdigit
+                               g_snprintf(buf, sizeof (buf), "%.2f", item->budget[i]);
 
                                if(retval != NULL)
                                {
@@ -458,7 +451,9 @@ const gchar *encoding;
                                                        tmpitem->flags &= ~(GF_CUSTOM);         //delete flag
                                                        if( *str_array[1] == '*' )
                                                        {
-                                                               tmpitem->budget[0] = g_ascii_strtod(str_array[3], NULL);
+                                                               //tmpitem->budget[0] = g_ascii_strtod(str_array[3], NULL);
+                                                               //#1750257 use locale numdigit
+                                                               tmpitem->budget[0] = g_strtod(str_array[3], NULL);
 
                                                                DB( g_print(" monthly '%.2f'\n", tmpitem->budget[0]) );
                                                        }
@@ -468,7 +463,9 @@ const gchar *encoding;
 
                                                                for(i=1;i<=12;i++)
                                                                {
-                                                                       tmpitem->budget[i] = g_ascii_strtod(str_array[2+i], NULL);
+                                                                       //tmpitem->budget[i] = g_ascii_strtod(str_array[2+i], NULL);
+                                                                       //#1750257 use locale numdigit
+                                                                       tmpitem->budget[i] = g_strtod(str_array[2+i], NULL);
                                                                        DB( g_print(" month %d '%.2f'\n", i, tmpitem->budget[i]) );
                                                                }
                                                        }
@@ -718,7 +715,8 @@ gint result, i;
                }
 
                data->cat->flags &= ~(GF_BUDGET);       //delete flag
-
+               data->change++;
+               
                gtk_widget_queue_draw (data->LV_cat);
        }
                
@@ -843,7 +841,7 @@ gdouble oldvalue;
                if(budget == TRUE || active == 1)
                        item->flags |= GF_BUDGET;
 
-               // compute chnages
+               // compute changes
                if( (old_flags != item->flags) || change )
                        data->change++;
 
@@ -944,7 +942,7 @@ static void ui_bud_manage_populate_listview(struct ui_bud_manage_data *data)
 {
 gint type;
 
-       type = radio_get_active(GTK_CONTAINER(data->RA_type)) == 1 ? CAT_TYPE_INCOME : CAT_TYPE_EXPENSE;
+       type = hbtk_radio_get_active(GTK_CONTAINER(data->RA_type)) == 1 ? CAT_TYPE_INCOME : CAT_TYPE_EXPENSE;
 
        ui_cat_listview_populate(data->LV_cat, type);
        gtk_tree_view_expand_all (GTK_TREE_VIEW(data->LV_cat));
@@ -984,6 +982,7 @@ GtkWidget *content_grid, *group_grid, *table, *scrollwin, *label;
 GtkWidget *treeview, *hpaned, *bbox, *vbox, *hbox;
 GtkWidget *menu, *menuitem, *widget, *image, *tbar;
 GtkToolItem *toolitem;
+GList *fchain;
 guint i;
 gint w, h;
 gint crow, row;
@@ -1021,14 +1020,12 @@ gint crow, row;
        gtk_box_pack_start (GTK_BOX (content_area), table, TRUE, TRUE, 0);
 
        crow = 0;
-       bbox = make_radio(CYA_CAT_TYPE, TRUE, GTK_ORIENTATION_HORIZONTAL);
+       bbox = hbtk_radio_new(CYA_CAT_TYPE, TRUE);
        data.RA_type = bbox;
        gtk_widget_set_halign (bbox, GTK_ALIGN_CENTER);
        gtk_grid_attach (GTK_GRID (table), bbox, 0, crow, 1, 1);
 
-       widget = radio_get_nth_widget(GTK_CONTAINER(bbox), 1);
-       if(widget)
-               g_signal_connect (widget, "toggled", G_CALLBACK (ui_bud_manage_type_changed_cb), &data);
+       hbtk_radio_connect (GTK_CONTAINER(bbox), "toggled", G_CALLBACK (ui_bud_manage_type_changed_cb), &data);
 
        menu = gtk_menu_new ();
        gtk_widget_set_halign (menu, GTK_ALIGN_END);
@@ -1067,7 +1064,7 @@ gint crow, row;
        //list
        vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
        gtk_widget_set_margin_right(vbox, SPACING_SMALL);
-       gtk_paned_pack1 (GTK_PANED(hpaned), vbox, TRUE, FALSE);
+       gtk_paned_pack1 (GTK_PANED(hpaned), vbox, FALSE, FALSE);
        
        scrollwin = gtk_scrolled_window_new(NULL,NULL);
     gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrollwin), GTK_SHADOW_ETCHED_IN);
@@ -1076,6 +1073,8 @@ gint crow, row;
        data.LV_cat = treeview;
        gtk_widget_set_size_request(treeview, HB_MINWIDTH_LIST, -1);
        gtk_container_add(GTK_CONTAINER(scrollwin), treeview);
+       gtk_widget_set_hexpand (scrollwin, TRUE);
+       gtk_widget_set_vexpand (scrollwin, TRUE);
        gtk_box_pack_start (GTK_BOX(vbox), scrollwin, TRUE, TRUE, 0);
 
        //list toolbar
@@ -1125,17 +1124,21 @@ gint crow, row;
        label = make_label_group(_("Budget for each month"));
        data.label_budget = label;
        gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1);
+
+       fchain = NULL;
        
        row = 1;
        widget = gtk_radio_button_new_with_label (NULL, _("is the same"));
        data.CM_type[0] = widget;
        gtk_widget_set_hexpand (widget, TRUE);
        gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 4, 1);
+       fchain = g_list_append(fchain, widget);
 
        row++;
        widget = make_amount(label);
        data.spinner[0] = widget;
        gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1);
+       fchain = g_list_append(fchain, widget);
 
        g_signal_connect (G_OBJECT (data.spinner[0]), "value-changed", G_CALLBACK (ui_bud_manage_has_budget), NULL);
        
@@ -1144,6 +1147,7 @@ gint crow, row;
        gtk_widget_set_hexpand (widget, TRUE);
        gtk_widget_set_halign(widget, GTK_ALIGN_START);
        gtk_grid_attach (GTK_GRID (group_grid), widget, 4, row, 1, 1);
+       fchain = g_list_append(fchain, widget);
 
        
        // propagate button
@@ -1157,6 +1161,7 @@ gint crow, row;
        data.CM_type[1] = widget;
        gtk_widget_set_hexpand (widget, TRUE);
        gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 4, 1);
+       fchain = g_list_append(fchain, widget);
 
        row++;
        for(i=0;i<12;i++)
@@ -1166,20 +1171,24 @@ gint crow, row;
                l = ((i<6) ? 1 : 3);
                t = row + ((i<6) ? i : i-6);
 
-               label = make_label_widget(months[i]);
+               label = make_label_widget(_(CYA_ABMONTHS[i]));
                data.label[i+1] = label;
                gtk_grid_attach (GTK_GRID (group_grid), label, l, t, 1, 1);
 
                widget = make_amount(label);
                data.spinner[i+1] = widget;
+               fchain = g_list_append(fchain, widget);
                gtk_widget_set_hexpand (widget, TRUE);
                gtk_grid_attach (GTK_GRID (group_grid), widget, l+1, t, 1, 1);
 
                g_signal_connect (G_OBJECT (data.spinner[i+1]), "value-changed", G_CALLBACK (ui_bud_manage_has_budget), NULL);
                
-               //DB( g_print("(ui_bud_manage) %s, col=%d, row=%d", months[i], col, row) );
+               //DB( g_print("(ui_bud_manage) %s, col=%d, row=%d", CYA_ABMONTHS[i], col, row) );
        }
 
+       gtk_container_set_focus_chain(GTK_CONTAINER(group_grid), fchain);
+       g_list_free(fchain);
+
        // group :: Options
     group_grid = gtk_grid_new ();
        gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL);
This page took 0.023244 seconds and 4 git commands to generate.