Ok

A fixed "remove" function from the treestoretest.c example:

static void
iter_remove (GtkWidget *button, GtkTreeView *tree_view)
{
        GtkTreeIter selected, selected_sort;
        GtkTreeModel *model;
        GtkTreeModelSort *model_sort;
        GtkTreePath *path_sort, *path;

        if( gtk_tree_selection_get_selected
                ( gtk_tree_view_get_selection( tree_view ),
                        &model, &selected ) )
        {
                if( GTK_IS_TREE_MODEL_SORT( model ) ) {
                        model_sort = GTK_TREE_MODEL_SORT( model );
                        model = gtk_tree_model_sort_get_model( model_sort );
                        gtk_tree_model_sort_convert_iter_to_child_iter
                                ( model_sort, &selected_sort, &selected );
                        path = gtk_tree_model_get_path( model, &selected_sort );
                        path_sort = gtk_tree_model_sort_convert_child_path_to_path
                                ( model_sort, path );
                        gtk_tree_path_free( path );
                        gtk_tree_store_remove( GTK_TREE_STORE( model ), &selected_sort 
);
                        if( gtk_tree_model_get_iter( model, &selected, path_sort )
                                || gtk_tree_path_prev( path_sort ) )
                        {
                                gtk_tree_selection_select_path
                                        ( gtk_tree_view_get_selection( tree_view ), 
path_sort );
                        }
                        gtk_tree_path_free( path_sort );
                }
                else if( GTK_IS_TREE_STORE( model ) )
                {
                        path = gtk_tree_model_get_path( model, &selected );
                        if( gtk_tree_store_remove( GTK_TREE_STORE( model ), &selected 
) ) {
                                gtk_tree_selection_select_iter
                                        ( gtk_tree_view_get_selection( tree_view ), 
&selected );
                        }
                        else {
                                if( gtk_tree_path_prev( path ) )
                                        gtk_tree_selection_select_path
                                                ( gtk_tree_view_get_selection( 
tree_view ), path );
                        }
                        gtk_tree_path_free( path );
                }
        }
}

HTH

Jan-Marek
_______________________________________________
gtk-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-list

Reply via email to