Qt: Allow regex searching in the advanced prefs.

Use a QRegex for Preferences → Advanced → Search.

Change-Id: Iebf1cba9c17ff774ce50ef909b6d181751b272aa
Reviewed-on: https://code.wireshark.org/review/13924
Reviewed-by: Gerald Combs <gerald@wireshark.org>
This commit is contained in:
Gerald Combs 2016-02-12 13:40:05 -08:00
parent 8435145b1f
commit b9561bd3bb
2 changed files with 7 additions and 6 deletions

View File

@ -524,13 +524,14 @@ void PreferencesDialog::on_prefsTree_currentItemChanged(QTreeWidgetItem *current
}
}
void PreferencesDialog::on_advancedSearchLineEdit_textEdited(const QString &search_str)
void PreferencesDialog::on_advancedSearchLineEdit_textEdited(const QString &search_re)
{
// Hide or show each branch
QTreeWidgetItemIterator branch_it(pd_ui_->advancedTree);
QRegExp regex(search_re, Qt::CaseInsensitive);
while (*branch_it) {
if ((*branch_it)->data(pref_ptr_col_, Qt::UserRole).value<pref_t *>() == NULL) {
(*branch_it)->setHidden(!search_str.isEmpty());
(*branch_it)->setHidden(!search_re.isEmpty());
}
++branch_it;
}
@ -543,9 +544,9 @@ void PreferencesDialog::on_advancedSearchLineEdit_textEdited(const QString &sear
if ((*pref_it)->data(pref_ptr_col_, Qt::UserRole).value<pref_t *>()) {
QTreeWidgetItem *parent = (*pref_it)->parent();
if (search_str.isEmpty() ||
(*pref_it)->text(0).contains(search_str, Qt::CaseInsensitive) ||
(*pref_it)->toolTip(0).contains(search_str, Qt::CaseInsensitive)) {
if (search_re.isEmpty() ||
(*pref_it)->text(0).contains(regex) ||
(*pref_it)->toolTip(0).contains(regex)) {
hidden = false;
}

View File

@ -80,7 +80,7 @@ private:
private slots:
void on_prefsTree_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
void on_advancedSearchLineEdit_textEdited(const QString &search_str);
void on_advancedSearchLineEdit_textEdited(const QString &search_re);
void lineEditPrefDestroyed();
void enumPrefDestroyed();
void uintPrefEditingFinished();