summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorStig Bjørlykke <stig@bjorlykke.org>2009-12-01 16:23:20 +0000
committerStig Bjørlykke <stig@bjorlykke.org>2009-12-01 16:23:20 +0000
commit81ffd50409f32c81b52dcb5829c6894af09a0fd8 (patch)
tree59eabfd59e869c0ad113f87b3ed23ac0bf14c958 /gtk
parent4dcdca497495917b833bbcb09c17d852f20954b6 (diff)
downloadwireshark-81ffd50409f32c81b52dcb5829c6894af09a0fd8.tar.gz
Added three states for sorting: ascending, descending and no sorting
(ascending on first column). svn path=/trunk/; revision=31141
Diffstat (limited to 'gtk')
-rw-r--r--gtk/menus.c1
-rw-r--r--gtk/new_packet_list.c11
-rw-r--r--gtk/new_packet_list.h1
3 files changed, 11 insertions, 2 deletions
diff --git a/gtk/menus.c b/gtk/menus.c
index 6dd14d3750..e895406a2f 100644
--- a/gtk/menus.c
+++ b/gtk/menus.c
@@ -766,6 +766,7 @@ static GtkItemFactoryEntry packet_list_heading_items[] =
#ifdef NEW_PACKET_LIST
{"/Sort Ascending", NULL, GTK_MENU_FUNC(new_packet_list_column_menu_cb), COLUMN_SELECTED_SORT_ASCENDING, "<StockItem>", GTK_STOCK_SORT_ASCENDING,},
{"/Sort Descending", NULL, GTK_MENU_FUNC(new_packet_list_column_menu_cb), COLUMN_SELECTED_SORT_DESCENDING, "<StockItem>", GTK_STOCK_SORT_DESCENDING,},
+ {"/No Sorting", NULL, GTK_MENU_FUNC(new_packet_list_column_menu_cb), COLUMN_SELECTED_SORT_NONE, NULL, NULL,},
{"/<separator>", NULL, NULL, 0, "<Separator>", NULL,},
diff --git a/gtk/new_packet_list.c b/gtk/new_packet_list.c
index ebff630978..354b69e244 100644
--- a/gtk/new_packet_list.c
+++ b/gtk/new_packet_list.c
@@ -269,10 +269,13 @@ new_packet_list_column_clicked_cb (GtkTreeViewColumn *col, gpointer user_data _U
GtkSortType order = gtk_tree_view_column_get_sort_order (col);
gint col_id = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(col), E_MPACKET_LIST_COL_KEY));
- if (order == GTK_SORT_DESCENDING || !gtk_tree_view_column_get_sort_indicator(col)) {
+ if (!gtk_tree_view_column_get_sort_indicator(col)) {
new_packet_list_sort_column (col_id, col, GTK_SORT_ASCENDING);
- } else {
+ } else if (order == GTK_SORT_ASCENDING) {
new_packet_list_sort_column (col_id, col, GTK_SORT_DESCENDING);
+ } else {
+ gtk_tree_view_column_set_sort_indicator(col, FALSE);
+ gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(packetlist), 0, GTK_SORT_ASCENDING);
}
}
@@ -324,6 +327,10 @@ new_packet_list_column_menu_cb (GtkWidget *w _U_, gpointer user_data _U_, COLUMN
case COLUMN_SELECTED_SORT_DESCENDING:
new_packet_list_sort_column (col_id, col, GTK_SORT_DESCENDING);
break;
+ case COLUMN_SELECTED_SORT_NONE:
+ gtk_tree_view_column_set_sort_indicator(col, FALSE);
+ gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(packetlist), 0, GTK_SORT_ASCENDING);
+ break;
case COLUMN_SELECTED_ALIGN_LEFT:
new_packet_list_xalign_column (col, 0.0);
break;
diff --git a/gtk/new_packet_list.h b/gtk/new_packet_list.h
index f604c34a4d..0ef08ddb4d 100644
--- a/gtk/new_packet_list.h
+++ b/gtk/new_packet_list.h
@@ -33,6 +33,7 @@
typedef enum {
COLUMN_SELECTED_SORT_ASCENDING,
COLUMN_SELECTED_SORT_DESCENDING,
+ COLUMN_SELECTED_SORT_NONE,
COLUMN_SELECTED_ALIGN_LEFT,
COLUMN_SELECTED_ALIGN_RIGHT,
COLUMN_SELECTED_RESIZE,