aboutsummaryrefslogtreecommitdiffstats
path: root/ui/qt
diff options
context:
space:
mode:
authorPatryk Nowak <patryk.nowak@tieto.com>2017-04-03 13:07:04 +0200
committerMichael Mann <mmann78@netscape.net>2017-04-04 01:59:32 +0000
commit03f372fd8b1512df3d499e1c5d292f9aaf5c8fa4 (patch)
tree92790cf9159d8008cad51694fb9d5c368038f114 /ui/qt
parentbf524d95f3c4a642a00d3e322d771d33c592fa8c (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.cpp20
-rw-r--r--ui/qt/bluetooth_hci_summary_dialog.h1
-rw-r--r--ui/qt/bluetooth_hci_summary_dialog.ui17
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>