]> Dogcows Code - chaz/homebank/blobdiff - src/ui-category.c
import homebank-5.1.7
[chaz/homebank] / src / ui-category.c
index 1f02526adfcb839a06055355b45912032515dd94..a3490f2c3db8fe511b6f6b0ca52ea6608b7d3786 100644 (file)
@@ -1,5 +1,5 @@
 /*  HomeBank -- Free, easy, personal accounting for everyone.
- *  Copyright (C) 1995-2017 Maxime DOYEN
+ *  Copyright (C) 1995-2018 Maxime DOYEN
  *
  *  This file is part of HomeBank.
  *
@@ -396,6 +396,10 @@ gint style;
            "style", style,
                "text", name,
                NULL);
+
+       //leak
+       g_free(name);
+
 }
 
 
@@ -527,25 +531,38 @@ ui_cat_listview_fixed_toggled (GtkCellRendererToggle *cell,
               gchar                 *path_str,
               gpointer               data)
 {
-  GtkTreeModel *model = (GtkTreeModel *)data;
-  GtkTreeIter  iter;
-  GtkTreePath *path = gtk_tree_path_new_from_string (path_str);
-  gboolean fixed;
+GtkTreeModel *model = (GtkTreeModel *)data;
+GtkTreeIter  iter, child;
+GtkTreePath *path = gtk_tree_path_new_from_string (path_str);
+gboolean fixed;
+gint n_child;
 
-  /* get toggled iter */
-  gtk_tree_model_get_iter (model, &iter, path);
-  gtk_tree_model_get (model, &iter, LST_DEFCAT_TOGGLE, &fixed, -1);
+       /* get toggled iter */
+       gtk_tree_model_get_iter (model, &iter, path);
+       gtk_tree_model_get (model, &iter, LST_DEFCAT_TOGGLE, &fixed, -1);
 
-  /* do something with the value */
-  fixed ^= 1;
+       /* do something with the value */
+       fixed ^= 1;
 
-  /* set new value */
-  gtk_tree_store_set (GTK_TREE_STORE (model), &iter, LST_DEFCAT_TOGGLE, fixed, -1);
+       /* set new value */
+       gtk_tree_store_set (GTK_TREE_STORE (model), &iter, LST_DEFCAT_TOGGLE, fixed, -1);
 
-  /* clean up */
-  gtk_tree_path_free (path);
+       /* propagate to child */
+       n_child = gtk_tree_model_iter_n_children (GTK_TREE_MODEL(model), &iter);
+       gtk_tree_model_iter_children (GTK_TREE_MODEL(model), &child, &iter);
+       while(n_child > 0)
+       {
+               gtk_tree_store_set (GTK_TREE_STORE (model), &child, LST_DEFCAT_TOGGLE, fixed, -1);
+
+               n_child--;
+               gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &child);
+       }
+       
+       /* clean up */
+       gtk_tree_path_free (path);
 }
 
+
 static gint
 ui_cat_listview_compare_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer userdata)
 {
@@ -1036,7 +1053,7 @@ GtkTreeViewColumn *column;
        gtk_tree_view_column_pack_start(column, renderer, TRUE);
        gtk_tree_view_column_set_cell_data_func(column, renderer, ui_cat_listview_text_cell_data_function, GINT_TO_POINTER(LST_DEFCAT_NAME), NULL);
        gtk_tree_view_column_set_alignment (column, 0.5);
-       gtk_tree_view_column_set_min_width(column, HB_MINWIDTH_LIST);
+       gtk_tree_view_column_set_min_width(column, HB_MINWIDTH_LIST*2);
        gtk_tree_view_column_set_sort_column_id (column, LST_DEFCAT_SORT_NAME);
        gtk_tree_view_column_set_resizable(column, TRUE);
        gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column);
This page took 0.022261 seconds and 4 git commands to generate.