Skip to content

Commit

Permalink
Fix marking functionality (bug 5279)
Browse files Browse the repository at this point in the history
svn path=/trunk/; revision=35244
  • Loading branch information
syn-bit committed Dec 22, 2010
1 parent f4c6355 commit 516bfe3
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 18 deletions.
14 changes: 8 additions & 6 deletions gtk/menus.c
Original file line number Diff line number Diff line change
Expand Up @@ -1422,10 +1422,11 @@ static const GtkActionEntry main_menu_bar_entries[] = {

#ifdef NEW_PACKET_LIST
{ "/Edit/MarkPacket", NULL, "_Mark Packet (toggle)", "<control>M", NULL, G_CALLBACK(new_packet_list_mark_frame_cb) },
{ "/Edit/ToggleMarkingOfAllDisplayedPackets", NULL, "Toggle Marking Of All Displayed Packets", "<shift><alt><control>M", NULL, G_CALLBACK(new_packet_list_toggle_mark_all_displayed_frames_cb) },
{ "/Edit/MarkAllDisplayedPackets", NULL, "Mark All Displayed Packets", "<shift><control>M", NULL, G_CALLBACK(new_packet_list_mark_all_displayed_frames_cb) },
{ "/Edit/UnmarkAllDisplayedPackets", NULL, "_Unmark All Displayed Packets", "<alt><control>M", NULL, G_CALLBACK(new_packet_list_unmark_all_displayed_frames_cb) },
{ "/Edit/FindNextMark", NULL, "Find Next Mark", "<shift><control>N", NULL, G_CALLBACK(find_next_mark_cb) },
{ "/Edit/FindPreviousMark", NULL, "Find Next Mark", "<shift><control>B", NULL, G_CALLBACK(find_prev_mark_cb) },
{ "/Edit/MarkAllDisplayedPackets", NULL, "Mark All Displayed Packets (toggle)", "<control>A", NULL, G_CALLBACK(new_packet_list_mark_all_displayed_frames_cb) },
{ "/Edit/UnmarkAllPackets", NULL, "_Unmark All Packets", "<control>D", NULL, G_CALLBACK(new_packet_list_unmark_all_frames_cb) },

{ "/Edit/IgnorePacket", NULL, "_Ignore Packet (toggle)", "<control>X", NULL, G_CALLBACK(new_packet_list_ignore_frame_cb) },
/*
Expand Down Expand Up @@ -1794,8 +1795,9 @@ static GtkItemFactoryEntry menu_items[] =
{"/Edit/<separator>", NULL, NULL, 0, "<Separator>", NULL,},
#ifdef NEW_PACKET_LIST
{"/Edit/_Mark Packet (toggle)", "<control>M", GTK_MENU_FUNC(new_packet_list_mark_frame_cb),0, NULL, NULL,},
{"/Edit/Mark All Displayed Packets (toggle)", "<shift><control>M", GTK_MENU_FUNC(new_packet_list_mark_all_displayed_frames_cb), 0, NULL, NULL,},
{"/Edit/Unmark All Packets", "<alt><control>M", GTK_MENU_FUNC(new_packet_list_unmark_all_frames_cb), 0, NULL, NULL,},
{"/Edit/Toggle Marking Of All Displayed Packets", "<shift><alt><control>M", GTK_MENU_FUNC(new_packet_list_toggle_mark_all_displayed_frames_cb), 0, NULL, NULL,},
{"/Edit/Mark All Displayed Packets", "<shift><control>M", GTK_MENU_FUNC(new_packet_list_mark_all_displayed_frames_cb), 0, NULL, NULL,},
{"/Edit/Unmark All Displayed Packets", "<alt><control>M", GTK_MENU_FUNC(new_packet_list_unmark_all_displayed_frames_cb), 0, NULL, NULL,},
{"/Edit/Find Next Mark", "<shift><control>N", GTK_MENU_FUNC(find_next_mark_cb), 0, NULL, NULL,},
{"/Edit/Find Previous Mark", "<shift><control>B", GTK_MENU_FUNC(find_prev_mark_cb), 0, NULL, NULL,},
{"/Edit/<separator>", NULL, NULL, 0, "<Separator>", NULL,},
Expand All @@ -1818,12 +1820,12 @@ static GtkItemFactoryEntry menu_items[] =
*/
{"/Edit/_Mark Packet (toggle)", "<control>M", GTK_MENU_FUNC(packet_list_mark_frame_cb),
0, NULL, NULL,},
{"/Edit/Mark _All Displayed Packets", "<shift><control>M", GTK_MENU_FUNC(packet_list_mark_all_frames_cb), 0, NULL, NULL,},
{"/Edit/_Unmark All Displayed Packets", "<alt><control>M", GTK_MENU_FUNC(packet_list_unmark_all_frames_cb), 0, NULL, NULL,},
{"/Edit/Find Next Mark", "<shift><control>N", GTK_MENU_FUNC(find_next_mark_cb),
0, NULL, NULL,},
{"/Edit/Find Previous Mark", "<shift><control>B", GTK_MENU_FUNC(find_prev_mark_cb),
0, NULL, NULL,},
{"/Edit/Mark _All Displayed Packets (toggle)", "<shift><control>M", GTK_MENU_FUNC(packet_list_mark_all_frames_cb), 0, NULL, NULL,},
{"/Edit/_Unmark All Packets", "<alt><control>M", GTK_MENU_FUNC(packet_list_unmark_all_frames_cb), 0, NULL, NULL,},
{"/Edit/<separator>", NULL, NULL, 0, "<Separator>", NULL,},
{"/Edit/_Ignore Packet (toggle)", "<control>D", GTK_MENU_FUNC(packet_list_ignore_frame_cb),
0, NULL, NULL,},
Expand Down
24 changes: 14 additions & 10 deletions gtk/new_packet_list.c
Original file line number Diff line number Diff line change
Expand Up @@ -1470,28 +1470,32 @@ mark_all_displayed_frames(gboolean set)
void
new_packet_list_mark_all_displayed_frames_cb(GtkWidget *w _U_, gpointer data _U_)
{
if (cf_find_packet_marked(&cfile, SD_FORWARD)) {
mark_all_displayed_frames(FALSE);
}else {
mark_all_displayed_frames(TRUE);
}
mark_all_displayed_frames(TRUE);
mark_frames_ready();
}

void
new_packet_list_unmark_all_displayed_frames_cb(GtkWidget *w _U_, gpointer data _U_)
{
mark_all_displayed_frames(FALSE);
mark_frames_ready();
}

static void
unmark_all_frames()
toggle_mark_all_displayed_frames()
{
/* XXX: we might need a progressbar here */
frame_data *fdata;
for (fdata = cfile.plist_start; fdata != NULL && cfile.marked_count > 0; fdata = fdata->next) {
set_frame_mark(FALSE, fdata);
for (fdata = cfile.plist_start; fdata != NULL; fdata = fdata->next) {
if( fdata->flags.passed_dfilter )
set_frame_mark(!fdata->flags.marked, fdata);
}
}

void
new_packet_list_unmark_all_frames_cb(GtkWidget *w _U_, gpointer data _U_)
new_packet_list_toggle_mark_all_displayed_frames_cb(GtkWidget *w _U_, gpointer data _U_)
{
unmark_all_frames();
toggle_mark_all_displayed_frames();
mark_frames_ready();
}

Expand Down
11 changes: 9 additions & 2 deletions gtk/new_packet_list.h
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,14 @@ extern void new_packet_list_set_font(PangoFontDescription *font);
*/
extern void new_packet_list_mark_frame_cb(GtkWidget *widget, gpointer data);

/** Mark/unmark all displayed packets.
/** Toggle Mark on all displayed packets.
*
* @param widget parent widget (unused)
* @param data unused
*/
extern void new_packet_list_toggle_mark_all_displayed_frames_cb(GtkWidget *w _U_, gpointer data _U_);

/** Mark all displayed packets.
*
* @param widget parent widget (unused)
* @param data unused
Expand All @@ -85,7 +92,7 @@ extern void new_packet_list_mark_all_displayed_frames_cb(GtkWidget *w _U_, gpoin
* @param widget parent widget (unused)
* @param data unused
*/
extern void new_packet_list_unmark_all_frames_cb(GtkWidget *w _U_, gpointer data _U_);
extern void new_packet_list_unmark_all_displayed_frames_cb(GtkWidget *w _U_, gpointer data _U_);

/** Ignore the currently selected packet.
*
Expand Down

0 comments on commit 516bfe3

Please sign in to comment.