Added three states for sorting: ascending, descending and no sorting

(ascending on first column).

svn path=/trunk/; revision=31141
This commit is contained in:
Stig Bjørlykke 2009-12-01 16:23:20 +00:00
parent 4dcdca4974
commit 81ffd50409
3 changed files with 11 additions and 2 deletions

View File

@ -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,},

View File

@ -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;

View File

@ -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,