aboutsummaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2012-11-27 13:35:33 +0000
committerAnders Broman <anders.broman@ericsson.com>2012-11-27 13:35:33 +0000
commit18d5f2dbfcb40837264bd75baaaba5ff96040e75 (patch)
tree62363d690ed052a3a2283d574e31e18f44d1a569 /ui
parent70a4056c1d145b290ebb2b13e0b29cc6036856a8 (diff)
Start including info from Statistics/Summary.
svn path=/trunk/; revision=46219
Diffstat (limited to 'ui')
-rw-r--r--ui/gtk/edit_packet_comment_dlg.c11
-rw-r--r--ui/gtk/main_menubar.c2
-rw-r--r--ui/gtk/packet_list.c11
-rw-r--r--ui/gtk/summary_dlg.c114
-rw-r--r--ui/gtk/summary_dlg.h1
5 files changed, 124 insertions, 15 deletions
diff --git a/ui/gtk/edit_packet_comment_dlg.c b/ui/gtk/edit_packet_comment_dlg.c
index affc649ae3..ca0cd7cc1d 100644
--- a/ui/gtk/edit_packet_comment_dlg.c
+++ b/ui/gtk/edit_packet_comment_dlg.c
@@ -46,6 +46,7 @@
#include "ui/gtk/packet_list.h"
#include "ui/gtk/edit_packet_comment_dlg.h"
#include "ui/gtk/old-gtk-compat.h"
+#include "ui/gtk/summary_dlg.h"
static GtkWidget *edit_or_add_pkt_comment_dlg = NULL;
static GtkWidget *edit_or_add_capture_comment_dlg = NULL;
@@ -180,8 +181,8 @@ show_packet_comment_summary_dlg (GtkAction *action _U_, gpointer data _U_)
GtkWidget *ok_bt, *cancel_bt, *help_bt;
GtkTextBuffer *buffer = NULL;
- view_capture_and_pkt_comments_dlg = dlg_window_new ("View Capture and Packet Comments");
- gtk_widget_set_size_request (view_capture_and_pkt_comments_dlg, 500, 160);
+ view_capture_and_pkt_comments_dlg = dlg_window_new ("Comments Summary");
+ gtk_widget_set_size_request (view_capture_and_pkt_comments_dlg, 700, 350);
gtk_window_set_resizable (GTK_WINDOW (view_capture_and_pkt_comments_dlg), TRUE);
gtk_container_set_border_width (GTK_CONTAINER (view_capture_and_pkt_comments_dlg), DLG_OUTER_MARGIN);
@@ -201,9 +202,11 @@ show_packet_comment_summary_dlg (GtkAction *action _U_, gpointer data _U_)
gtk_widget_show(scroll);
gtk_box_pack_start(GTK_BOX (vbox), scroll, TRUE, TRUE, 0);
- /* Get the all comments */
+ /* Add capture summary information */
+ summary_to_texbuff(buffer);
+
+ /* Add all packet comments */
packet_list_return_all_comments(buffer);
- /*g_warning("Fetched comment '%s'",opt_comment);*/
/* Button row. */
bbox = dlg_button_row_new (GTK_STOCK_OK, GTK_STOCK_CANCEL, GTK_STOCK_HELP, NULL);
diff --git a/ui/gtk/main_menubar.c b/ui/gtk/main_menubar.c
index 656511b652..791ed5d04c 100644
--- a/ui/gtk/main_menubar.c
+++ b/ui/gtk/main_menubar.c
@@ -4879,6 +4879,8 @@ set_menus_for_captured_packets(gboolean have_captured_packets)
have_captured_packets);
set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/StatisticsMenu/Summary",
have_captured_packets);
+ set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/StatisticsMenu/ShowCommentsSummary",
+ have_captured_packets);
set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/StatisticsMenu/ProtocolHierarchy",
have_captured_packets);
}
diff --git a/ui/gtk/packet_list.c b/ui/gtk/packet_list.c
index b95d38744d..c80afc0609 100644
--- a/ui/gtk/packet_list.c
+++ b/ui/gtk/packet_list.c
@@ -1708,17 +1708,6 @@ packet_list_return_all_comments(GtkTextBuffer *buffer)
gchar *buf_str;
wtapng_section_t* shb_inf = NULL;
- /* Get info from SHB */
- shb_inf = wtap_file_get_shb_info(cfile.wth);
-
- if(shb_inf != NULL){
- if(shb_inf->opt_comment){
- buf_str = g_strdup_printf("%s \n\n",shb_inf->opt_comment);
- gtk_text_buffer_insert_at_cursor (buffer, buf_str, -1);
- g_free(buf_str);
- }
- }
-
for (framenum = 1; framenum <= cfile.count ; framenum++) {
fdata = frame_data_sequence_find(cfile.frames, framenum);
if (fdata->opt_comment) {
diff --git a/ui/gtk/summary_dlg.c b/ui/gtk/summary_dlg.c
index e4512617ae..3722c4f456 100644
--- a/ui/gtk/summary_dlg.c
+++ b/ui/gtk/summary_dlg.c
@@ -659,3 +659,117 @@ summary_open_cb(GtkWidget *w _U_, gpointer d _U_)
gtk_widget_show_all(summary_dlg);
window_present(summary_dlg);
}
+
+#define INDENT " "
+void
+summary_to_texbuff(GtkTextBuffer *buffer)
+{
+ summary_tally summary;
+ gchar string_buff[SUM_STR_MAX];
+ gchar *buf_str;
+ unsigned int i;
+ unsigned int elapsed_time;
+
+ /* initial computations */
+ summary_fill_in(&cfile, &summary);
+#ifdef HAVE_LIBPCAP
+ summary_fill_in_capture(&cfile, &global_capture_opts, &summary);
+#endif
+
+ /* Add Wireshark version here? TODO */
+
+ /* Info about file */
+ g_snprintf(string_buff, SUM_STR_MAX, "File: \n");
+ gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);
+
+ /* Filename */
+ g_snprintf(string_buff, SUM_STR_MAX, INDENT "Name: %s\n", summary.filename);
+ gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);
+
+ /* length */
+ g_snprintf(string_buff, SUM_STR_MAX, INDENT "Length: %" G_GINT64_MODIFIER "d bytes\n",
+ summary.file_length);
+ gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);
+
+ /* format */
+ g_snprintf(string_buff, SUM_STR_MAX, INDENT "Format: %s%s",
+ wtap_file_type_string(summary.file_type),
+ summary.iscompressed? " (gzip compressed)\n" : "\n");
+ gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);
+
+ /* encapsulation */
+ if (summary.file_encap_type == WTAP_ENCAP_PER_PACKET) {
+ for (i = 0; i < summary.packet_encap_types->len; i++) {
+ g_snprintf(string_buff, SUM_STR_MAX, INDENT "Encapsulation: %s\n",
+ wtap_encap_string(g_array_index(summary.packet_encap_types, int, i)));
+ gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);
+ }
+ } else {
+ g_snprintf(string_buff, SUM_STR_MAX, INDENT "Encapsulation: %s\n", wtap_encap_string(summary.file_encap_type));
+ gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);
+ }
+ if (summary.has_snap) {
+ /* snapshot length */
+ g_snprintf(string_buff, SUM_STR_MAX, INDENT "Packet size limit: %u bytes\n", summary.snap);
+ gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);
+ }
+
+ /* Add two empty lines */
+ g_snprintf(string_buff, SUM_STR_MAX, "\n\n");
+ gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);
+
+ /* Time Section */
+ if (summary.packet_count_ts == summary.packet_count &&
+ summary.packet_count >= 1) {
+ /* Add heading Time */
+ g_snprintf(string_buff, SUM_STR_MAX, "Time:\n");
+ gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);
+
+ /* start time */
+ time_to_string(string_buff, SUM_STR_MAX, (time_t)summary.start_time);
+ g_snprintf(string_buff, SUM_STR_MAX, INDENT "First packet: %s\n",string_buff);
+ gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);
+
+ /* stop time */
+ time_to_string(string_buff, SUM_STR_MAX, (time_t)summary.stop_time);
+ g_snprintf(string_buff, SUM_STR_MAX, INDENT "Last packet: %s\n", string_buff);
+ gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);
+
+ /*
+ * We must have at least two time-stamped packets for the elapsed time
+ * to be valid.
+ */
+ if (summary.packet_count_ts >= 2) {
+ /* elapsed seconds */
+ elapsed_time = (unsigned int)summary.elapsed_time;
+ if(elapsed_time/86400) {
+ g_snprintf(string_buff, SUM_STR_MAX, "%02u days %02u:%02u:%02u",
+ elapsed_time/86400, elapsed_time%86400/3600, elapsed_time%3600/60, elapsed_time%60);
+ } else {
+ g_snprintf(string_buff, SUM_STR_MAX, "%02u:%02u:%02u",
+ elapsed_time%86400/3600, elapsed_time%3600/60, elapsed_time%60);
+ }
+ g_snprintf(string_buff, SUM_STR_MAX, INDENT "Elapsed: %s\n", string_buff);
+ gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);
+ }
+ }
+
+ /* Add two empty lines */
+ g_snprintf(string_buff, SUM_STR_MAX, "\n\n");
+ gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);
+
+ g_snprintf(string_buff, SUM_STR_MAX, "Capture:\n");
+ gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);
+
+ /* Trace file comments from SHB */
+ if(summary.opt_comment != NULL) {
+ buf_str = g_strdup_printf("%s", summary.opt_comment);
+ gtk_text_buffer_insert_at_cursor(buffer, buf_str, -1);
+ g_free(buf_str);
+ }
+
+
+ g_snprintf(string_buff, SUM_STR_MAX, "\n\n");
+ gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1);
+
+} \ No newline at end of file
diff --git a/ui/gtk/summary_dlg.h b/ui/gtk/summary_dlg.h
index f39c4e21df..0b3e07b0d8 100644
--- a/ui/gtk/summary_dlg.h
+++ b/ui/gtk/summary_dlg.h
@@ -37,5 +37,6 @@
* @param data unused
*/
void summary_open_cb(GtkWidget *widget, gpointer data);
+void summary_to_texbuff(GtkTextBuffer *buffer);
#endif /* __SUMMARY_DLG_H__ */