summaryrefslogtreecommitdiff
path: root/ui/qt/capture_file_dialog.cpp
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 /ui/qt/capture_file_dialog.cpp
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>
Diffstat (limited to 'ui/qt/capture_file_dialog.cpp')
-rw-r--r--ui/qt/capture_file_dialog.cpp125
1 files changed, 31 insertions, 94 deletions
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);
}