From cbe1d6aca4b4d98c2299d0a9b38c0584413dfd74 Mon Sep 17 00:00:00 2001 From: Arjun AK Date: Sun, 9 Nov 2014 19:20:30 +0530 Subject: [PATCH] Ensure input is a valid regexp before enabling regexp filter mode Checking whether the input contains '*', '?' or '[' alone will not do since there can be files with '[' in their name. REVIEW: 120986 BUG: 340470 FIXED-IN: 14.12 --- src/kitemviews/private/kfileitemmodelfilter.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/kitemviews/private/kfileitemmodelfilter.cpp b/src/kitemviews/private/kfileitemmodelfilter.cpp index 2e320f2d9b..6c6f94ffab 100644 --- a/src/kitemviews/private/kfileitemmodelfilter.cpp +++ b/src/kitemviews/private/kfileitemmodelfilter.cpp @@ -43,10 +43,7 @@ void KFileItemModelFilter::setPattern(const QString& filter) m_pattern = filter; m_lowerCasePattern = filter.toLower(); - m_useRegExp = filter.contains('*') || - filter.contains('?') || - filter.contains('['); - if (m_useRegExp) { + if (filter.contains('*') || filter.contains('?') || filter.contains('[')) { if (!m_regExp) { m_regExp = new QRegExp(); m_regExp->setCaseSensitivity(Qt::CaseInsensitive); @@ -54,6 +51,9 @@ void KFileItemModelFilter::setPattern(const QString& filter) m_regExp->setPatternSyntax(QRegExp::WildcardUnix); } m_regExp->setPattern(filter); + m_useRegExp = m_regExp->isValid(); + } else { + m_useRegExp = false; } }