/* HomeBank -- Free, easy, personal accounting for everyone.
- * Copyright (C) 1995-2018 Maxime DOYEN
+ * Copyright (C) 1995-2019 Maxime DOYEN
*
* This file is part of HomeBank.
*
#include "homebank.h"
-#include "list_account.h"
+#include "list-account.h"
/****************************************************************************/
/* Debug macros */
extern struct HomeBank *GLOBALS;
extern struct Preferences *PREFS;
-extern gchar *CYA_ACC_TYPE[]; //in ui_account.c
+
+
+
+gboolean list_account_level1_expanded(GtkTreeView *treeview, gchar *name)
+{
+gboolean retval, valid;
+GtkTreeModel *model;
+GtkTreeIter iter1;
+
+ model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview));
+ retval = TRUE;
+ valid = gtk_tree_model_get_iter_first (model, &iter1);
+ while(valid)
+ {
+ GtkTreePath *tmppath = gtk_tree_model_get_path(model, &iter1);
+
+ if( gtk_tree_view_row_expanded(GTK_TREE_VIEW(treeview), tmppath) == FALSE )
+ {
+ gchar *tmpname;
+
+ gtk_tree_model_get(model, &iter1, LST_DSPACC_NAME, &tmpname, -1);
+ if( !strcmp(name, tmpname) )
+ retval = FALSE;
+
+ g_free(tmpname);
+ }
+ gtk_tree_path_free(tmppath);
+ valid = gtk_tree_model_iter_next (model, &iter1);
+ }
+ return retval;
+}
+
/*
** draw some icons according to the stored data structure
switch(GPOINTER_TO_INT(user_data))
{
case 1:
- iconname = (acc->flags & AF_ADDED) ? ICONNAME_NEW : NULL;
+ iconname = (acc->flags & AF_ADDED) ? ICONNAME_HB_OPE_NEW : NULL;
// override if closed account
if( acc->flags & AF_CLOSED )
iconname = ICONNAME_CHANGES_PREVENT;
g_object_set(renderer, "icon-name", iconname, NULL);
}
-/*
-** draw some text from the stored data structure
-*/
-/*
-static void
-acc_type_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data)
-{
-Account *acc;
-gint dt;
-
- gtk_tree_model_get(model, iter,
- LST_DSPACC_DATATYPE, &dt,
- LST_DSPACC_DATAS, &acc,
- -1);
-
- if( dt == DSPACC_TYPE_NORMAL && acc->type > 0 )
- {
- g_object_set(renderer, "text", _(CYA_ACC_TYPE[acc->type]), NULL);
- }
- else
- g_object_set(renderer, "text", NULL, NULL);
-}
-*/
/*
** draw some text from the stored data structure
}
+static GtkTreeViewColumn *list_account_get_column(GtkTreeView *treeview, gint uid)
+{
+GtkTreeViewColumn *retval = NULL;
+guint i;
+
+ for(i=0;i<gtk_tree_view_get_n_columns(treeview);i++)
+ {
+ GtkTreeViewColumn *column = gtk_tree_view_get_column(treeview, i);
+
+ if(column)
+ {
+ gint coluid = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(column), "uid"));
+ if( coluid == uid )
+ retval = column;
+ }
+ }
+ return retval;
+}
+
+
static void list_account_destroy(GtkTreeView *treeview, gpointer user_data)
{
GtkTreeViewColumn *column;
DB( g_print ("\n[list_account] destroy\n") );
- //todo: unsafe to use direct column index
- column = gtk_tree_view_get_column(treeview, LST_DSPACC_NAME);
+ column = list_account_get_column(treeview, COL_DSPACC_ACCOUNTS);
if( column )
{
PREFS->pnl_acc_col_acc_width = gtk_tree_view_column_get_width(column);
NULL);
column = gtk_tree_view_column_new();
+ g_object_set_data(G_OBJECT(column), "uid", GUINT_TO_POINTER(COL_DSPACC_ACCOUNTS));
gtk_tree_view_column_set_title(column, _("Accounts"));
gtk_tree_view_column_pack_start(column, renderer, TRUE);
gtk_tree_view_column_set_cell_data_func(column, renderer, text_cell_data_function, GINT_TO_POINTER(LST_DSPACC_NAME), NULL);