X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fhomebank;a=blobdiff_plain;f=src%2Fui-assist-start.c;h=229039bd930895fbe8ff8e0efeb233340382346f;hp=d76cb31ffc3a096f61060405d36281222f7da973;hb=160a363125e5d06f47eb22b333788097e4f01362;hpb=b84403141a4c3a32a594800eb3fcabdc856461f8 diff --git a/src/ui-assist-start.c b/src/ui-assist-start.c index d76cb31..229039b 100644 --- a/src/ui-assist-start.c +++ b/src/ui-assist-start.c @@ -1,5 +1,5 @@ /* HomeBank -- Free, easy, personal accounting for everyone. - * Copyright (C) 1995-2017 Maxime DOYEN + * Copyright (C) 1995-2019 Maxime DOYEN * * This file is part of HomeBank. * @@ -20,7 +20,7 @@ #include "homebank.h" #include "ui-assist-start.h" -#include "dsp_mainwindow.h" +#include "dsp-mainwindow.h" #include "ui-currency.h" @@ -35,7 +35,7 @@ /* our global datas */ extern struct HomeBank *GLOBALS; -extern gchar *CYA_ACC_TYPE[]; +extern HbKvData CYA_ACC_TYPE[]; /* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ @@ -47,6 +47,9 @@ struct assist_start_data *data = user_data; Account *item; gdouble value; + DB( g_print("\n[ui-start] apply\n") ); + + /* set owner */ gchar *owner = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->ST_owner)); if (owner && *owner) @@ -78,11 +81,12 @@ gdouble value; if (txt && *txt) { item->name = g_strdup(txt); + //#1837838 remove extra lead/tail space + g_strstrip(item->name); } item->kcur = GLOBALS->kcur; - - item->type = gtk_combo_box_get_active(GTK_COMBO_BOX(data->CY_type)); + item->type = hbtk_combo_box_get_active_id(GTK_COMBO_BOX_TEXT(data->CY_type)); item->number = g_strdup(gtk_entry_get_text(GTK_ENTRY(data->ST_number))); @@ -98,6 +102,8 @@ gdouble value; GLOBALS->changes_count++; //our global list has changed, so update the treeview + //todo: #1693998 crappy to do this here + account_compute_balances (); ui_mainwindow_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_TITLE+UF_SENSITIVE+UF_BALANCE+UF_REFRESHALL)); } @@ -107,6 +113,9 @@ on_assistant_close_cancel (GtkWidget *widget, gpointer user_data) { struct assist_start_data *data = user_data; + DB( g_print("\n[ui-start] close/cancel\n") ); + + //data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); gtk_widget_destroy (data->window); @@ -123,6 +132,9 @@ struct assist_start_data *data = user_data; gint current_page, n_pages; gchar *title; + DB( g_print("\n[ui-start] prepare\n") ); + + current_page = gtk_assistant_get_current_page (GTK_ASSISTANT (widget)); n_pages = gtk_assistant_get_n_pages (GTK_ASSISTANT (widget)); @@ -172,42 +184,49 @@ struct assist_start_data *data = user_data; } + static void on_entry_changed (GtkWidget *widget, gpointer data) { - GtkAssistant *assistant = GTK_ASSISTANT (data); - GtkWidget *current_page; - gint page_number; - const gchar *text; - - page_number = gtk_assistant_get_current_page (assistant); - current_page = gtk_assistant_get_nth_page (assistant, page_number); - text = gtk_entry_get_text (GTK_ENTRY (widget)); - - if (text && *text) - gtk_assistant_set_page_complete (assistant, current_page, TRUE); - else - gtk_assistant_set_page_complete (assistant, current_page, FALSE); +GtkAssistant *assistant = GTK_ASSISTANT (data); +GtkWidget *current_page; +gint page_number; +gchar *text; + + page_number = gtk_assistant_get_current_page (assistant); + current_page = gtk_assistant_get_nth_page (assistant, page_number); + //#1837838: complete space or leadin/trialin space is possible + text = g_strdup(gtk_entry_get_text (GTK_ENTRY (widget))); + g_strstrip(text); + + if (strlen(text) > 0) + gtk_assistant_set_page_complete (assistant, current_page, TRUE); + else + gtk_assistant_set_page_complete (assistant, current_page, FALSE); + + g_free(text); } static void ui_start_assistant_property_change_action(GtkWidget *widget, gpointer user_data) { struct assist_start_data *data; -Currency4217 *curfmt; +struct curSelectContext selectCtx; DB( g_print("\n[ui-start] property_change_action\n") ); data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data"); data->curfmt = NULL; - - curfmt = ui_cur_select_dialog_new(GTK_WINDOW(data->window), CUR_SELECT_MODE_BASE); - if( curfmt != NULL ) + ui_cur_select_dialog_new(GTK_WINDOW(data->window), CUR_SELECT_MODE_BASE, &selectCtx); + if( selectCtx.cur_4217 != NULL ) { + Currency4217 *curfmt; gchar label[128]; gchar *name; + curfmt = selectCtx.cur_4217; + DB( g_printf("- user selected: '%s' '%s'\n", curfmt->curr_iso_code, curfmt->name) ); data->curfmt = curfmt; @@ -226,6 +245,9 @@ ui_start_assistant_property_fill (GtkWidget *assistant, struct assist_start_data Currency *cur; gchar label[128]; + DB( g_print("\n[ui-start] property_fill\n") ); + + gtk_entry_set_text(GTK_ENTRY(data->ST_owner), g_get_real_name ()); cur = da_cur_get (GLOBALS->kcur); @@ -357,7 +379,7 @@ gint row; gtk_box_pack_start (GTK_BOX (box), table, TRUE, TRUE, 0); row = 0; - label = make_label_group(_("Informations")); + label = make_label_group(_("Information")); gtk_grid_attach (GTK_GRID (table), label, 0, row, 3, 1); row++; @@ -375,7 +397,8 @@ gint row; row++; label = make_label_widget(_("_Type:")); gtk_grid_attach (GTK_GRID (table), label, 1, row, 1, 1); - widget = make_cycle(label, CYA_ACC_TYPE); + //widget = make_cycle(label, CYA_ACC_TYPE); + widget = hbtk_combo_box_new_with_data(label, CYA_ACC_TYPE); data->CY_type = widget; gtk_widget_set_hexpand(widget, TRUE); gtk_grid_attach (GTK_GRID (table), widget, 2, row, 1, 1); @@ -443,6 +466,9 @@ ui_start_assistant (void) struct assist_start_data *data; GtkWidget *assistant, *page; + DB( g_print("\n[ui-start] new\n") ); + + data = g_malloc0(sizeof(struct assist_start_data)); if(!data) return NULL;