diff options
author | John Thacker <johnthacker@gmail.com> | 2023-05-05 16:58:35 -0400 |
---|---|---|
committer | Gerald Combs <gerald@wireshark.org> | 2023-05-06 01:08:44 +0000 |
commit | 5bc94bc02a9f006a5eec504506a147f48d3101eb (patch) | |
tree | 3c451998ae8c1910113bff5cf337596a3c8fa2c6 | |
parent | f5c4dcbbf9b4db1a6f06aa00eee69fb0df1eb73c (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.cpp | 8 | ||||
-rw-r--r-- | ui/qt/traffic_table_dialog.h | 2 |
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; |