aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2010-02-28 20:56:21 +0000
committerAnders Broman <anders.broman@ericsson.com>2010-02-28 20:56:21 +0000
commitbc5133f53fbd72f7bccf56908d664a25a285ee08 (patch)
treee959967d08a76301a0c9e473cb0f111fa723927e
parentc126a3970bf3d6ff0da498eadfa68af3efaea027 (diff)
downloadwireshark-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.c32
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);