diff options
author | Gerald Combs <gerald@zing.org> | 2014-12-21 13:23:02 -0800 |
---|---|---|
committer | Gerald Combs <gerald@wireshark.org> | 2014-12-22 18:12:31 +0000 |
commit | 5cdad9fe423662e2aea3d63540cd19b7e518b7c3 (patch) | |
tree | 16deed9efb4df400a81b564ec1aa5d9f5b1c9c61 /ui/qt/conversation_dialog.cpp | |
parent | 30c3d394adbf8deff83854f01dc1082db9cac598 (diff) | |
download | wireshark-5cdad9fe423662e2aea3d63540cd19b7e518b7c3.tar.gz |
Qt: Add methods to CaptureFile and WiresharkApplication.
Add isValid, fileTitle, and retapPackets methods to CaptureFile. Add
application name and title separator convenience methods to
WiresharkApplication.
Convert traffic tables, conversations, and endpoints to use CaptureFile
directly and to let the user know when the capture file is closed. Set
the file dialog titles while we're here.
Change-Id: I990392786d3833e1e0b3638aa2d34a5ada39fa13
Reviewed-on: https://code.wireshark.org/review/5957
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Diffstat (limited to 'ui/qt/conversation_dialog.cpp')
-rw-r--r-- | ui/qt/conversation_dialog.cpp | 48 |
1 files changed, 23 insertions, 25 deletions
diff --git a/ui/qt/conversation_dialog.cpp b/ui/qt/conversation_dialog.cpp index cf03f46e70..ad49ebce2c 100644 --- a/ui/qt/conversation_dialog.cpp +++ b/ui/qt/conversation_dialog.cpp @@ -57,7 +57,7 @@ // - Misleading bps calculation https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8703 const QString table_name_ = QObject::tr("Conversation"); -ConversationDialog::ConversationDialog(QWidget *parent, capture_file *cf, int cli_proto_id, const char *filter) : +ConversationDialog::ConversationDialog(QWidget *parent, CaptureFile &cf, int cli_proto_id, const char *filter) : TrafficTableDialog(parent, cf, filter, table_name_) { follow_bt_ = buttonBox()->addButton(tr("Follow Stream..."), QDialogButtonBox::ActionRole); @@ -96,9 +96,7 @@ ConversationDialog::ConversationDialog(QWidget *parent, capture_file *cf, int cl updateWidgets(); itemSelectionChanged(); - if (cap_file_) { - cf_retap_packets(cap_file_); - } + cap_file_.retapPackets(); } ConversationDialog::~ConversationDialog() @@ -120,21 +118,21 @@ ConversationDialog::~ConversationDialog() } } -void ConversationDialog::setCaptureFile(capture_file *cf) +void ConversationDialog::captureFileClosing() { - if (!cf) { // We only want to know when the file closes. - cap_file_ = NULL; - for (int i = 0; i < trafficTableTabWidget()->count(); i++) { - ConversationTreeWidget *cur_tree = qobject_cast<ConversationTreeWidget *>(trafficTableTabWidget()->widget(i)); - remove_tap_listener(cur_tree->trafficTreeHash()); - disconnect(cur_tree, SIGNAL(filterAction(QString&,FilterAction::Action,FilterAction::ActionType)), - this, SIGNAL(filterAction(QString&,FilterAction::Action,FilterAction::ActionType))); - } - displayFilterCheckBox()->setEnabled(false); - enabledTypesPushButton()->setEnabled(false); - follow_bt_->setEnabled(false); - graph_bt_->setEnabled(false); - } + // Keep the dialog around but disable any controls that depend + // on a live capture file. + for (int i = 0; i < trafficTableTabWidget()->count(); i++) { + ConversationTreeWidget *cur_tree = qobject_cast<ConversationTreeWidget *>(trafficTableTabWidget()->widget(i)); + remove_tap_listener(cur_tree->trafficTreeHash()); + disconnect(cur_tree, SIGNAL(filterAction(QString&,FilterAction::Action,FilterAction::ActionType)), + this, SIGNAL(filterAction(QString&,FilterAction::Action,FilterAction::ActionType))); + } + displayFilterCheckBox()->setEnabled(false); + enabledTypesPushButton()->setEnabled(false); + follow_bt_->setEnabled(false); + graph_bt_->setEnabled(false); + TrafficTableDialog::captureFileClosing(); } bool ConversationDialog::addTrafficTable(register_ct_t* table) @@ -165,7 +163,7 @@ bool ConversationDialog::addTrafficTable(register_ct_t* table) QByteArray filter_utf8; const char *filter = NULL; if (displayFilterCheckBox()->isChecked()) { - filter = cap_file_->dfilter; + filter = cap_file_.capFile()->dfilter; } else if (!filter_.isEmpty()) { filter_utf8 = filter_.toUtf8(); filter = filter_utf8.constData(); @@ -200,7 +198,7 @@ conv_item_t *ConversationDialog::currentConversation() void ConversationDialog::followStream() { - if (!cap_file_) { + if (read_only_) { return; } @@ -233,7 +231,7 @@ void ConversationDialog::followStream() void ConversationDialog::graphTcp() { - if (!cap_file_) { + if (read_only_) { return; } @@ -261,7 +259,7 @@ void ConversationDialog::itemSelectionChanged() bool follow_enable = false, graph_enable = false; conv_item_t *conv_item = currentConversation(); - if (cap_file_ && conv_item) { + if (!read_only_ && conv_item) { switch (conv_item->ptype) { case PT_TCP: graph_enable = true; @@ -287,14 +285,14 @@ void ConversationDialog::on_nameResolutionCheckBox_toggled(bool checked) void ConversationDialog::on_displayFilterCheckBox_toggled(bool checked) { - if (!cap_file_) { + if (read_only_) { return; } QByteArray filter_utf8; const char *filter = NULL; if (checked) { - filter = cap_file_->dfilter; + filter = cap_file_.capFile()->dfilter; } else if (!filter_.isEmpty()) { filter_utf8 = filter_.toUtf8(); filter = filter_utf8.constData(); @@ -304,7 +302,7 @@ void ConversationDialog::on_displayFilterCheckBox_toggled(bool checked) set_tap_dfilter(trafficTableTabWidget()->widget(i), filter); } - cf_retap_packets(cap_file_); + cap_file_.retapPackets(); } void ConversationDialog::on_buttonBox_helpRequested() |