aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2020-06-22 12:22:11 +0200
committerEike Ziller <eike.ziller@qt.io>2020-06-22 12:23:12 +0000
commitba5b1fc8ab23b24512b5bdd7b1dc7a13b2a28a93 (patch)
tree3e9ab769306546ef4f6a30df87397063a67b7828
parentf568648768cb0b69551d6a9a0f1e92653c44aa8f (diff)
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 <hjk@qt.io>
-rw-r--r--src/libs/extensionsystem/pluginview.cpp5
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp11
-rw-r--r--src/plugins/coreplugin/locator/locatorsettingspage.cpp5
-rw-r--r--src/plugins/mesonprojectmanager/project/buildoptions/mesonbuildsettingswidget.cpp7
4 files changed, 19 insertions, 9 deletions
diff --git a/src/libs/extensionsystem/pluginview.cpp b/src/libs/extensionsystem/pluginview.cpp
index bf40d8d7f84..88a7350e403 100644
--- a/src/libs/extensionsystem/pluginview.cpp
+++ b/src/libs/extensionsystem/pluginview.cpp
@@ -315,7 +315,6 @@ PluginView::PluginView(QWidget *parent)
m_sortModel = new CategorySortFilterModel(this);
m_sortModel->setSourceModel(m_model);
m_sortModel->setSortRole(SortRole);
- m_sortModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
m_sortModel->setFilterKeyColumn(-1/*all*/);
m_categoryView->setModel(m_sortModel);
@@ -357,7 +356,9 @@ PluginSpec *PluginView::currentPlugin() const
*/
void PluginView::setFilter(const QString &filter)
{
- m_sortModel->setFilterFixedString(filter);
+ m_sortModel->setFilterRegularExpression(
+ QRegularExpression(QRegularExpression::escape(filter),
+ QRegularExpression::CaseInsensitiveOption));
m_categoryView->expandAll();
}
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,
diff --git a/src/plugins/coreplugin/locator/locatorsettingspage.cpp b/src/plugins/coreplugin/locator/locatorsettingspage.cpp
index 993bd84cc89..02ddbf6337c 100644
--- a/src/plugins/coreplugin/locator/locatorsettingspage.cpp
+++ b/src/plugins/coreplugin/locator/locatorsettingspage.cpp
@@ -190,7 +190,6 @@ public:
m_proxyModel = new CategorySortFilterModel(m_ui.filterList);
m_proxyModel->setSourceModel(m_model);
m_proxyModel->setSortRole(SortRole);
- m_proxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
m_proxyModel->setFilterKeyColumn(-1/*all*/);
m_ui.filterList->setModel(m_proxyModel);
m_ui.filterList->expandAll();
@@ -294,7 +293,9 @@ void LocatorSettingsWidget::requestRefresh()
void LocatorSettingsWidget::setFilter(const QString &text)
{
- m_proxyModel->setFilterFixedString(text);
+ m_proxyModel->setFilterRegularExpression(
+ QRegularExpression(QRegularExpression::escape(text),
+ QRegularExpression::CaseInsensitiveOption));
m_ui.filterList->expandAll();
}
diff --git a/src/plugins/mesonprojectmanager/project/buildoptions/mesonbuildsettingswidget.cpp b/src/plugins/mesonprojectmanager/project/buildoptions/mesonbuildsettingswidget.cpp
index df91c285fab..b8b35373b60 100644
--- a/src/plugins/mesonprojectmanager/project/buildoptions/mesonbuildsettingswidget.cpp
+++ b/src/plugins/mesonprojectmanager/project/buildoptions/mesonbuildsettingswidget.cpp
@@ -69,7 +69,6 @@ MesonBuildSettingsWidget::MesonBuildSettingsWidget(MesonBuildConfiguration *buil
m_optionsFilter.setSourceModel(&m_optionsModel);
m_optionsFilter.setSortRole(Qt::DisplayRole);
m_optionsFilter.setFilterKeyColumn(-1);
- m_optionsFilter.setFilterCaseSensitivity(Qt::CaseInsensitive);
ui->optionsTreeView->setModel(&m_optionsFilter);
@@ -109,7 +108,11 @@ MesonBuildSettingsWidget::MesonBuildSettingsWidget(MesonBuildConfiguration *buil
connect(ui->optionsFilterLineEdit,
&QLineEdit::textChanged,
&m_optionsFilter,
- &QSortFilterProxyModel::setFilterFixedString);
+ [this](const QString &txt) {
+ m_optionsFilter.setFilterRegularExpression(
+ QRegularExpression(QRegularExpression::escape(txt),
+ QRegularExpression::CaseInsensitiveOption));
+ });
connect(ui->optionsTreeView,
&Utils::TreeView::activated,
ui->optionsTreeView,