GncTaxTable *gncTaxTableLookupByName (QofBook *book, const char *name) { GList *list = gncTaxTableGetTables (book); for ( ; list; list = list->next) { GncTaxTable *table = list->data; if (!g_strcmp0 (table->name, name)) return list->data; } return NULL; }
static void load_taxtable_type_cells (GncEntryLedger *ledger) { GList *list; ComboCell *cell; cell = (ComboCell *) gnc_table_layout_get_cell (ledger->table->layout, ENTRY_TAXTABLE_CELL); gnc_combo_cell_clear_menu (cell); list = gncTaxTableGetTables (ledger->book); for ( ; list ; list = list->next ) { GncTaxTable *table = list->data; const char *name = gncTaxTableGetName (table); if (name != NULL) gnc_combo_cell_add_menu_item (cell, (char*)name); } }
static void tax_table_window_refresh (TaxTableWindow *ttw) { GList *list, *node; GtkTreeView *view; GtkListStore *store; GtkTreeIter iter; GtkTreePath *path; GtkTreeSelection *selection; GtkTreeRowReference *reference = NULL; g_return_if_fail (ttw); view = GTK_TREE_VIEW (ttw->names_view); store = GTK_LIST_STORE(gtk_tree_view_get_model(view)); /* Clear the list */ gtk_list_store_clear(store); gnc_gui_component_clear_watches (ttw->component_id); /* Add the items to the list */ list = gncTaxTableGetTables (ttw->book); if (list) list = g_list_reverse (g_list_copy (list)); for (node = list; node; node = node->next) { GncTaxTable *table = node->data; gnc_gui_component_watch_entity (ttw->component_id, gncTaxTableGetGUID (table), QOF_EVENT_MODIFY); gtk_list_store_prepend(store, &iter); gtk_list_store_set(store, &iter, TAX_TABLE_COL_NAME, gncTaxTableGetName (table), TAX_TABLE_COL_POINTER, table, -1); if (table == ttw->current_table) { path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iter); reference = gtk_tree_row_reference_new(GTK_TREE_MODEL(store), path); gtk_tree_path_free(path); } } if (list) g_list_free (list); gnc_gui_component_watch_entity_type (ttw->component_id, GNC_TAXTABLE_MODULE_NAME, QOF_EVENT_CREATE | QOF_EVENT_DESTROY); if (reference) { path = gtk_tree_row_reference_get_path(reference); gtk_tree_row_reference_free(reference); if (path) { selection = gtk_tree_view_get_selection(view); gtk_tree_selection_select_path(selection, path); gtk_tree_view_scroll_to_cell(view, path, NULL, TRUE, 0.5, 0.0); gtk_tree_path_free(path); } } ;; tax_table_entries_refresh (ttw); /* select_row() above will refresh the entries window */ }