/* The code below (invoked as a consequence of a "row-deleted" signal) rebuilds prefs.col_list by iterating over the (re-ordered) tree model.  */
static void column_dnd_row_deleted_cb(GtkTreeModel *model, GtkTreePath *path _U_, gpointer data _U_)
/* The code below (invoked as a consequence of a "row-deleted" signal) rebuilds prefs.col_list by iterating over the (re-ordered) tree model.  */
static void column_dnd_row_deleted_cb(GtkTreeModel *model, GtkTreePath *path _U_, gpointer data _U_)
{
        gtk_tree_model_get(model, &iter, DATA_COLUMN, &clp, -1);
        if (clp) {
            prefs.col_list = g_list_remove_link(prefs.col_list, clp);
            new_col_list = g_list_concat(new_col_list, clp);
        }
    }
    if (prefs.col_list) {
        g_warning("column_dnd_row_deleted_cb: prefs.col_list has %d leftover data",
                  g_list_length(prefs.col_list));
        g_list_free(prefs.col_list);
    }
    prefs.col_list = new_col_list;
    cfile.columns_changed = TRUE;
}