summaryrefslogtreecommitdiffstats
path: root/examples/widgets/itemviews/customsortfiltermodel/window.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/widgets/itemviews/customsortfiltermodel/window.cpp')
-rw-r--r--examples/widgets/itemviews/customsortfiltermodel/window.cpp22
1 files changed, 18 insertions, 4 deletions
diff --git a/examples/widgets/itemviews/customsortfiltermodel/window.cpp b/examples/widgets/itemviews/customsortfiltermodel/window.cpp
index 3356c971ad..3423ac4ee9 100644
--- a/examples/widgets/itemviews/customsortfiltermodel/window.cpp
+++ b/examples/widgets/itemviews/customsortfiltermodel/window.cpp
@@ -148,10 +148,24 @@ void Window::setSourceModel(QAbstractItemModel *model)
//! [8]
void Window::textFilterChanged()
{
- QRegExp regExp(filterWidget->text(),
- filterWidget->caseSensitivity(),
- filterWidget->patternSyntax());
- proxyModel->setFilterRegExp(regExp);
+ FilterWidget::PatternSyntax s = filterWidget->patternSyntax();
+ QString pattern = filterWidget->text();
+ switch (s) {
+ case FilterWidget::Wildcard:
+ pattern = QRegularExpression::wildcardToRegularExpression(pattern);
+ break;
+ case FilterWidget::FixedString:
+ pattern = QRegularExpression::escape(pattern);
+ break;
+ default:
+ break;
+ }
+
+ QRegularExpression::PatternOptions options = QRegularExpression::NoPatternOption;
+ if (filterWidget->caseSensitivity() == Qt::CaseInsensitive)
+ options |= QRegularExpression::CaseInsensitiveOption;
+ QRegularExpression regularExpression(pattern, options);
+ proxyModel->setFilterRegularExpression(regularExpression);
}
//! [8]