From aae2512c85ff014eeca3c2ae82826dba31f4c259 Mon Sep 17 00:00:00 2001 From: Marcel Krems Date: Sun, 5 Apr 2020 16:47:31 +0200 Subject: Fix CaseSensitivity handling for QRegularExpression in QSortFilterProxyModel setFilterRegExp retains the caseSensitivity() while setFilterRegularExpression did not. Change setFilterRegularExpression to also retain the case sensitivity. Also fix the inverted logic in setFilterCaseSensitivity. Fixes: QTBUG-83313 Change-Id: I46f494d320aee99d50612f01f63558c693276989 Reviewed-by: Samuel Gaist Reviewed-by: David Faure (cherry picked from commit 9a921d78e87452962043721669f3027f7566eef4) --- src/corelib/itemmodels/qsortfilterproxymodel.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/corelib/itemmodels') diff --git a/src/corelib/itemmodels/qsortfilterproxymodel.cpp b/src/corelib/itemmodels/qsortfilterproxymodel.cpp index 4f5593e0a0..bd4c7e93c5 100644 --- a/src/corelib/itemmodels/qsortfilterproxymodel.cpp +++ b/src/corelib/itemmodels/qsortfilterproxymodel.cpp @@ -236,7 +236,7 @@ public: case ExpressionType::RegularExpression: { QRegularExpression::PatternOptions options = m_regularExpression.patternOptions(); - options.setFlag(QRegularExpression::CaseInsensitiveOption, cs == Qt::CaseSensitive); + options.setFlag(QRegularExpression::CaseInsensitiveOption, cs == Qt::CaseInsensitive); m_regularExpression.setPatternOptions(options); } break; @@ -2793,7 +2793,10 @@ void QSortFilterProxyModel::setFilterRegularExpression(const QString &pattern) { Q_D(QSortFilterProxyModel); d->filter_about_to_be_changed(); - QRegularExpression rx(pattern); + QRegularExpression rx(pattern, + d->filter_data.caseSensitivity() + ? QRegularExpression::NoPatternOption + : QRegularExpression::CaseInsensitiveOption); d->filter_data.setRegularExpression(rx); d->filter_changed(); } -- cgit v1.2.3