summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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