From bc5133f53fbd72f7bccf56908d664a25a285ee08 Mon Sep 17 00:00:00 2001 From: Anders Broman Date: Sun, 28 Feb 2010 20:56:21 +0000 Subject: From Didier Gautheron: Right align and numerically sort geoip latitude and longitude info. https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4030 svn path=/trunk/; revision=32054 --- gtk/hostlist_table.c | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/gtk/hostlist_table.c b/gtk/hostlist_table.c index e4fa9cc1fc..9daa222494 100644 --- a/gtk/hostlist_table.c +++ b/gtk/hostlist_table.c @@ -313,6 +313,28 @@ hostlist_sort_column(GtkTreeModel *model, return(CMP_ADDRESS(&host1->address, &host2->address)); case 1: /* (Port) */ CMP_INT(host1->port, host2->port); +#ifdef HAVE_GEOIP + default: + { + gchar *text1, *text2; + double loc1 = 0, loc2 = 0; + + gtk_tree_model_get(model, a, data_column, &text1, -1); + gtk_tree_model_get(model, b, data_column, &text2, -1); + + if (text1) { + loc1 = atof(text1); + g_free(text1); + } + + if (text2) { + loc2 = atof(text2); + g_free(text2); + } + CMP_INT(loc1, loc2); + } + break; +#endif } g_assert_not_reached(); return 0; @@ -1094,8 +1116,16 @@ init_hostlist_table_page(hostlist_table *hosttable, GtkWidget *vbox, gboolean hi default: /* GEOIP */ column = gtk_tree_view_column_new_with_attributes (hosttable->default_titles[i], renderer, "text", i, NULL); - gtk_tree_view_column_set_visible(column, FALSE); +#ifdef HAVE_GEOIP + if (i >= NUM_BUILTIN_COLS && i - NUM_BUILTIN_COLS < geoip_db_num_dbs()) { + int goip_type = geoip_db_type(i - NUM_BUILTIN_COLS); + if (goip_type == WS_LON_FAKE_EDITION || goip_type == WS_LAT_FAKE_EDITION) { + g_object_set(G_OBJECT(renderer), "xalign", 1.0, NULL); + gtk_tree_sortable_set_sort_func(sortable, i, hostlist_sort_column, GINT_TO_POINTER(i), NULL); + } + } +#endif break; } gtk_tree_view_column_set_sort_column_id(column, i); -- cgit v1.2.3