-
-static void ui_mainwindow_scheduled_do_post(Archive *arc, gboolean doedit, gpointer user_data)
-{
-struct hbfile_data *data = user_data;
-GtkWidget *window;
-gint result;
-Transaction *txn;
-
- window = create_deftransaction_window(GTK_WINDOW(data->window), TRANSACTION_EDIT_ADD, TRUE);
-
- /* fill in the transaction */
- txn = da_transaction_malloc();
- da_transaction_init_from_template(txn, arc);
- txn->date = scheduled_get_postdate(arc, arc->nextdate);
-
- deftransaction_set_transaction(window, txn);
-
- result = gtk_dialog_run (GTK_DIALOG (window));
-
- DB( g_print(" - dialog result is %d\n", result) );
-
- if(result == GTK_RESPONSE_ADD || result == GTK_RESPONSE_ACCEPT)
- {
- deftransaction_get(window, NULL);
- transaction_add(txn);
- GLOBALS->changes_count++;
-
- scheduled_date_advance(arc);
-
- DB( g_print(" - added 1 transaction to %d\n", txn->kacc) );
- }
-
- da_transaction_free(txn);
-
- deftransaction_dispose(window, NULL);
- gtk_widget_destroy (window);
-
-}
-
-
-static void ui_mainwindow_scheduled_editpost_cb(GtkWidget *widget, gpointer user_data)
-{
-struct hbfile_data *data = user_data;
-
- Archive *arc = ui_mainwindow_scheduled_get_selected_item(GTK_TREE_VIEW(data->LV_upc));
-
- if( (arc != NULL) )
- {
- ui_mainwindow_scheduled_do_post(arc, TRUE, data);
- ui_mainwindow_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_SENSITIVE|UF_REFRESHALL));
- }
-}
-
-
-static void ui_mainwindow_scheduled_post_cb(GtkWidget *widget, gpointer user_data)
-{
-struct hbfile_data *data = user_data;
-
- DB( g_print("\n[ui-mainwindow] scheduled post\n") );
-
- Archive *arc = ui_mainwindow_scheduled_get_selected_item(GTK_TREE_VIEW(data->LV_upc));
-
- if( (arc != NULL) )
- {
- if( scheduled_is_postable(arc) )
- {
- Transaction *txn = da_transaction_malloc ();
-
- da_transaction_init_from_template(txn, arc);
- txn->date = scheduled_get_postdate(arc, arc->nextdate);
- transaction_add(txn);
-
- GLOBALS->changes_count++;
- scheduled_date_advance(arc);
-
- da_transaction_free (txn);
- }
- else
- {
- ui_mainwindow_scheduled_do_post(arc, FALSE, data);
- }
-
- ui_mainwindow_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_SENSITIVE|UF_REFRESHALL));
- }
-}
-
-
-static void ui_mainwindow_scheduled_skip_cb(GtkWidget *widget, gpointer user_data)
-{
-struct hbfile_data *data = user_data;
-
- Archive *arc = ui_mainwindow_scheduled_get_selected_item(GTK_TREE_VIEW(data->LV_upc));
- if( (arc != NULL) && (arc->flags & OF_AUTO) )
- {
- GLOBALS->changes_count++;
- scheduled_date_advance(arc);
-
- ui_mainwindow_scheduled_populate(GLOBALS->mainwindow, NULL);
- ui_mainwindow_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_SENSITIVE));
- }
-}
-
-
-
-static void ui_mainwindow_scheduled_update(GtkWidget *widget, gpointer user_data)
-{
-struct hbfile_data *data;
-//gint filter;
-
- DB( g_print("\n[ui-mainwindow] scheduled update\n") );
-
- data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data");
-
- //filter = gtk_combo_box_get_active(GTK_COMBO_BOX(data->CY_sched_filter));
-
- Archive *arc = ui_mainwindow_scheduled_get_selected_item(GTK_TREE_VIEW(data->LV_upc));
-
- if(arc)
- {
- DB( g_print("archive is %s\n", arc->memo) );
-
- gtk_widget_set_sensitive(GTK_WIDGET(data->BT_sched_skip), TRUE);
- gtk_widget_set_sensitive(GTK_WIDGET(data->BT_sched_post), TRUE);
- gtk_widget_set_sensitive(GTK_WIDGET(data->BT_sched_editpost), TRUE);
- }
- else
- {
- gtk_widget_set_sensitive(GTK_WIDGET(data->BT_sched_skip), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(data->BT_sched_post), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(data->BT_sched_editpost), FALSE);
- }
-
-}
-
-
-
-static void ui_mainwindow_scheduled_selection_cb(GtkTreeSelection *treeselection, gpointer user_data)
-{
-
-
- ui_mainwindow_scheduled_update(GTK_WIDGET(gtk_tree_selection_get_tree_view (treeselection)), GINT_TO_POINTER(UF_SENSITIVE));
-}
-
-
-
-/*
-** called after load, importamiga, on demand
-*/
-void ui_mainwindow_scheduled_postall(GtkWidget *widget, gpointer user_data)
-{
-//struct hbfile_data *data;
-gint count;
-gint usermode = GPOINTER_TO_INT(user_data);
-
- DB( g_print("\n[ui-mainwindow] check scheduled\n") );
-
- //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data");
-
- count = scheduled_post_all_pending();
-
- //inform the user
- if(usermode == TRUE)
- {
- gchar *txt;
-
- //#125534
- if( count > 0 )
- {
- ui_mainwindow_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_REFRESHALL));
- }
-
- if(count == 0)
- txt = _("No transaction to add");
- else
- txt = _("transaction added: %d");
-
- ui_dialog_msg_infoerror(GTK_WINDOW(GLOBALS->mainwindow), GTK_MESSAGE_INFO,
- _("Check scheduled transactions result"),
- txt,
- count);
- }
-
-}
-
-
-static void ui_mainwindow_scheduled_populate(GtkWidget *widget, gpointer user_data)
-{
-struct hbfile_data *data;
-GtkTreeModel *model;
-GtkTreeIter iter;
-GList *list;
-gdouble totexp = 0;
-gdouble totinc = 0;
-gint count = 0;
-gchar buffer[256];
-guint32 maxpostdate;
-GDate *date;
-//Account *acc;
-
- DB( g_print("\n[ui-mainwindow] scheduled populate list\n") );
-
- data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data");
-
- model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_upc));
- gtk_list_store_clear (GTK_LIST_STORE(model));
-
- homebank_app_date_get_julian();
-
- maxpostdate = scheduled_date_get_post_max();
-
- date = g_date_new_julian (maxpostdate);
- g_date_strftime (buffer, 256-1, PREFS->date_format, date);
- g_date_free(date);
-
- gtk_label_set_text(GTK_LABEL(data->LB_maxpostdate), buffer);
-
-
- list = g_list_first(GLOBALS->arc_list);
- while (list != NULL)
- {
- Archive *arc = list->data;
- Account *acc;
- gdouble inc, exp;
- guint nbdays, nblate;
-
- if((arc->flags & OF_AUTO) ) //&& arc->kacc > 0)
- {
- count++;
- nbdays = arc->nextdate - maxpostdate;
- nblate = scheduled_get_latepost_count(arc, GLOBALS->today);
-
- DB( g_print(" - append '%s' : %d\n", arc->memo, nbdays) );
-
- if(arc->flags & OF_INCOME)
- {
- inc = arc->amount;
- exp = 0.0;
- }
- else
- {
- exp = arc->amount;
- inc = 0.0;
- }
-
- /* insert normal txn */
- acc = da_acc_get(arc->kacc);
- if( acc)
- {
- totinc += hb_amount_base(inc, acc->kcur);
- totexp += hb_amount_base(exp, acc->kcur);
- }
- gtk_list_store_append (GTK_LIST_STORE(model), &iter);
- gtk_list_store_set (GTK_LIST_STORE(model), &iter,
- LST_DSPUPC_DATAS, arc,
- LST_DSPUPC_ACCOUNT, acc,
- LST_DSPUPC_MEMO, arc->memo,
- LST_DSPUPC_EXPENSE, exp,
- LST_DSPUPC_INCOME, inc,
- LST_DSPUPC_REMAINING, nbdays,
- LST_DSPUPC_NB_LATE, nblate,
- -1);
-
- /* insert internal xfer txn : 1378836 */
- if(arc->paymode == PAYMODE_INTXFER)
- {
- acc = da_acc_get(arc->kxferacc);
- if( acc)
- {
- totinc += hb_amount_base(-inc, acc->kcur);
- totexp += hb_amount_base(-exp, acc->kcur);
- }
- gtk_list_store_append (GTK_LIST_STORE(model), &iter);
- gtk_list_store_set (GTK_LIST_STORE(model), &iter,
- LST_DSPUPC_DATAS, arc,
- LST_DSPUPC_ACCOUNT, acc,
- LST_DSPUPC_MEMO, arc->memo,
- LST_DSPUPC_EXPENSE, -inc,
- LST_DSPUPC_INCOME, -exp,
- LST_DSPUPC_REMAINING, nbdays,
- LST_DSPUPC_NB_LATE, nblate,
- -1);
- }
-
- }
- list = g_list_next(list);
- }
-
- // insert total
- if(count > 0 )
- {
- gtk_list_store_append (GTK_LIST_STORE(model), &iter);
- gtk_list_store_set (GTK_LIST_STORE(model), &iter,
- LST_DSPUPC_DATAS, NULL,
- LST_DSPUPC_ACCOUNT, NULL,
- LST_DSPUPC_MEMO, _("Total"),
- LST_DSPUPC_EXPENSE, totexp,
- LST_DSPUPC_INCOME, totinc,
- -1);
- }
-
- ui_mainwindow_scheduled_update(widget, NULL);
-
-}
-
-
-gboolean ui_mainwindow_open_backup_check_confirm(gchar *filepath)
-{
-gboolean retval = FALSE;
-gchar *basename, *secondtext;
-gboolean result;
-
- basename = g_path_get_basename(filepath);
- secondtext = g_strdup_printf (
- _("Your are about to open the backup file '%s'.\n\nAre you sure you want to do this ?"), basename);
-
- result = ui_dialog_msg_confirm_alert(
- GTK_WINDOW(GLOBALS->mainwindow),
- _("Open a backup file ?"),
- secondtext,
- _("_Open backup")
- );
-
- g_free(secondtext);
- g_free(basename);
-
- if( result == GTK_RESPONSE_OK )
- retval = TRUE;
-
- return retval;
-}
-
-
-/*
-**
-*/
-void ui_mainwindow_open(GtkWidget *widget, gpointer user_data)
-{
-//struct hbfile_data *data;
-gchar *filename = NULL;
-
- DB( g_print("\n[ui-mainwindow] open\n") );
-
- //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data");
-
- if( ui_dialog_msg_savechanges(widget,NULL) == TRUE )
- {
- if( ui_file_chooser_xhb(GTK_FILE_CHOOSER_ACTION_OPEN, &filename) == TRUE )
- {
- //#1710955 test for backup open
- if( hbfile_file_isbackup(filename) )
- {
- if( ui_mainwindow_open_backup_check_confirm(filename) == TRUE )
- {
- GLOBALS->hbfile_is_bak = TRUE;
- }
- else
- {
- g_free(filename);
- return;
- }
- }
-
- hbfile_change_filepath(filename);
- ui_mainwindow_open_internal(widget, NULL);
- }
- }
-}
-
-
-/*
- * open the file stored in GLOBALS->xhb_filepath
- */
-void ui_mainwindow_open_internal(GtkWidget *widget, gpointer user_data)
-{
-struct hbfile_data *data;
-gint r;
-
- DB( g_print("\n[ui-mainwindow] open internal\n") );
-
- data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data");
-
- if( GLOBALS->xhb_filepath != NULL )
- {
- DB( g_print(" - filename: '%s'\n", GLOBALS->xhb_filepath) );
-
- ui_mainwindow_clear(GLOBALS->mainwindow, GINT_TO_POINTER(FALSE));
- GLOBALS->hbfile_is_new = FALSE;
-
- r = homebank_load_xml(GLOBALS->xhb_filepath);
- if( r == XML_OK )
- {
- DB( g_print(" - file loaded ok : rcode=%d\n", r) );
-
- hbfile_file_hasbackup(GLOBALS->xhb_filepath);
-
- if(PREFS->appendscheduled)
- scheduled_post_all_pending();
-
- if(PREFS->do_update_currency)
- ui_cur_manage_dialog_update_currencies(GTK_WINDOW(GLOBALS->mainwindow));
-
- homebank_lastopenedfiles_save();
-
- //todo: delete this after computing done at xml read
- account_compute_balances();
-
- ui_mainwindow_recent_add(data, GLOBALS->xhb_filepath);
- }
- else
- {
- gchar *msg = _("Unknow error");
-
- switch(r)
- {
- case XML_IO_ERROR:
- msg = _("I/O error for file '%s'.");
- break;
- case XML_FILE_ERROR:
- msg = _("The file '%s' is not a valid HomeBank file.");
- break;
- case XML_VERSION_ERROR:
- msg = _("The file '%s' was saved with a higher version of HomeBank\nand cannot be loaded by the current version.");
- break;
- }
-
- ui_dialog_msg_infoerror(GTK_WINDOW(data->window), GTK_MESSAGE_ERROR,
- _("File error"),
- msg,
- GLOBALS->xhb_filepath
- );
-
- ui_mainwindow_clear(GLOBALS->mainwindow, GINT_TO_POINTER(TRUE));
-
- }
-
- ui_mainwindow_populate_accounts(GLOBALS->mainwindow, NULL);
- ui_mainwindow_scheduled_populate(GLOBALS->mainwindow, NULL);
- ui_mainwindow_populate_topspending(GLOBALS->mainwindow, NULL);
- ui_mainwindow_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE+UF_VISUAL));
- }
-
-
-}
-
-
-/*
-**
-*/
-void ui_mainwindow_save(GtkWidget *widget, gpointer user_data)
-{
-struct hbfile_data *data;
-gboolean saveas = GPOINTER_TO_INT(user_data);
-gchar *filename = NULL;
-gint r = XML_UNSET;
-
- DB( g_print("\n[ui-mainwindow] save\n") );
-
- data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data");
-
- if( GLOBALS->hbfile_is_new == TRUE )
- saveas = 1;
-
- //#1710955 test for backup open
- if( GLOBALS->hbfile_is_bak == TRUE )
- {
- //todo: later for backup, should also remove datetime and .bak
- hbfile_change_filepath(hb_filename_new_with_extension(GLOBALS->xhb_filepath, "xhb"));
- saveas = 1;
- }
-
- if(saveas == 1)
- {
- if(ui_file_chooser_xhb(GTK_FILE_CHOOSER_ACTION_SAVE, &filename) == TRUE)
- {
- DB( g_print(" + should save as '%s'\n", filename) );
- homebank_file_ensure_xhb(filename);
- homebank_backup_current_file();
- r = homebank_save_xml(GLOBALS->xhb_filepath);
- GLOBALS->hbfile_is_new = FALSE;
- GLOBALS->hbfile_is_bak = FALSE;
- }
- else
- return;
- }
- else
- {
- DB( g_print(" + should quick save %s\n", GLOBALS->xhb_filepath) );
- homebank_file_ensure_xhb(NULL);
- homebank_backup_current_file();
- r = homebank_save_xml(GLOBALS->xhb_filepath);
- }
-
-
- if(r == XML_OK)
- {
- GLOBALS->changes_count = 0;
- ui_mainwindow_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE+UF_VISUAL));
- }
- else
- {
- gchar *msg = _("I/O error for file '%s'.");
-
- ui_dialog_msg_infoerror(GTK_WINDOW(data->window), GTK_MESSAGE_ERROR,
- _("File error"),
- msg,
- GLOBALS->xhb_filepath
- );
-
- }
-
-
-}
-
-
-static void ui_panel_accounts_expand_all(GtkWidget *widget, gpointer user_data)
-{
-struct hbfile_data *data;
-
- data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data");
- gtk_tree_view_expand_all(GTK_TREE_VIEW(data->LV_acc));
-}
-
-
-static void ui_panel_accounts_collapse_all(GtkWidget *widget, gpointer user_data)
-{
-struct hbfile_data *data;
-
- data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data");
- gtk_tree_view_collapse_all(GTK_TREE_VIEW(data->LV_acc));
-}
-
-
-
-static GHashTable *ui_panel_accounts_groups_get(GList *lacc, gint groupby, gboolean showall)
-{
-GHashTable *hash;
-GList *elt;
-gchar *groupname;
-gint nballoc;
-
- DB( g_print("\n[ui-mainwindow] accounts_groups_get\n") );
-
- nballoc = da_acc_length ();
-
- DB( g_print(" %d accounts\n", nballoc) );
-
- hash = g_hash_table_new_full(g_str_hash, g_str_equal, (GDestroyNotify)g_free, NULL);
- elt = g_list_first(lacc);
- while (elt != NULL)
- {
- Account *acc = elt->data;
- GPtrArray *group;
-
- //#1674045 ony rely on nosummary
- //if( showall || !(acc->flags & (AF_CLOSED|AF_NOSUMMARY)) )
- if( showall || !(acc->flags & AF_NOSUMMARY) )
- {
- if( groupby == DSPACC_GROUP_BY_BANK )
- {
- groupname = _("(no institution)");
- if( (acc->bankname != NULL) && strlen(acc->bankname) > 0 )
- groupname = acc->bankname;
- }
- else
- {
- //pre 5.1.3 historical by type display
- groupname = _(CYA_ACC_TYPE[acc->type]);
- }
-
- if( g_hash_table_contains(hash, groupname) == FALSE )
- {
- g_hash_table_insert(hash, g_strdup(groupname), g_ptr_array_sized_new(nballoc) );
- //DB( g_print(" - type hash insert '%s' = %d\n", groupname, inserted) );
- }
-
- group = g_hash_table_lookup(hash, groupname);
- if( group != NULL )
- {
- g_ptr_array_add(group, (gpointer)acc);
- DB( g_print(" -- add '%s' to group '%s'\n", acc->name, groupname) );
- }
- }
- elt = g_list_next(elt);
- }
-
- return hash;
-}
-
-
-
-
-
-
-void ui_mainwindow_populate_accounts(GtkWidget *widget, gpointer user_data)
-{
-struct hbfile_data *data;
-GtkTreeModel *model;
-GtkTreeIter iter1, child_iter;
-GList *lacc, *elt;
-Account *acc;
-guint j, nbtype;
-gdouble gtbank, gttoday, gtfuture;
-
-GHashTable *h_group;
-GHashTableIter grp_iter;
-gpointer key, value;
-
- DB( g_print("\n[ui-mainwindow] populate accounts\n") );
-
- data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data");
-
- /* here we create a count and a list of every account pointer by type */
- lacc = elt = g_hash_table_get_values(GLOBALS->h_acc);
-
- h_group = ui_panel_accounts_groups_get(lacc, PREFS->pnl_acc_show_by, data->showall);
- g_list_free(lacc);
-
-
- gtbank = gttoday = gtfuture = 0;
-
- DB( g_print(" - populate listview, %d group(s)\n", g_hash_table_size(h_group)) );
-
- model = gtk_tree_view_get_model(GTK_TREE_VIEW(data->LV_acc));
- gtk_tree_store_clear (GTK_TREE_STORE(model));
-
- nbtype = 0;
- g_hash_table_iter_init (&grp_iter, h_group);
- while (g_hash_table_iter_next (&grp_iter, &key, &value))
- {
- GPtrArray *gpa = value;
- gdouble tbank, ttoday, tfuture;
- gint position;
-
- if(gpa != NULL)
- {
- nbtype++;
- //1: Header: Bank, Cash, ...
- DB( g_print(" - add group '%s'\n", (gchar *)key) );
-
- //#1663399 keep type position like in dropdown
- position = 0;
- if( PREFS->pnl_acc_show_by == DSPACC_GROUP_BY_TYPE )
- {
- gint t = 0;
-
- while(CYA_ACC_TYPE[t] != NULL && t < 15)
- {
- if( !strcmp(CYA_ACC_TYPE[t], key) )
- break;
- t++;
- }
-
- position = t;
- }
-
- gtk_tree_store_append (GTK_TREE_STORE(model), &iter1, NULL);
- gtk_tree_store_set (GTK_TREE_STORE(model), &iter1,
- LST_DSPACC_POS, position,
- LST_DSPACC_DATATYPE, DSPACC_TYPE_HEADER,
- LST_DSPACC_NAME, key,
- -1);
-
- tbank = ttoday = tfuture = 0;
-
- //2: Accounts for real
- for(j=0;j<gpa->len;j++)
- {
- acc = g_ptr_array_index(gpa, j);
-
- //tbank += acc->bal_bank;
- //ttoday += acc->bal_today;
- //tfuture += acc->bal_future;
- tbank += hb_amount_base(acc->bal_bank, acc->kcur);
- ttoday += hb_amount_base(acc->bal_today, acc->kcur);
- tfuture += hb_amount_base(acc->bal_future, acc->kcur);
-
- DB( g_print(" - add account '%s' :: %.2f %.2f %.2f\n", acc->name, acc->bal_bank, acc->bal_today, acc->bal_future) );
-
- gtk_tree_store_append (GTK_TREE_STORE(model), &child_iter, &iter1);
- gtk_tree_store_set (GTK_TREE_STORE(model), &child_iter,
- LST_DSPACC_DATAS, acc,
- LST_DSPACC_DATATYPE, DSPACC_TYPE_NORMAL,
- LST_DSPACC_BANK, acc->bal_bank,
- LST_DSPACC_TODAY, acc->bal_today,
- LST_DSPACC_FUTURE, acc->bal_future,
- -1);
- }
-
- if(gpa->len > 1)
- {
- DB( g_print(" - group total :: %.2f %.2f %.2f\n", tbank, ttoday, tfuture) );
-
- // insert the total line
- gtk_tree_store_append (GTK_TREE_STORE(model), &child_iter, &iter1);
- gtk_tree_store_set (GTK_TREE_STORE(model), &child_iter,
- LST_DSPACC_DATATYPE, DSPACC_TYPE_SUBTOTAL,
- LST_DSPACC_NAME, _("Total"),
- LST_DSPACC_BANK, tbank,
- LST_DSPACC_TODAY, ttoday,
- LST_DSPACC_FUTURE, tfuture,
- -1);
- }
-
- /* set balance to header to display when collasped */
- DB( g_print(" - enrich group total header :: %.2f %.2f %.2f\n", tbank, ttoday, tfuture) );
- gtk_tree_store_set (GTK_TREE_STORE(model), &iter1,
- LST_DSPACC_BANK, tbank,
- LST_DSPACC_TODAY, ttoday,
- LST_DSPACC_FUTURE, tfuture,
- -1);
-
- /* add to grand total */
- gtbank += tbank;
- gttoday += ttoday;
- gtfuture += tfuture;
-
- }
-
- }
-
- DB( g_print(" - grand total :: %.2f %.2f %.2f\n", gtbank, gttoday, gtfuture) );
-
- // Grand total
- if( nbtype > 1 )
- {
- gtk_tree_store_append (GTK_TREE_STORE(model), &iter1, NULL);
- gtk_tree_store_set (GTK_TREE_STORE(model), &iter1,
- LST_DSPACC_DATATYPE, DSPACC_TYPE_SUBTOTAL,
- LST_DSPACC_NAME, _("Grand total"),
- LST_DSPACC_BANK, gtbank,
- LST_DSPACC_TODAY, gttoday,
- LST_DSPACC_FUTURE, gtfuture,
- -1);
- }
-
-
- gtk_tree_view_expand_all(GTK_TREE_VIEW(data->LV_acc));
-
- DB( g_print(" - free ressources\n") );
-
- g_hash_table_iter_init (&grp_iter, h_group);
- while (g_hash_table_iter_next (&grp_iter, &key, &value))
- {
- g_ptr_array_free (value, TRUE);
- }
- g_hash_table_destroy (h_group);
-
-}
-
-
-void ui_mainwindow_update(GtkWidget *widget, gpointer user_data)
-{
-struct hbfile_data *data;
-gint flags;
-
- DB( g_print("\n[ui-mainwindow] update %p\n", user_data) );
-
- data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data");
- //data = INST_DATA(widget);
-
- flags = GPOINTER_TO_INT(user_data);