From e92a7bacca83b0cc107e78ff038aad18bd1e2ffd Mon Sep 17 00:00:00 2001 From: Thomas Thurman Date: Mon, 31 Aug 2009 19:31:24 -0400 Subject: [PATCH] sorting at last --- belltower.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/belltower.c b/belltower.c index 833981a..8972795 100644 --- a/belltower.c +++ b/belltower.c @@ -841,6 +841,21 @@ found_tower_free (FoundTower *tower) } /** + * Comparison function for FoundTower objects. + * + * \param a a FoundTower + * \param b another FoundTower + */ +gint found_tower_compare (gconstpointer a, + gconstpointer b) +{ + FoundTower *fta = (FoundTower *)a; + FoundTower *ftb = (FoundTower *)b; + + return strcmp (fta->sortkey, ftb->sortkey); +} + +/** * Calls a given function once for each tower in the world. * (The first call, however, is a header row.) * @@ -912,8 +927,9 @@ parse_dove (ParseDoveCallback callback, return; case FILTER_ACCEPT: - filter_results = g_slist_append (filter_results, - found_tower_new (&result)); + filter_results = g_slist_insert_sorted (filter_results, + found_tower_new (&result), + found_tower_compare); } result.serial++; @@ -1428,7 +1444,7 @@ settings_dialogue (GtkButton *source, TRUE, TRUE, 0); } - gtk_widget_show_all (GTK_WIDGET (dialog)); + gtk_widget_show_all (GTK_WIDGET (GTK_DIALOG(dialog)->vbox)); gtk_dialog_run (GTK_DIALOG (dialog)); for (i=0; i