summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2016-09-08 14:31:03 -0700
committerGerald Combs <gerald@wireshark.org>2016-09-09 21:43:01 +0000
commit559bb375c1542f6556b4afc260345eb6a988025b (patch)
treee52123c1688942bfc05dc5789bea89562a71b357
parentecd82d08a1479849cb6d4ebb93422b0f96470704 (diff)
downloadwireshark-559bb375c1542f6556b4afc260345eb6a988025b.tar.gz
Remove name resolution from the file dialogs.
A single name resolution checkbox was added to the file dialog way back in 2000 in g0f7cf64. At that time it was needed because resolution was synchronous and could drastically affect your load time. Since then we've added asynchronous name resolution and more recently made it mandatory (ge005bc8). We've also added more name resolution checkboxes and other controls. Remove the name resolution checkboxes. You can just as easily change resolution options before or after opening a file and they take up valuable real estate. Combine the size and packets in the Qt and Win32 dialogs and pretty-print the size. Combine the start and elapsed times in the Qt, Win32, and GTK+ dialogs. This lets us shrink the custom areas of the file dialogs even further. Make the default file type combo item more descriptive. Change-Id: Id770adc0f284a4c7f08ee5a7db84f8435f4bf907 Reviewed-on: https://code.wireshark.org/review/17597 Tested-by: Gerald Combs <gerald@wireshark.org> Petri-Dish: Gerald Combs <gerald@wireshark.org> Reviewed-by: Gerald Combs <gerald@wireshark.org>
-rw-r--r--image/file_dlg_win32.rc56
-rw-r--r--ui/gtk/capture_file_dlg.c90
-rw-r--r--ui/qt/capture_file_dialog.cpp125
-rw-r--r--ui/qt/capture_file_dialog.h10
-rw-r--r--ui/win32/file_dlg_win32.c75
-rw-r--r--ui/win32/file_dlg_win32.h22
6 files changed, 115 insertions, 263 deletions
diff --git a/image/file_dlg_win32.rc b/image/file_dlg_win32.rc
index 72295880ae..359000985a 100644
--- a/image/file_dlg_win32.rc
+++ b/image/file_dlg_win32.rc
@@ -2,7 +2,11 @@
#include "richedit.h"
#include "../ui/win32/file_dlg_win32.h"
-WIRESHARK_OPENFILENAME_TEMPLATE DIALOGEX 0, 0, 421, 90
+// We should probably ensure that we're meeting the MS layout guidelines:
+// https://msdn.microsoft.com/en-us/library/windows/desktop/dn742486.aspx
+// Outer margin: 11px
+
+WIRESHARK_OPENFILENAME_TEMPLATE DIALOGEX 0, 0, 425, 47
STYLE WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | DS_3DLOOK | DS_CONTROL
FONT 8, "MS Shell Dlg"
{
@@ -11,22 +15,20 @@ FONT 8, "MS Shell Dlg"
LTEXT "Read filter:", EWFD_FILTER_LBL, 67, 2, 49, 14
CONTROL "", EWFD_FILTER_EDIT, RICHEDIT_CLASS, ES_AUTOHSCROLL, 112, 0, 88, 12, WS_EX_CLIENTEDGE
- COMBOBOX EWFD_FORMAT_TYPE, 67, 15, 135, 8, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- CHECKBOX "MAC name resolution", EWFD_MAC_NR_CB, 67, 30, 100, 8, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
- CHECKBOX "Transport name resolution", EWFD_TRANS_NR_CB, 67, 45, 100, 8, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
- CHECKBOX "Network name resolution", EWFD_NET_NR_CB, 67, 60, 100, 8, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
- CHECKBOX "Use external network name resolver", EWFD_EXTERNAL_NR_CB, 67, 75, 135, 8, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
-
- LTEXT "Format:", EWFD_PT_FORMAT, 224, 2, 40, 8
- LTEXT "-", EWFD_PTX_FORMAT, 271, 2, 150, 8
- LTEXT "Size:", EWFD_PT_SIZE, 224, 17, 40, 8
- LTEXT "-", EWFD_PTX_SIZE, 271, 17, 150, 8
- LTEXT "Packets:", EWFD_PT_PACKETS, 224, 32, 40, 8
- LTEXT "-", EWFD_PTX_PACKETS, 271, 32, 150, 8
- LTEXT "First Packet:", EWFD_PT_FIRST_PKT, 224, 47, 40, 8
- LTEXT "-", EWFD_PTX_FIRST_PKT, 271, 47, 150, 8
- LTEXT "Elapsed:", EWFD_PT_ELAPSED, 224, 62, 40, 8
- LTEXT "-", EWFD_PTX_ELAPSED, 271, 62, 150, 8
+ COMBOBOX EWFD_FORMAT_TYPE, 67, 17, 135, 8, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ // CHECKBOX "MAC name resolution", EWFD_MAC_NR_CB, 67, 30, 100, 8, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
+ // CHECKBOX "Transport name resolution", EWFD_TRANS_NR_CB, 67, 45, 100, 8, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
+ // CHECKBOX "Network name resolution", EWFD_NET_NR_CB, 67, 60, 100, 8, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
+ // CHECKBOX "Use external network name resolver", EWFD_EXTERNAL_NR_CB, 67, 75, 135, 8, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
+
+ LTEXT "Format:", EWFD_PT_FORMAT, 224, 2, 60, 8
+ LTEXT "-", EWFD_PTX_FORMAT, 275, 2, 150, 8
+ LTEXT "Size:", EWFD_PT_SIZE, 224, 17, 60, 8
+ LTEXT "-", EWFD_PTX_SIZE, 275, 17, 150, 8
+ // LTEXT "Packets:", EWFD_PT_PACKETS, 224, 32, 60, 8
+ // LTEXT "-", EWFD_PTX_PACKETS, 275, 32, 150, 8
+ LTEXT "Start / elapsed:", EWFD_PT_START_ELAPSED, 224, 32, 60, 8
+ LTEXT "-", EWFD_PTX_START_ELAPSED, 275, 32, 150, 8
// 164/211, 79, 40/150, 8
}
@@ -78,7 +80,7 @@ FONT 8, "MS Shell Dlg"
CHECKBOX "Compress with gzip", EWFD_GZIP_CB, 344, 4, 100, 8, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
}
-WIRESHARK_MERGEFILENAME_TEMPLATE DIALOGEX 0, 0, 428, 77
+WIRESHARK_MERGEFILENAME_TEMPLATE DIALOGEX 0, 0, 428, 47
STYLE WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | DS_3DLOOK | DS_CONTROL
FONT 8, "MS Shell Dlg"
{
@@ -91,16 +93,14 @@ FONT 8, "MS Shell Dlg"
CONTROL "Merge packets chronologically", EWFD_MERGE_CHRONO_BTN, "Button", BS_AUTORADIOBUTTON, 67, 45, 120, 8
CONTROL "Append packets to existing file", EWFD_MERGE_APPEND_BTN, "Button", BS_AUTORADIOBUTTON, 67, 60, 120, 8
- LTEXT "Format:", EWFD_PT_FORMAT, 224, 2, 40, 8
- LTEXT "-", EWFD_PTX_FORMAT, 271, 2, 150, 8
- LTEXT "Size:", EWFD_PT_SIZE, 224, 17, 40, 8
- LTEXT "-", EWFD_PTX_SIZE, 271, 17, 150, 8
- LTEXT "Packets:", EWFD_PT_PACKETS, 224, 32, 40, 8
- LTEXT "-", EWFD_PTX_PACKETS, 271, 32, 150, 8
- LTEXT "First Packet:", EWFD_PT_FIRST_PKT, 224, 47, 40, 8
- LTEXT "-", EWFD_PTX_FIRST_PKT, 271, 47, 150, 8
- LTEXT "Elapsed:", EWFD_PT_ELAPSED, 224, 62, 40, 8
- LTEXT "-", EWFD_PTX_ELAPSED, 271, 62, 150, 8
+ LTEXT "Format:", EWFD_PT_FORMAT, 224, 2, 60, 8
+ LTEXT "-", EWFD_PTX_FORMAT, 275, 2, 150, 8
+ LTEXT "Size:", EWFD_PT_SIZE, 224, 17, 60, 8
+ LTEXT "-", EWFD_PTX_SIZE, 275, 17, 150, 8
+ // LTEXT "Packets:", EWFD_PT_PACKETS, 224, 32, 60, 8
+ // LTEXT "-", EWFD_PTX_PACKETS, 275, 32, 150, 8
+ LTEXT "Start / elapsed:", EWFD_PT_START_ELAPSED, 224, 32, 60, 8
+ LTEXT "-", EWFD_PTX_START_ELAPSED, 275, 32, 150, 8
// 164/211, 79, 40/150, 8
}
diff --git a/ui/gtk/capture_file_dlg.c b/ui/gtk/capture_file_dlg.c
index e50d600c98..2c7e0cab52 100644
--- a/ui/gtk/capture_file_dlg.c
+++ b/ui/gtk/capture_file_dlg.c
@@ -27,7 +27,6 @@
#include <gtk/gtk.h>
#include <wsutil/filesystem.h>
-#include <epan/addr_resolv.h>
#include <epan/prefs.h>
#include "globals.h"
@@ -87,12 +86,11 @@ static gboolean test_file_close(capture_file *cf, gboolean from_quit,
#define E_FILE_TYPE_COMBO_BOX_KEY "file_type_combo_box"
#define E_COMPRESSED_CB_KEY "compressed_cb"
-#define PREVIEW_TABLE_KEY "preview_table_key"
-#define PREVIEW_FORMAT_KEY "preview_format_key"
-#define PREVIEW_SIZE_KEY "preview_size_key"
-#define PREVIEW_ELAPSED_KEY "preview_elapsed_key"
-#define PREVIEW_PACKETS_KEY "preview_packets_key"
-#define PREVIEW_FIRST_KEY "preview_first_key"
+#define PREVIEW_TABLE_KEY "preview_table_key"
+#define PREVIEW_FORMAT_KEY "preview_format_key"
+#define PREVIEW_SIZE_KEY "preview_size_key"
+#define PREVIEW_PACKETS_KEY "preview_packets_key"
+#define PREVIEW_FIRST_ELAPSED_KEY "preview_first_elapsed_key"
/* XXX - can we make these not be static? */
static gboolean color_selected;
@@ -117,11 +115,9 @@ preview_set_filename(GtkWidget *prev, const gchar *cf_name)
gtk_label_set_text(GTK_LABEL(label), "-");
label = (GtkWidget *)g_object_get_data(G_OBJECT(prev), PREVIEW_SIZE_KEY);
gtk_label_set_text(GTK_LABEL(label), "-");
- label = (GtkWidget *)g_object_get_data(G_OBJECT(prev), PREVIEW_ELAPSED_KEY);
- gtk_label_set_text(GTK_LABEL(label), "-");
label = (GtkWidget *)g_object_get_data(G_OBJECT(prev), PREVIEW_PACKETS_KEY);
gtk_label_set_text(GTK_LABEL(label), "-");
- label = (GtkWidget *)g_object_get_data(G_OBJECT(prev), PREVIEW_FIRST_KEY);
+ label = (GtkWidget *)g_object_get_data(G_OBJECT(prev), PREVIEW_FIRST_ELAPSED_KEY);
gtk_label_set_text(GTK_LABEL(label), "-");
if (!cf_name) {
@@ -182,6 +178,7 @@ preview_do(GtkWidget *prev, wtap *wth)
unsigned int packets = 0;
gboolean is_breaked = FALSE;
gchar string_buff[PREVIEW_STR_MAX];
+ gchar first_buff[PREVIEW_STR_MAX];
time_t ti_time;
struct tm *ti_tm;
const struct wtap_pkthdr *phdr;
@@ -234,7 +231,7 @@ preview_do(GtkWidget *prev, wtap *wth)
ti_time = (long)start_time;
ti_tm = localtime( &ti_time );
if (ti_tm) {
- g_snprintf(string_buff, PREVIEW_STR_MAX,
+ g_snprintf(first_buff, PREVIEW_STR_MAX,
"%04d-%02d-%02d %02d:%02d:%02d",
ti_tm->tm_year + 1900,
ti_tm->tm_mon + 1,
@@ -243,24 +240,22 @@ preview_do(GtkWidget *prev, wtap *wth)
ti_tm->tm_min,
ti_tm->tm_sec);
} else {
- g_snprintf(string_buff, PREVIEW_STR_MAX, "?");
+ g_snprintf(first_buff, PREVIEW_STR_MAX, "?");
}
- label = (GtkWidget *)g_object_get_data(G_OBJECT(prev), PREVIEW_FIRST_KEY);
- gtk_label_set_text(GTK_LABEL(label), string_buff);
/* elapsed time */
elapsed_time = (unsigned int)(stop_time-start_time);
if (elapsed_time/86400) {
- g_snprintf(string_buff, PREVIEW_STR_MAX, "%02u days %02u:%02u:%02u",
- elapsed_time/86400, elapsed_time%86400/3600, elapsed_time%3600/60, elapsed_time%60);
+ g_snprintf(string_buff, PREVIEW_STR_MAX, "%s / %02u days %02u:%02u:%02u",
+ first_buff, elapsed_time/86400, elapsed_time%86400/3600, elapsed_time%3600/60, elapsed_time%60);
} else {
- g_snprintf(string_buff, PREVIEW_STR_MAX, "%02u:%02u:%02u",
- elapsed_time%86400/3600, elapsed_time%3600/60, elapsed_time%60);
+ g_snprintf(string_buff, PREVIEW_STR_MAX, "%s / %02u:%02u:%02u",
+ first_buff, elapsed_time%86400/3600, elapsed_time%3600/60, elapsed_time%60);
}
if (is_breaked) {
- g_snprintf(string_buff, PREVIEW_STR_MAX, "unknown");
+ g_snprintf(string_buff, PREVIEW_STR_MAX, "%s / unknown", first_buff);
}
- label = (GtkWidget *)g_object_get_data(G_OBJECT(prev), PREVIEW_ELAPSED_KEY);
+ label = (GtkWidget *)g_object_get_data(G_OBJECT(prev), PREVIEW_FIRST_ELAPSED_KEY);
gtk_label_set_text(GTK_LABEL(label), string_buff);
wtap_close(wth);
@@ -395,10 +390,8 @@ preview_new(void)
g_object_set_data(G_OBJECT(grid), PREVIEW_SIZE_KEY, label);
label = add_string_to_grid(grid, &row, "Packets:", "-");
g_object_set_data(G_OBJECT(grid), PREVIEW_PACKETS_KEY, label);
- label = add_string_to_grid(grid, &row, "First Packet:", "-");
- g_object_set_data(G_OBJECT(grid), PREVIEW_FIRST_KEY, label);
- label = add_string_to_grid(grid, &row, "Elapsed time:", "-");
- g_object_set_data(G_OBJECT(grid), PREVIEW_ELAPSED_KEY, label);
+ label = add_string_to_grid(grid, &row, "Start / elapsed:", "-");
+ g_object_set_data(G_OBJECT(grid), PREVIEW_FIRST_ELAPSED_KEY, label);
return grid;
}
@@ -473,7 +466,7 @@ gtk_open_file(GtkWidget *w, GString *file_name, gint *type, GString *display_fil
{
GtkWidget *file_open_w;
GtkWidget *main_hb, *main_vb, *filter_hbox, *filter_bt, *filter_te;
- GtkWidget *m_resolv_cb, *n_resolv_cb, *t_resolv_cb, *e_resolv_cb, *prev;
+ GtkWidget *prev;
GtkWidget *format_type_co;
GtkCellRenderer *cell;
gint i;
@@ -547,7 +540,7 @@ gtk_open_file(GtkWidget *w, GString *file_name, gint *type, GString *display_fil
gtk_widget_set_tooltip_text(format_type_co, "Format type of capture file");
gtk_box_pack_start(GTK_BOX(main_vb), format_type_co, FALSE, FALSE, 0);
- gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(format_type_co), (const gchar *) "Automatic");
+ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(format_type_co), (const gchar *) "Automatically detect file type");
for (i = 0; open_routines[i].name != NULL; i += 1) {
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(format_type_co), open_routines[i].name);
}
@@ -585,31 +578,6 @@ gtk_open_file(GtkWidget *w, GString *file_name, gint *type, GString *display_fil
g_object_set_data(G_OBJECT(file_open_w), E_RFILTER_TE_KEY, filter_te);
- /* Resolve buttons */
- m_resolv_cb = gtk_check_button_new_with_mnemonic("Enable _MAC name resolution");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(m_resolv_cb),
- gbl_resolv_flags.mac_name);
- gtk_box_pack_start(GTK_BOX(main_vb), m_resolv_cb, FALSE, FALSE, 0);
- gtk_widget_show(m_resolv_cb);
-
- t_resolv_cb = gtk_check_button_new_with_mnemonic("Enable _transport name resolution");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(t_resolv_cb),
- gbl_resolv_flags.transport_name);
- gtk_box_pack_start(GTK_BOX(main_vb), t_resolv_cb, FALSE, FALSE, 0);
- gtk_widget_show(t_resolv_cb);
-
- n_resolv_cb = gtk_check_button_new_with_mnemonic("Enable _network name resolution");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(n_resolv_cb),
- gbl_resolv_flags.network_name);
- gtk_box_pack_start(GTK_BOX(main_vb), n_resolv_cb, FALSE, FALSE, 0);
- gtk_widget_show(n_resolv_cb);
-
- e_resolv_cb = gtk_check_button_new_with_mnemonic("Use _external network name resolver");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e_resolv_cb),
- gbl_resolv_flags.use_external_net_name_resolver);
- gtk_box_pack_start(GTK_BOX(main_vb), e_resolv_cb, FALSE, FALSE, 0);
- gtk_widget_show(e_resolv_cb);
-
/* Preview widget */
prev = preview_new();
g_object_set_data(G_OBJECT(file_open_w), PREVIEW_TABLE_KEY, prev);
@@ -634,24 +602,6 @@ gtk_open_file(GtkWidget *w, GString *file_name, gint *type, GString *display_fil
g_free(cf_name);
g_string_printf(display_filter, "%s", gtk_entry_get_text(GTK_ENTRY(filter_te)));
- /* Set the global resolving variable */
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(m_resolv_cb)))
- gbl_resolv_flags.mac_name = TRUE;
- else
- gbl_resolv_flags.mac_name = FALSE;
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(n_resolv_cb)))
- gbl_resolv_flags.network_name = TRUE;
- else
- gbl_resolv_flags.network_name = FALSE;
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(t_resolv_cb)))
- gbl_resolv_flags.transport_name = TRUE;
- else
- gbl_resolv_flags.transport_name = FALSE;
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(e_resolv_cb)))
- gbl_resolv_flags.use_external_net_name_resolver = TRUE;
- else
- gbl_resolv_flags.use_external_net_name_resolver = FALSE;
-
*type = gtk_combo_box_get_active((GtkComboBox *) format_type_co);
/* We've crossed the Rubicon; get rid of the file selection box. */
@@ -667,10 +617,8 @@ gtk_open_file(GtkWidget *w, GString *file_name, gint *type, GString *display_fil
* <platform/>_open_file routines should upon entry...
* Set the path and fill in the filename if the path+filename is provided.
* Set the display filter if provided. Filter syntax should be checked.
- * Set the name resolution check boxes to match the global settings.
* ...and upon exit...
* Return TRUE on "OK" and "FALSE" on "Cancel".
- * Set the global name resolution preferences on "OK".
* Close the window.
*/
diff --git a/ui/qt/capture_file_dialog.cpp b/ui/qt/capture_file_dialog.cpp
index 7cc5c7bcdf..f9c4f97374 100644
--- a/ui/qt/capture_file_dialog.cpp
+++ b/ui/qt/capture_file_dialog.cpp
@@ -32,9 +32,11 @@
#include <errno.h>
#include "file.h"
-#include "epan/addr_resolv.h"
#include "wsutil/filesystem.h"
#include "wsutil/nstime.h"
+#include "wsutil/str_util.h"
+#include "wsutil/utf8_entities.h"
+
#include "ui/all_files_wildcard.h"
#include <QGridLayout>
@@ -52,41 +54,6 @@
#include "epan/prefs.h"
#include <wireshark_application.h>
-#ifdef Q_OS_WIN
-// All of these routines are required by file_dlg_win32.c.
-// We don't yet have a good place for them so we'll add them as stubs here.
-
-extern "C" {
-
-// From gtk/capture_dlg.[ch]
-/* capture start confirmed by "Save unsaved capture", so do it now */
-extern void capture_start_confirmed(void) {
-}
-
-// From gtk/drag_and_drop.[ch]
-/** Open a new file coming from drag and drop.
- * @param cf_names_freeme the selection data reported from GTK
- */
-extern void dnd_open_file_cmd(gchar *) {
-}
-
-// From gtk/menus.h & main_menubar.c
-/** User pushed a recent file submenu item.
- *
- * @param widget parent widget
- */
-extern void menu_open_recent_file_cmd(gpointer){
-}
-
-/** One of the name resolution menu items changed. */
-extern void menu_name_resolution_changed(void) {
-
-}
-
-} // extern "C"
-// End stub routines
-#endif // Q_OS_WIN
-
CaptureFileDialog::CaptureFileDialog(QWidget *parent, capture_file *cf, QString &display_filter) :
QFileDialog(parent),
cap_file_(cf),
@@ -131,7 +98,7 @@ CaptureFileDialog::CaptureFileDialog(QWidget *parent, capture_file *cf, QString
last_row_ = fd_grid->rowCount();
fd_grid->addItem(new QSpacerItem(1, 1), last_row_, 0);
- fd_grid->addLayout(h_box, last_row_, 1);
+ fd_grid->addLayout(h_box, last_row_, 0, 1, 2);
last_row_++;
// Left and right boxes for controls and preview
@@ -461,20 +428,10 @@ void CaptureFileDialog::addPreview(QVBoxLayout &v_box) {
preview_grid->addWidget(&preview_size_, 1, 1);
preview_labels_ << lbl << &preview_size_;
- lbl = new QLabel(tr("Packets:"));
- preview_grid->addWidget(lbl, 2, 0);
- preview_grid->addWidget(&preview_packets_, 2, 1);
- preview_labels_ << lbl << &preview_packets_;
-
- lbl = new QLabel(tr("First Packet:"));
+ lbl = new QLabel(tr("Start / elapsed:"));
preview_grid->addWidget(lbl, 3, 0);
- preview_grid->addWidget(&preview_first_, 3, 1);
- preview_labels_ << lbl << &preview_first_;
-
- lbl = new QLabel(tr("Elapsed Time:"));
- preview_grid->addWidget(lbl, 4, 0);
- preview_grid->addWidget(&preview_elapsed_, 4, 1);
- preview_labels_ << lbl << &preview_elapsed_;
+ preview_grid->addWidget(&preview_first_elapsed_, 3, 1);
+ preview_labels_ << lbl << &preview_first_elapsed_;
connect(this, SIGNAL(currentChanged(const QString &)), this, SLOT(preview(const QString &)));
@@ -517,7 +474,7 @@ void CaptureFileDialog::addDisplayFilterEdit() {
}
void CaptureFileDialog::addFormatTypeSelector(QVBoxLayout &v_box) {
- format_type_.addItem(tr("Automatic"));
+ format_type_.addItem(tr("Automatically detect file type"));
for (int i = 0; open_routines[i].name != NULL; i += 1) {
format_type_.addItem(open_routines[i].name);
}
@@ -525,24 +482,6 @@ void CaptureFileDialog::addFormatTypeSelector(QVBoxLayout &v_box) {
v_box.addWidget(&format_type_, 0, Qt::AlignTop);
}
-void CaptureFileDialog::addResolutionControls(QVBoxLayout &v_box) {
- mac_res_.setText(tr("&MAC name resolution"));
- mac_res_.setChecked(gbl_resolv_flags.mac_name);
- v_box.addWidget(&mac_res_, 0, Qt::AlignTop);
-
- transport_res_.setText(tr("&Transport name resolution"));
- transport_res_.setChecked(gbl_resolv_flags.transport_name);
- v_box.addWidget(&transport_res_, 0, Qt::AlignTop);
-
- network_res_.setText(tr("&Network name resolution"));
- network_res_.setChecked(gbl_resolv_flags.network_name);
- v_box.addWidget(&network_res_, 0, Qt::AlignTop);
-
- external_res_.setText(tr("&External name resolver"));
- external_res_.setChecked(gbl_resolv_flags.use_external_net_name_resolver);
- v_box.addWidget(&external_res_, 0, Qt::AlignTop);
-}
-
void CaptureFileDialog::addGzipControls(QVBoxLayout &v_box) {
compress_.setText(tr("Compress with g&zip"));
if (cap_file_->iscompressed && wtap_dump_can_compress(default_ft_)) {
@@ -581,7 +520,6 @@ int CaptureFileDialog::open(QString &file_name, unsigned int &type) {
addFormatTypeSelector(left_v_box_);
addDisplayFilterEdit();
- addResolutionControls(left_v_box_);
addPreview(right_v_box_);
addHelpButton(HELP_OPEN_DIALOG);
@@ -599,11 +537,6 @@ int CaptureFileDialog::open(QString &file_name, unsigned int &type) {
type = format_type_.currentIndex();
display_filter_.append(display_filter_edit_->text());
- gbl_resolv_flags.mac_name = mac_res_.isChecked();
- gbl_resolv_flags.transport_name = transport_res_.isChecked();
- gbl_resolv_flags.network_name = network_res_.isChecked();
- gbl_resolv_flags.use_external_net_name_resolver = external_res_.isChecked();
-
return QDialog::Accepted;
} else {
return QDialog::Rejected;
@@ -774,11 +707,9 @@ void CaptureFileDialog::preview(const QString & path)
lbl->setEnabled(false);
}
- preview_format_.setText(tr("-"));
- preview_size_.setText(tr("-"));
- preview_packets_.setText(tr("-"));
- preview_first_.setText(tr("-"));
- preview_elapsed_.setText(tr("-"));
+ preview_format_.setText(tr(UTF8_EM_DASH));
+ preview_size_.setText(tr(UTF8_EM_DASH));
+ preview_first_elapsed_.setText(tr(UTF8_EM_DASH));
if (path.length() < 1) {
return;
@@ -808,7 +739,9 @@ void CaptureFileDialog::preview(const QString & path)
preview_format_.setText(QString::fromUtf8(wtap_file_type_subtype_string(wtap_file_type_subtype(wth))));
// Size
- preview_size_.setText(QString(tr("%1 bytes")).arg(wtap_file_size(wth, &err)));
+ gint64 filesize = wtap_file_size(wth, &err);
+ // Finder and Windows Explorer use IEC. What do the various Linux file managers use?
+ QString size_str = format_size(filesize, format_size_unit_bytes|format_size_prefix_iec);
time(&time_preview);
while ((wtap_read(wth, &err, &err_info, &data_offset))) {
@@ -837,22 +770,26 @@ void CaptureFileDialog::preview(const QString & path)
}
if(err != 0) {
- preview_packets_.setText(QString(tr("error after reading %1 packets")).arg(packets));
+ preview_size_.setText(QString(tr("%1, error after %2 packets"))
+ .arg(size_str).arg(packets));
return;
}
// Packet count
if(timed_out) {
- preview_packets_.setText(QString(tr("more than %1 (preview timeout)")).arg(packets));
+ preview_size_.setText(QString(tr("%1, timed out at %2 packets"))
+ .arg(size_str).arg(packets));
} else {
- preview_packets_.setText(QString("%1").arg(packets));
+ preview_size_.setText(QString("%1, %2 packets")
+ .arg(size_str).arg(packets));
}
- // First packet
+ // First packet + elapsed time
ti_time = (long)start_time;
ti_tm = localtime(&ti_time);
+ QString first_elapsed = "?";
if(ti_tm) {
- preview_first_.setText(QString().sprintf(
+ first_elapsed = QString().sprintf(
"%04d-%02d-%02d %02d:%02d:%02d",
ti_tm->tm_year + 1900,
ti_tm->tm_mon + 1,
@@ -860,22 +797,22 @@ void CaptureFileDialog::preview(const QString & path)
ti_tm->tm_hour,
ti_tm->tm_min,
ti_tm->tm_sec
- ));
- } else {
- preview_first_.setText(tr("?"));
+ );
}
// Elapsed time
+ first_elapsed += " / ";
elapsed_time = (unsigned int)(stop_time-start_time);
if(timed_out) {
- preview_elapsed_.setText(tr("unknown"));
+ first_elapsed += tr("unknown");
} else if(elapsed_time/86400) {
- preview_elapsed_.setText(QString().sprintf("%02u days %02u:%02u:%02u",
- elapsed_time/86400, elapsed_time%86400/3600, elapsed_time%3600/60, elapsed_time%60));
+ first_elapsed += QString().sprintf("%02u days %02u:%02u:%02u",
+ elapsed_time/86400, elapsed_time%86400/3600, elapsed_time%3600/60, elapsed_time%60);
} else {
- preview_elapsed_.setText(QString().sprintf("%02u:%02u:%02u",
- elapsed_time%86400/3600, elapsed_time%3600/60, elapsed_time%60));
+ first_elapsed += QString().sprintf("%02u:%02u:%02u",
+ elapsed_time%86400/3600, elapsed_time%3600/60, elapsed_time%60);
}
+ preview_first_elapsed_.setText(first_elapsed);
wtap_close(wth);
}
diff --git a/ui/qt/capture_file_dialog.h b/ui/qt/capture_file_dialog.h
index bc3be567cc..9dd95c47a3 100644
--- a/ui/qt/capture_file_dialog.h
+++ b/ui/qt/capture_file_dialog.h
@@ -101,9 +101,7 @@ private:
QLabel preview_format_;
QLabel preview_size_;
- QLabel preview_packets_;
- QLabel preview_first_;
- QLabel preview_elapsed_;
+ QLabel preview_first_elapsed_;
QList<QLabel *> preview_labels_;
QRadioButton merge_prepend_;
@@ -113,7 +111,6 @@ private:
QComboBox format_type_;
QHash<QString, int>type_hash_;
- void addResolutionControls(QVBoxLayout &v_box);
void addGzipControls(QVBoxLayout &v_box);
void addRangeControls(QVBoxLayout &v_box, packet_range_t *range);
QDialogButtonBox *addHelpButton(topic_action_e help_topic);
@@ -122,11 +119,6 @@ private:
int default_ft_;
- QCheckBox mac_res_;
- QCheckBox transport_res_;
- QCheckBox network_res_;
- QCheckBox external_res_;
-
QCheckBox compress_;
PacketRangeGroupBox packet_range_group_box_;
diff --git a/ui/win32/file_dlg_win32.c b/ui/win32/file_dlg_win32.c
index 90aa684dae..ab4c92bfa7 100644
--- a/ui/win32/file_dlg_win32.c
+++ b/ui/win32/file_dlg_win32.c
@@ -38,7 +38,6 @@
#include "wsutil/unicode-utils.h"
#include "wsutil/filesystem.h"
-#include "epan/addr_resolv.h"
#include "epan/prefs.h"
#include "epan/color_filters.h"
@@ -1121,9 +1120,11 @@ preview_set_file_info(HWND of_hwnd, gchar *preview_file) {
int err = 0;
gchar *err_info;
TCHAR string_buff[PREVIEW_STR_MAX];
+ TCHAR first_buff[PREVIEW_STR_MAX];
gint64 data_offset;
guint packet = 0;
gint64 filesize;
+ gchar *size_str;
time_t ti_time;
struct tm *ti_tm;
guint elapsed_time;
@@ -1134,14 +1135,14 @@ preview_set_file_info(HWND of_hwnd, gchar *preview_file) {
double cur_time;
gboolean is_breaked = FALSE;
- for (i = EWFD_PTX_FORMAT; i <= EWFD_PTX_ELAPSED; i++) {
+ for (i = EWFD_PTX_FORMAT; i <= EWFD_PTX_START_ELAPSED; i++) {
cur_ctrl = GetDlgItem(of_hwnd, i);
if (cur_ctrl) {
EnableWindow(cur_ctrl, FALSE);
}
}
- for (i = EWFD_PTX_FORMAT; i <= EWFD_PTX_ELAPSED; i++) {
+ for (i = EWFD_PTX_FORMAT; i <= EWFD_PTX_START_ELAPSED; i++) {
cur_ctrl = GetDlgItem(of_hwnd, i);
if (cur_ctrl) {
SetWindowText(cur_ctrl, _T("-"));
@@ -1170,7 +1171,7 @@ preview_set_file_info(HWND of_hwnd, gchar *preview_file) {
}
/* Success! */
- for (i = EWFD_PT_FORMAT; i <= EWFD_PTX_ELAPSED; i++) {
+ for (i = EWFD_PT_FORMAT; i <= EWFD_PTX_START_ELAPSED; i++) {
cur_ctrl = GetDlgItem(of_hwnd, i);
if (cur_ctrl) {
EnableWindow(cur_ctrl, TRUE);
@@ -1183,9 +1184,8 @@ preview_set_file_info(HWND of_hwnd, gchar *preview_file) {
/* Size */
filesize = wtap_file_size(wth, &err);
- utf_8to16_snprintf(string_buff, PREVIEW_STR_MAX, "%" G_GINT64_FORMAT " bytes", filesize);
- cur_ctrl = GetDlgItem(of_hwnd, EWFD_PTX_SIZE);
- SetWindowText(cur_ctrl, string_buff);
+ // Windows Explorer uses IEC.
+ size_str = format_size(filesize, format_size_unit_bytes|format_size_prefix_iec);
time(&time_preview);
while ( (wtap_read(wth, &err, &err_info, &data_offset)) ) {
@@ -1212,8 +1212,10 @@ preview_set_file_info(HWND of_hwnd, gchar *preview_file) {
}
if(err != 0) {
- StringCchPrintf(string_buff, PREVIEW_STR_MAX, _T("error after reading %u packets"), packet);
- cur_ctrl = GetDlgItem(of_hwnd, EWFD_PTX_PACKETS);
+ utf_8to16_snprintf(string_buff, PREVIEW_STR_MAX, "%s, error after %u packets",
+ size_str, packet);
+ g_free(size_str);
+ cur_ctrl = GetDlgItem(of_hwnd, EWFD_PTX_SIZE);
SetWindowText(cur_ctrl, string_buff);
wtap_close(wth);
return TRUE;
@@ -1221,18 +1223,21 @@ preview_set_file_info(HWND of_hwnd, gchar *preview_file) {
/* Packets */
if(is_breaked) {
- StringCchPrintf(string_buff, PREVIEW_STR_MAX, _T("more than %u packets (preview timeout)"), packet);
+ utf_8to16_snprintf(string_buff, PREVIEW_STR_MAX, "%s, timed out at %u packets",
+ size_str, packet);
} else {
- StringCchPrintf(string_buff, PREVIEW_STR_MAX, _T("%u"), packet);
+ utf_8to16_snprintf(string_buff, PREVIEW_STR_MAX, "%s, %u packets",
+ size_str, packet);
}
- cur_ctrl = GetDlgItem(of_hwnd, EWFD_PTX_PACKETS);
+ g_free(size_str);
+ cur_ctrl = GetDlgItem(of_hwnd, EWFD_PTX_SIZE);
SetWindowText(cur_ctrl, string_buff);
- /* First packet */
+ /* First packet / elapsed time */
ti_time = (long)start_time;
ti_tm = localtime( &ti_time );
if(ti_tm) {
- StringCchPrintf(string_buff, PREVIEW_STR_MAX,
+ StringCchPrintf(first_buff, PREVIEW_STR_MAX,
_T("%04d-%02d-%02d %02d:%02d:%02d"),
ti_tm->tm_year + 1900,
ti_tm->tm_mon + 1,
@@ -1241,24 +1246,21 @@ preview_set_file_info(HWND of_hwnd, gchar *preview_file) {
ti_tm->tm_min,
ti_tm->tm_sec);
} else {
- StringCchPrintf(string_buff, PREVIEW_STR_MAX, _T("?"));
+ StringCchPrintf(first_buff, PREVIEW_STR_MAX, _T("?"));
}
- cur_ctrl = GetDlgItem(of_hwnd, EWFD_PTX_FIRST_PKT);
- SetWindowText(cur_ctrl, string_buff);
- /* Elapsed time */
elapsed_time = (unsigned int)(stop_time-start_time);
if(elapsed_time/86400) {
- StringCchPrintf(string_buff, PREVIEW_STR_MAX, _T("%02u days %02u:%02u:%02u"),
- elapsed_time/86400, elapsed_time%86400/3600, elapsed_time%3600/60, elapsed_time%60);
+ StringCchPrintf(string_buff, PREVIEW_STR_MAX, _T("%s / %02u days %02u:%02u:%02u"),
+ first_buff, elapsed_time/86400, elapsed_time%86400/3600, elapsed_time%3600/60, elapsed_time%60);
} else {
- StringCchPrintf(string_buff, PREVIEW_STR_MAX, _T("%02u:%02u:%02u"),
- elapsed_time%86400/3600, elapsed_time%3600/60, elapsed_time%60);
+ StringCchPrintf(string_buff, PREVIEW_STR_MAX, _T("%s / %02u:%02u:%02u"),
+ first_buff, elapsed_time%86400/3600, elapsed_time%3600/60, elapsed_time%60);
}
if(is_breaked) {
- StringCchPrintf(string_buff, PREVIEW_STR_MAX, _T("unknown"));
+ StringCchPrintf(string_buff, PREVIEW_STR_MAX, _T("%s / unknown"), first_buff);
}
- cur_ctrl = GetDlgItem(of_hwnd, EWFD_PTX_ELAPSED);
+ cur_ctrl = GetDlgItem(of_hwnd, EWFD_PTX_START_ELAPSED);
SetWindowText(cur_ctrl, string_buff);
wtap_close(wth);
@@ -1349,22 +1351,12 @@ open_file_hook_proc(HWND of_hwnd, UINT msg, WPARAM w_param, LPARAM l_param) {
}
cur_ctrl = GetDlgItem(of_hwnd, EWFD_FORMAT_TYPE);
- SendMessage(cur_ctrl, CB_ADDSTRING, 0, (WPARAM) _T("Automatic"));
+ SendMessage(cur_ctrl, CB_ADDSTRING, 0, (WPARAM) _T("Automatically detect file type"));
for (i = 0; open_routines[i].name != NULL; i += 1) {
SendMessage(cur_ctrl, CB_ADDSTRING, 0, (WPARAM) utf_8to16(open_routines[i].name));
}
SendMessage(cur_ctrl, CB_SETCURSEL, 0, 0);
- /* Fill in our resolution values */
- cur_ctrl = GetDlgItem(of_hwnd, EWFD_MAC_NR_CB);
- SendMessage(cur_ctrl, BM_SETCHECK, gbl_resolv_flags.mac_name, 0);
- cur_ctrl = GetDlgItem(of_hwnd, EWFD_NET_NR_CB);
- SendMessage(cur_ctrl, BM_SETCHECK, gbl_resolv_flags.network_name, 0);
- cur_ctrl = GetDlgItem(of_hwnd, EWFD_TRANS_NR_CB);
- SendMessage(cur_ctrl, BM_SETCHECK, gbl_resolv_flags.transport_name, 0);
- cur_ctrl = GetDlgItem(of_hwnd, EWFD_EXTERNAL_NR_CB);
- SendMessage(cur_ctrl, BM_SETCHECK, gbl_resolv_flags.use_external_net_name_resolver, 0);
-
preview_set_file_info(of_hwnd, NULL);
break;
case WM_NOTIFY:
@@ -1379,19 +1371,6 @@ open_file_hook_proc(HWND of_hwnd, UINT msg, WPARAM w_param, LPARAM l_param) {
cur_ctrl = GetDlgItem(of_hwnd, EWFD_FORMAT_TYPE);
g_format_type = (unsigned int) SendMessage(cur_ctrl, CB_GETCURSEL, 0, 0);
- /* Fetch our resolution values */
- cur_ctrl = GetDlgItem(of_hwnd, EWFD_MAC_NR_CB);
- if (SendMessage(cur_ctrl, BM_GETCHECK, 0, 0) == BST_CHECKED)
- gbl_resolv_flags.mac_name = TRUE;
- cur_ctrl = GetDlgItem(of_hwnd, EWFD_NET_NR_CB);
- if (SendMessage(cur_ctrl, BM_GETCHECK, 0, 0) == BST_CHECKED)
- gbl_resolv_flags.network_name = TRUE;
- cur_ctrl = GetDlgItem(of_hwnd, EWFD_TRANS_NR_CB);
- if (SendMessage(cur_ctrl, BM_GETCHECK, 0, 0) == BST_CHECKED)
- gbl_resolv_flags.transport_name = TRUE;
- cur_ctrl = GetDlgItem(of_hwnd, EWFD_EXTERNAL_NR_CB);
- if (SendMessage(cur_ctrl, BM_GETCHECK, 0, 0) == BST_CHECKED)
- gbl_resolv_flags.use_external_net_name_resolver = TRUE;
break;
case CDN_SELCHANGE:
/* This _almost_ works correctly. We need to handle directory
diff --git a/ui/win32/file_dlg_win32.h b/ui/win32/file_dlg_win32.h
index f26c1e6951..16f4bb5780 100644
--- a/ui/win32/file_dlg_win32.h
+++ b/ui/win32/file_dlg_win32.h
@@ -156,19 +156,15 @@ void file_set_save_marked_sensitive();
/* Note: The preview title (PT) and text (PTX) MUST have sequential IDs;
they're used in a for loop. EWFD_PT_FILENAME MUST be first, and
EWFD_PTX_ELAPSED MUST be last. (so why don't we just use an enum? */
-#define EWFD_PT_FORMAT 1006
-#define EWFD_PT_SIZE 1007
-#define EWFD_PT_PACKETS 1008
-#define EWFD_PT_FIRST_PKT 1009
-#define EWFD_PT_ELAPSED 1010
-
-#define EWFD_PTX_FORMAT 1011
-#define EWFD_PTX_SIZE 1012
-#define EWFD_PTX_PACKETS 1013
-#define EWFD_PTX_FIRST_PKT 1014
-#define EWFD_PTX_ELAPSED 1015
-
-#define EWFD_FORMAT_TYPE 1016
+#define EWFD_PT_FORMAT 1006
+#define EWFD_PT_SIZE 1007
+#define EWFD_PT_START_ELAPSED 1008
+
+#define EWFD_PTX_FORMAT 1009
+#define EWFD_PTX_SIZE 1010
+#define EWFD_PTX_START_ELAPSED 1011
+
+#define EWFD_FORMAT_TYPE 1020
/* Save as and export dialog defines */
#define EWFD_GZIP_CB 1040