diff options
author | Anders Broman <anders.broman@ericsson.com> | 2010-02-28 20:56:21 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2010-02-28 20:56:21 +0000 |
commit | bc5133f53fbd72f7bccf56908d664a25a285ee08 (patch) | |
tree | e959967d08a76301a0c9e473cb0f111fa723927e | |
parent | c126a3970bf3d6ff0da498eadfa68af3efaea027 (diff) | |
download | wireshark-bc5133f53fbd72f7bccf56908d664a25a285ee08.tar.gz wireshark-bc5133f53fbd72f7bccf56908d664a25a285ee08.tar.bz2 wireshark-bc5133f53fbd72f7bccf56908d664a25a285ee08.zip |
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
-rw-r--r-- | gtk/hostlist_table.c | 32 |
1 files changed, 31 insertions, 1 deletions
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); |