void gtkhash_properties_list_refilter(struct page_s *page) { GtkTreeModelFilter *filter = gtkhash_properties_list_get_filter(page); gtk_tree_model_filter_refilter(filter); bool active = gtk_check_menu_item_get_active(page->menuitem_show_funcs); GtkTreeViewColumn *col = gtk_tree_view_get_column(page->treeview, 0); gtk_tree_view_column_set_visible(col, active); gtk_tree_view_columns_autosize(page->treeview); }
void gtkhash_properties_list_init(struct page_s *page) { GtkListStore *store = gtkhash_properties_list_get_store(page); for (int i = 0; i < HASH_FUNCS_N; i++) { if (!page->funcs[i].supported) continue; gtk_list_store_insert_with_values(store, NULL, i, COL_ID, i, COL_ENABLED, page->funcs[i].enabled, COL_HASH_FUNC, page->funcs[i].name, COL_DIGEST, "", -1); } GtkTreeModelFilter *filter = gtkhash_properties_list_get_filter(page); gtk_tree_model_filter_set_visible_func(filter, (GtkTreeModelFilterVisibleFunc)gtkhash_properties_list_filter, page, NULL); gtkhash_properties_list_refilter(page); }
static GtkTreeModel *gtkhash_properties_list_get_model(struct page_s *page) { GtkTreeModelFilter *filter = gtkhash_properties_list_get_filter(page); return gtk_tree_model_filter_get_model(filter); }