aboutsummaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2018-01-29 09:42:08 -0800
committerAnders Broman <a.broman58@gmail.com>2018-01-30 17:17:19 +0000
commit461fb517d1f75f607eb3cb670b87754bc24b82ca (patch)
treea2f54ce589e92bb011f2d62aa3ecfe22b302cccb /ui
parent709757e996b88aa2995c65e7030d5fd440078ef8 (diff)
Qt: Check for a valid capture file in the status bar.
Rearrange the logic in showCaptureStatistics. Fixes a crash here when capturing from stdin. Change-Id: I7ec15a556579afe968a06a36d7914aa1631666df Reviewed-on: https://code.wireshark.org/review/25507 Reviewed-by: Gerald Combs <gerald@wireshark.org> Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'ui')
-rw-r--r--ui/qt/main_status_bar.cpp103
1 files changed, 54 insertions, 49 deletions
diff --git a/ui/qt/main_status_bar.cpp b/ui/qt/main_status_bar.cpp
index 6ff9b1e082..3e2767f0f9 100644
--- a/ui/qt/main_status_bar.cpp
+++ b/ui/qt/main_status_bar.cpp
@@ -36,6 +36,9 @@
#include <QSplitter>
#include <QToolButton>
+// To do:
+// - Use the CaptureFile class.
+
// XXX - The GTK+ code assigns priorities to these and pushes/pops accordingly.
enum StatusContext {
@@ -435,59 +438,61 @@ void MainStatusBar::showCaptureStatistics()
QString packets_str;
#ifdef HAVE_LIBPCAP
- /* Do we have any packets? */
- if (cs_fixed_ && cs_count_ > 0) {
- if (prefs.gui_qt_show_selected_packet && cap_file_->current_frame) {
- packets_str.append(QString(tr("Selected Packet: %1 %2 "))
- .arg(cap_file_->current_frame->num)
- .arg(UTF8_MIDDLE_DOT));
- }
- packets_str.append(QString(tr("Packets: %1"))
- .arg(cs_count_));
- } else if (cap_file_ && cs_count_ > 0) {
- if (prefs.gui_qt_show_selected_packet && cap_file_->current_frame) {
- packets_str.append(QString(tr("Selected Packet: %1 %2 "))
- .arg(cap_file_->current_frame->num)
- .arg(UTF8_MIDDLE_DOT));
- }
- packets_str.append(QString(tr("Packets: %1 %4 Displayed: %2 (%3%)"))
- .arg(cap_file_->count)
- .arg(cap_file_->displayed_count)
- .arg((100.0*cap_file_->displayed_count)/cap_file_->count, 0, 'f', 1)
- .arg(UTF8_MIDDLE_DOT));
- if(cap_file_->marked_count > 0) {
- packets_str.append(QString(tr(" %1 Marked: %2 (%3%)"))
- .arg(UTF8_MIDDLE_DOT)
- .arg(cap_file_->marked_count)
- .arg((100.0*cap_file_->marked_count)/cap_file_->count, 0, 'f', 1));
- }
- if(cap_file_->drops_known) {
- packets_str.append(QString(tr(" %1 Dropped: %2 (%3%)"))
- .arg(UTF8_MIDDLE_DOT)
- .arg(cap_file_->drops)
- .arg((100.0*cap_file_->drops)/cap_file_->count, 0, 'f', 1));
- }
- if(cap_file_->ignored_count > 0) {
- packets_str.append(QString(tr(" %1 Ignored: %2 (%3%)"))
- .arg(UTF8_MIDDLE_DOT)
- .arg(cap_file_->ignored_count)
- .arg((100.0*cap_file_->ignored_count)/cap_file_->count, 0, 'f', 1));
- }
- if(prefs.gui_qt_show_file_load_time && !cap_file_->is_tempfile) {
- /* Loading an existing file */
- gulong computed_elapsed = cf_get_computed_elapsed(cap_file_);
- packets_str.append(QString(tr(" %1 Load time: %2:%3.%4"))
- .arg(UTF8_MIDDLE_DOT)
- .arg(computed_elapsed/60000)
- .arg(computed_elapsed%60000/1000)
- .arg(computed_elapsed%1000));
+ if (cap_file_) {
+ /* Do we have any packets? */
+ if (cs_fixed_ && cs_count_ > 0) {
+ if (prefs.gui_qt_show_selected_packet && cap_file_->current_frame) {
+ packets_str.append(QString(tr("Selected Packet: %1 %2 "))
+ .arg(cap_file_->current_frame->num)
+ .arg(UTF8_MIDDLE_DOT));
+ }
+ packets_str.append(QString(tr("Packets: %1"))
+ .arg(cs_count_));
+ } else if (cs_count_ > 0) {
+ if (prefs.gui_qt_show_selected_packet && cap_file_->current_frame) {
+ packets_str.append(QString(tr("Selected Packet: %1 %2 "))
+ .arg(cap_file_->current_frame->num)
+ .arg(UTF8_MIDDLE_DOT));
+ }
+ packets_str.append(QString(tr("Packets: %1 %4 Displayed: %2 (%3%)"))
+ .arg(cap_file_->count)
+ .arg(cap_file_->displayed_count)
+ .arg((100.0*cap_file_->displayed_count)/cap_file_->count, 0, 'f', 1)
+ .arg(UTF8_MIDDLE_DOT));
+ if(cap_file_->marked_count > 0) {
+ packets_str.append(QString(tr(" %1 Marked: %2 (%3%)"))
+ .arg(UTF8_MIDDLE_DOT)
+ .arg(cap_file_->marked_count)
+ .arg((100.0*cap_file_->marked_count)/cap_file_->count, 0, 'f', 1));
+ }
+ if(cap_file_->drops_known) {
+ packets_str.append(QString(tr(" %1 Dropped: %2 (%3%)"))
+ .arg(UTF8_MIDDLE_DOT)
+ .arg(cap_file_->drops)
+ .arg((100.0*cap_file_->drops)/cap_file_->count, 0, 'f', 1));
+ }
+ if(cap_file_->ignored_count > 0) {
+ packets_str.append(QString(tr(" %1 Ignored: %2 (%3%)"))
+ .arg(UTF8_MIDDLE_DOT)
+ .arg(cap_file_->ignored_count)
+ .arg((100.0*cap_file_->ignored_count)/cap_file_->count, 0, 'f', 1));
+ }
+ if(prefs.gui_qt_show_file_load_time && !cap_file_->is_tempfile) {
+ /* Loading an existing file */
+ gulong computed_elapsed = cf_get_computed_elapsed(cap_file_);
+ packets_str.append(QString(tr(" %1 Load time: %2:%3.%4"))
+ .arg(UTF8_MIDDLE_DOT)
+ .arg(computed_elapsed/60000)
+ .arg(computed_elapsed%60000/1000)
+ .arg(computed_elapsed%1000));
+ }
}
- } else
+ }
#endif // HAVE_LIBPCAP
- {
+
+ if (packets_str.isEmpty()) {
packets_str = tr("No Packets");
}
-
popPacketStatus();
pushPacketStatus(packets_str);
}