From ba5b1fc8ab23b24512b5bdd7b1dc7a13b2a28a93 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Mon, 22 Jun 2020 12:22:11 +0200 Subject: Fix filtering in various hierarchical views The intermediate "category" nodes where never filtered out. CategorySortFilterModel was changed to use filterRegularExpression() and setFilterFixedString does not set that (it only affects filterRegExp() which we need to get rid off). Set a regular expression directly instead of a fixed string. Amends 47e576528e4f61c1e387e7ee89bc6b18b7ce3d94 Change-Id: I6f844027b83d66ca2d5088d83e6e84b01b9eda45 Reviewed-by: hjk --- src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/plugins/cmakeprojectmanager') diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp index a564bb12529..1baebfc8b4d 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp @@ -153,7 +153,6 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildConfiguration *bc) m_configTextFilterModel->setSourceModel(m_configFilterModel); m_configTextFilterModel->setSortRole(Qt::DisplayRole); m_configTextFilterModel->setFilterKeyColumn(-1); - m_configTextFilterModel->setFilterCaseSensitivity(Qt::CaseInsensitive); connect(m_configTextFilterModel, &QAbstractItemModel::layoutChanged, this, [this]() { QModelIndex selectedIdx = m_configView->currentIndex(); @@ -271,8 +270,14 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildConfiguration *bc) connect(m_showAdvancedCheckBox, &QCheckBox::stateChanged, this, &CMakeBuildSettingsWidget::updateAdvancedCheckBox); - connect(m_filterEdit, &QLineEdit::textChanged, - m_configTextFilterModel, &QSortFilterProxyModel::setFilterFixedString); + connect(m_filterEdit, + &QLineEdit::textChanged, + m_configTextFilterModel, + [this](const QString &txt) { + m_configTextFilterModel->setFilterRegularExpression( + QRegularExpression(QRegularExpression::escape(txt), + QRegularExpression::CaseInsensitiveOption)); + }); connect(m_resetButton, &QPushButton::clicked, m_configModel, &ConfigModel::resetAllChanges); connect(m_reconfigureButton, -- cgit v1.2.3