void gnc_reconcile_view_set_list ( GNCReconcileView *view, gboolean reconcile) { GNCQueryView *qview = GNC_QUERY_VIEW(view); GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; gpointer entry; gboolean toggled; GList *node; GList *list_of_rows; model = gtk_tree_view_get_model (GTK_TREE_VIEW (qview)); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (qview)); list_of_rows = gtk_tree_selection_get_selected_rows (selection, &model); /* We get a list of TreePaths */ for(node = list_of_rows; node; node = node->next) { GtkTreeIter iter; if(gtk_tree_model_get_iter(model, &iter, node->data)) { /* now iter is a valid row iterator */ gtk_tree_model_get (model, &iter, 0, &entry, -1); gtk_tree_model_get (model, &iter, 5, &toggled, -1); gtk_list_store_set (GTK_LIST_STORE (model), &iter, 5, reconcile, -1); if(reconcile != toggled) gnc_reconcile_view_toggle (view, entry); } gtk_tree_path_free(node->data); } g_list_free(list_of_rows); }
static void gnc_reconcile_view_line_toggled (GNCQueryView *qview, gpointer item, gpointer user_data) { GNCReconcileView *view; GtkTreeModel *model; GtkTreeIter iter; gpointer entry; g_return_if_fail (user_data); g_return_if_fail (GNC_IS_QUERY_VIEW (qview)); view = user_data; model = gtk_tree_view_get_model (GTK_TREE_VIEW (qview)); gtk_tree_model_iter_nth_child (model, &iter, NULL, qview->toggled_row); gtk_list_store_set (GTK_LIST_STORE (model), &iter, qview->toggled_column, GPOINTER_TO_INT(item), -1); gtk_tree_model_get (model, &iter, REC_POINTER, &entry, -1); gnc_reconcile_view_toggle (view, entry); }
void gnc_reconcile_view_set_list ( GNCReconcileView *view, gboolean reconcile) { GNCQueryView *qview = GNC_QUERY_VIEW(view); GtkTreeSelection *selection; GtkTreeModel *model; gpointer entry; gboolean toggled; GList *node; GList *list_of_rows; model = gtk_tree_view_get_model (GTK_TREE_VIEW (qview)); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (qview)); list_of_rows = gtk_tree_selection_get_selected_rows (selection, &model); /* We get a list of TreePaths */ for(node = list_of_rows; node; node = node->next) { GtkTreeIter iter; if(gtk_tree_model_get_iter(model, &iter, node->data)) { /* now iter is a valid row iterator */ gtk_tree_model_get (model, &iter, REC_POINTER, &entry, -1); gtk_tree_model_get (model, &iter, REC_RECN, &toggled, -1); gtk_list_store_set (GTK_LIST_STORE (model), &iter, REC_RECN, reconcile, -1); if(reconcile != toggled) gnc_reconcile_view_toggle (view, entry); } gtk_tree_path_free(node->data); } // Out of site toggles on selected rows may not appear correctly drawn so // queue a draw for the treeview widget gtk_widget_queue_draw (GTK_WIDGET(qview)); g_list_free(list_of_rows); }