diff options
author | Patryk Nowak <patryk.nowak@tieto.com> | 2017-04-03 13:07:04 +0200 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2017-04-04 01:59:32 +0000 |
commit | 03f372fd8b1512df3d499e1c5d292f9aaf5c8fa4 (patch) | |
tree | 92790cf9159d8008cad51694fb9d5c368038f114 /ui/qt | |
parent | bf524d95f3c4a642a00d3e322d771d33c592fa8c (diff) |
Qt/Bluetooth: add results filter in HCI Summary window
Add ability to display only these HCI commands whose names match specified
filter. Currently only simple filtering is implemented (substring search,
no regex-matching).
Change-Id: I418d3d2d3e7a3b196d5ba05496d31c508e842dec
Reviewed-on: https://code.wireshark.org/review/20880
Reviewed-by: Michal Labedzki <michal.labedzki@wireshark.org>
Petri-Dish: Michal Labedzki <michal.labedzki@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'ui/qt')
-rw-r--r-- | ui/qt/bluetooth_hci_summary_dialog.cpp | 20 | ||||
-rw-r--r-- | ui/qt/bluetooth_hci_summary_dialog.h | 1 | ||||
-rw-r--r-- | ui/qt/bluetooth_hci_summary_dialog.ui | 17 |
3 files changed, 38 insertions, 0 deletions
diff --git a/ui/qt/bluetooth_hci_summary_dialog.cpp b/ui/qt/bluetooth_hci_summary_dialog.cpp index cd05e3d745..4c877c6a6d 100644 --- a/ui/qt/bluetooth_hci_summary_dialog.cpp +++ b/ui/qt/bluetooth_hci_summary_dialog.cpp @@ -110,6 +110,7 @@ BluetoothHciSummaryDialog::BluetoothHciSummaryDialog(QWidget &parent, CaptureFil connect(ui->interfaceComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(interfaceCurrentIndexChanged(int))); connect(ui->adapterComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(adapterCurrentIndexChanged(int))); connect(ui->displayFilterLineEdit, SIGNAL(returnPressed()), this, SLOT(displayFilterLineEditAccepted())); + connect(ui->resultsFilterLineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(resultsFilterLineEditChanged(const QString &))); for (int i = 0; i < ui->tableTreeWidget->columnCount(); i++) { ui->tableTreeWidget->resizeColumnToContents(i); @@ -450,6 +451,7 @@ gboolean BluetoothHciSummaryDialog::tapPacket(void *tapinfo_ptr, packet_info *pi item->setText(column_number_occurrence, "1"); main_item->addChild(item); + item->setHidden(!name.contains(dialog->ui->resultsFilterLineEdit->text(), Qt::CaseInsensitive)); main_item->sortChildren(column_number_opcode, Qt::AscendingOrder); main_item->setText(column_number_occurrence, QString::number(main_item->text(column_number_occurrence).toInt() + 1)); @@ -502,6 +504,7 @@ gboolean BluetoothHciSummaryDialog::tapPacket(void *tapinfo_ptr, packet_info *pi item->setText(column_number_occurrence, QString::number(0)); main_item->addChild(item); + item->setHidden(!name.contains(dialog->ui->resultsFilterLineEdit->text(), Qt::CaseInsensitive)); main_item->sortChildren(column_number_event, Qt::AscendingOrder); main_item->setText(column_number_occurrence, QString::number(main_item->text(column_number_occurrence).toInt() + 1)); } @@ -640,6 +643,7 @@ gboolean BluetoothHciSummaryDialog::tapPacket(void *tapinfo_ptr, packet_info *pi item->setText(column_number_status, QString("").sprintf("0x%02X", tap_hci->status)); main_item->addChild(item); + item->setHidden(!name.contains(dialog->ui->resultsFilterLineEdit->text(), Qt::CaseInsensitive)); main_item->sortChildren(column_number_event, Qt::AscendingOrder); main_item->setText(column_number_occurrence, QString::number(main_item->text(column_number_occurrence).toInt() + 1)); } @@ -674,6 +678,7 @@ gboolean BluetoothHciSummaryDialog::tapPacket(void *tapinfo_ptr, packet_info *pi item->setText(column_number_status, QString("").sprintf("%u", tap_hci->status)); main_item->addChild(item); + item->setHidden(!name.contains(dialog->ui->resultsFilterLineEdit->text(), Qt::CaseInsensitive)); main_item->sortChildren(column_number_event, Qt::AscendingOrder); main_item->setText(column_number_occurrence, QString::number(main_item->text(column_number_occurrence).toInt() + 1)); } @@ -711,6 +716,7 @@ gboolean BluetoothHciSummaryDialog::tapPacket(void *tapinfo_ptr, packet_info *pi item->setText(column_number_reason, QString("").sprintf("0x%02X", tap_hci->reason)); main_item->addChild(item); + item->setHidden(!name.contains(dialog->ui->resultsFilterLineEdit->text(), Qt::CaseInsensitive)); main_item->sortChildren(column_number_event, Qt::AscendingOrder); main_item->setText(column_number_occurrence, QString::number(main_item->text(column_number_occurrence).toInt() + 1)); } @@ -745,6 +751,7 @@ gboolean BluetoothHciSummaryDialog::tapPacket(void *tapinfo_ptr, packet_info *pi item->setText(column_number_hardware_error, QString("").sprintf("0x%02X", tap_hci->hardware_error)); main_item->addChild(item); + item->setHidden(!name.contains(dialog->ui->resultsFilterLineEdit->text(), Qt::CaseInsensitive)); main_item->sortChildren(column_number_event, Qt::AscendingOrder); main_item->setText(column_number_occurrence, QString::number(main_item->text(column_number_occurrence).toInt() + 1)); } @@ -903,6 +910,19 @@ void BluetoothHciSummaryDialog::displayFilterLineEditAccepted() cap_file_.retapPackets(); } +void BluetoothHciSummaryDialog::resultsFilterLineEditChanged(const QString &text) +{ + for (int i_item = 0; i_item < ui->tableTreeWidget->topLevelItemCount(); ++i_item) { + QTreeWidgetItem *item = ui->tableTreeWidget->topLevelItem(i_item); + + for (int i_child = 0; i_child < item->childCount(); i_child += 1) { + QTreeWidgetItem *child_item = item->child(i_child); + QString name = child_item->text(column_number_name); + child_item->setHidden(!name.contains(text, Qt::CaseInsensitive)); + } + } +} + /* * Editor modelines * diff --git a/ui/qt/bluetooth_hci_summary_dialog.h b/ui/qt/bluetooth_hci_summary_dialog.h index 39bcc1f57c..2c3517a790 100644 --- a/ui/qt/bluetooth_hci_summary_dialog.h +++ b/ui/qt/bluetooth_hci_summary_dialog.h @@ -110,6 +110,7 @@ private slots: void interfaceCurrentIndexChanged(int index); void adapterCurrentIndexChanged(int index); void displayFilterLineEditAccepted(); + void resultsFilterLineEditChanged(const QString &text); }; #endif // BLUETOOTH_HCI_SUMMARY_DIALOG_H diff --git a/ui/qt/bluetooth_hci_summary_dialog.ui b/ui/qt/bluetooth_hci_summary_dialog.ui index 55b8e87e88..fd93949c6b 100644 --- a/ui/qt/bluetooth_hci_summary_dialog.ui +++ b/ui/qt/bluetooth_hci_summary_dialog.ui @@ -583,6 +583,23 @@ </widget> </item> <item> + <layout class="QHBoxLayout" name="resultsFilterHorizontalLayout"> + <property name="topMargin"> + <number>0</number> + </property> + <item> + <widget class="QLabel" name="resultsFilterLabel"> + <property name="text"> + <string>Results filter:</string> + </property> + </widget> + </item> + <item> + <widget class="QLineEdit" name="resultsFilterLineEdit"/> + </item> + </layout> + </item> + <item> <layout class="QHBoxLayout" name="horizontalLayout" stretch="0,0,0,0"> <property name="spacing"> <number>-1</number> |