]> Dogcows Code - chaz/homebank/blobdiff - src/list-account.c
import homebank-5.2.4
[chaz/homebank] / src / list-account.c
similarity index 87%
rename from src/list_account.c
rename to src/list-account.c
index 7f20090dda35d8d05e618e11c469b19f5745d137..89cc970f369148e81001082987ae66365d28dee3 100644 (file)
@@ -1,5 +1,5 @@
 /*  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.
  *
@@ -20,7 +20,7 @@
 
 #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
@@ -64,7 +95,7 @@ gint dt;
                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;
@@ -78,29 +109,6 @@ gint dt;
        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
@@ -308,14 +316,33 @@ GtkTreeIter iter;
 }
 
 
+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);
@@ -379,6 +406,7 @@ GtkTreeViewColumn  *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);
This page took 0.025204 seconds and 4 git commands to generate.