aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Thacker <johnthacker@gmail.com>2023-05-05 16:58:35 -0400
committerGerald Combs <gerald@wireshark.org>2023-05-06 01:08:44 +0000
commit5bc94bc02a9f006a5eec504506a147f48d3101eb (patch)
tree3c451998ae8c1910113bff5cf337596a3c8fa2c6
parentf5c4dcbbf9b4db1a6f06aa00eee69fb0df1eb73c (diff)
Qt: Avoid an unnecessary retap when creating Conversations dialog
Don't use the automatic connections set up by Qt but manually connect the display filter checkbox signal to the slot. This enables us to initialize the checkbox and filter without calling the slot and retapping the packets. There is always a delayed retap triggered in the Conversations or Endpoints dialog constructor. We don't want to do an extra retap of the packets before the dialog appears if the main display filter is set. Related to #18292
-rw-r--r--ui/qt/traffic_table_dialog.cpp8
-rw-r--r--ui/qt/traffic_table_dialog.h2
2 files changed, 7 insertions, 3 deletions
diff --git a/ui/qt/traffic_table_dialog.cpp b/ui/qt/traffic_table_dialog.cpp
index 8ad832faf8..2040eedf25 100644
--- a/ui/qt/traffic_table_dialog.cpp
+++ b/ui/qt/traffic_table_dialog.cpp
@@ -49,10 +49,14 @@ TrafficTableDialog::TrafficTableDialog(QWidget &parent, CaptureFile &cf, const Q
copy_bt_ = buttonBox()->addButton(tr("Copy"), QDialogButtonBox::ActionRole);
copy_bt_->setMenu(ui->trafficTab->createCopyMenu(copy_bt_));
- ui->displayFilterCheckBox->setChecked(cf.displayFilter().length() > 0);
+ if (cf.displayFilter().length() > 0) {
+ ui->displayFilterCheckBox->setChecked(true);
+ ui->trafficTab->setFilter(cf.displayFilter());
+ }
ui->trafficTab->setFocus();
ui->trafficTab->useNanosecondTimestamps(cf.timestampPrecision() == WTAP_TSPREC_NSEC);
+ connect(ui->displayFilterCheckBox, &QCheckBox::toggled, this, &TrafficTableDialog::displayFilterCheckBoxToggled);
connect(ui->trafficList, &TrafficTypesList::protocolsChanged, ui->trafficTab, &TrafficTab::setOpenTabs);
connect(ui->trafficTab, &TrafficTab::tabsChanged, ui->trafficList, &TrafficTypesList::selectProtocols);
@@ -125,7 +129,7 @@ void TrafficTableDialog::on_nameResolutionCheckBox_toggled(bool checked)
ui->trafficTab->setNameResolution(checked);
}
-void TrafficTableDialog::on_displayFilterCheckBox_toggled(bool checked)
+void TrafficTableDialog::displayFilterCheckBoxToggled(bool checked)
{
if (!cap_file_.isValid()) {
return;
diff --git a/ui/qt/traffic_table_dialog.h b/ui/qt/traffic_table_dialog.h
index 9cb2bad2fc..b742a52c09 100644
--- a/ui/qt/traffic_table_dialog.h
+++ b/ui/qt/traffic_table_dialog.h
@@ -75,7 +75,7 @@ protected slots:
private slots:
void on_nameResolutionCheckBox_toggled(bool checked);
- void on_displayFilterCheckBox_toggled(bool checked);
+ void displayFilterCheckBoxToggled(bool checked);
void captureEvent(CaptureEvent e);
virtual void on_buttonBox_helpRequested() = 0;