X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fhomebank;a=blobdiff_plain;f=src%2Flist_upcoming.c;h=786b212914639612a52237ca9759f2eec6e23a64;hp=cf4d4056181a237c88e9b145983e35ab6843e15d;hb=cd13d9691c46c2b2d6d459e9e6a76bed1c21b7a6;hpb=996fa4ab9f6b836001f8ad0eecbfd3821687fea7 diff --git a/src/list_upcoming.c b/src/list_upcoming.c index cf4d405..786b212 100644 --- a/src/list_upcoming.c +++ b/src/list_upcoming.c @@ -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. * @@ -17,10 +17,22 @@ * along with this program. If not, see . */ + #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); }