]> Dogcows Code - chaz/homebank/blobdiff - src/list_upcoming.c
import homebank-5.1.7
[chaz/homebank] / src / list_upcoming.c
index cf4d4056181a237c88e9b145983e35ab6843e15d..786b212914639612a52237ca9759f2eec6e23a64 100644 (file)
@@ -1,5 +1,5 @@
 /*  HomeBank -- Free, easy, personal accounting for everyone.
- *  Copyright (C) 1995-2016 Maxime DOYEN
+ *  Copyright (C) 1995-2018 Maxime DOYEN
  *
  *  This file is part of HomeBank.
  *
  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+
 #include "homebank.h"
 
 #include "list_upcoming.h"
 
+/****************************************************************************/
+/* Debug macros                                                                                                                                */
+/****************************************************************************/
+#define MYDEBUG 0
+
+#if MYDEBUG
+#define DB(x) (x);
+#else
+#define DB(x);
+#endif
+
 /* our global datas */
 extern struct HomeBank *GLOBALS;
 extern struct Preferences *PREFS;
@@ -169,22 +181,25 @@ Payee *pay;
 }
 
 /*
-** wording cell function
+** memo cell function
 */
-static void wording_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data)
+static void memo_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data)
 {
 Archive *arc;
-gchar *txt;
+gchar *memo;
 gint weight;
 
        gtk_tree_model_get(model, iter,
                LST_DSPUPC_DATAS, &arc,
-               LST_DSPUPC_WORDING, &txt,
+               LST_DSPUPC_MEMO, &memo,
                -1);
 
        weight = arc == NULL ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL;
 
-       g_object_set(renderer, "weight", weight, "text", txt, NULL);
+       g_object_set(renderer, "weight", weight, "text", memo, NULL);
+
+       //leak
+       g_free(memo);
 
 }
 
@@ -278,6 +293,27 @@ Archive *arc;
 }
 
 
+static void list_upcoming_destroy(GtkTreeView *treeview, gpointer user_data)
+{
+GtkTreeViewColumn  *column;
+
+       DB( g_print ("\n[list_upcoming] destroy\n") );
+
+       //todo: unsafe to use direct column index
+       column = gtk_tree_view_get_column(treeview, 2);
+       if( column )
+       {
+               PREFS->pnl_upc_col_pay_width = gtk_tree_view_column_get_width(column);
+       }
+       
+       column = gtk_tree_view_get_column(treeview, 3);
+       if( column )
+       {
+               PREFS->pnl_upc_col_mem_width = gtk_tree_view_column_get_width(column);
+       }
+
+}
+
 
 GtkWidget *create_list_upcoming(void)
 {
@@ -286,12 +322,14 @@ GtkWidget *view;
 GtkCellRenderer    *renderer;
 GtkTreeViewColumn  *column;
 
+       DB( g_print ("\n[list_upcoming] create\n") );
+
        /* create list store */
        store = gtk_list_store_new(
                NUM_LST_DSPUPC,
                G_TYPE_POINTER,
                G_TYPE_BOOLEAN, /* payee */
-               G_TYPE_STRING,  /* wording */
+               G_TYPE_STRING,  /* memo */
                G_TYPE_DOUBLE,  /* expense */
                G_TYPE_DOUBLE,  /* income */
                G_TYPE_POINTER, /* account */
@@ -354,10 +392,10 @@ GtkTreeViewColumn  *column;
 
        /* column: Payee */
        renderer = gtk_cell_renderer_text_new ();
-       /*g_object_set(renderer, 
+       g_object_set(renderer, 
                "ellipsize", PANGO_ELLIPSIZE_END,
            "ellipsize-set", TRUE,
-           NULL);*/
+           NULL);
        column = gtk_tree_view_column_new();
        gtk_tree_view_column_set_title(column, _("Payee"));
        gtk_tree_view_column_pack_start(column, renderer, TRUE);
@@ -366,27 +404,31 @@ GtkTreeViewColumn  *column;
        //gtk_tree_view_column_add_attribute(column, renderer, "text", 1);
        //gtk_tree_view_column_set_sort_column_id (column, LST_DSPACC_NAME);
        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_append_column (GTK_TREE_VIEW(view), column);
 
-       /* column: Wording */
+       gtk_tree_view_column_set_fixed_width(column, PREFS->pnl_upc_col_pay_width);
+
+       /* column: Memo */
        renderer = gtk_cell_renderer_text_new ();
-       /*g_object_set(renderer, 
+       g_object_set(renderer, 
                "ellipsize", PANGO_ELLIPSIZE_END,
            "ellipsize-set", TRUE,
-           NULL);*/
+           NULL);
 
        column = gtk_tree_view_column_new();
        gtk_tree_view_column_set_title(column, _("Memo"));
        gtk_tree_view_column_pack_start(column, renderer, TRUE);
-       gtk_tree_view_column_set_cell_data_func(column, renderer, wording_cell_data_function, NULL, NULL);
+       gtk_tree_view_column_set_cell_data_func(column, renderer, memo_cell_data_function, NULL, NULL);
        gtk_tree_view_column_set_resizable(column, TRUE);
        //gtk_tree_view_column_add_attribute(column, renderer, "text", 2);
        //gtk_tree_view_column_set_sort_column_id (column, LST_DSPACC_NAME);
        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_append_column (GTK_TREE_VIEW(view), column);
 
+       gtk_tree_view_column_set_fixed_width(column, PREFS->pnl_upc_col_mem_width);
+
        /* column: Amount */
        column = gtk_tree_view_column_new();
        gtk_tree_view_column_set_title(column, _("Expense"));
@@ -440,6 +482,10 @@ GtkTreeViewColumn  *column;
     /* set initial sort order */
     gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), LST_DSPUPC_REMAINING, GTK_SORT_ASCENDING);
 
+
+       g_signal_connect (view, "destroy", G_CALLBACK (list_upcoming_destroy), NULL);
+
+
        return(view);
 }
 
This page took 0.021787 seconds and 4 git commands to generate.