┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews
diff options
context:
space:
mode:
authorArjun AK <[email protected]>2014-11-09 19:20:30 +0530
committerArjun AK <[email protected]>2014-11-09 19:36:20 +0530
commitcbe1d6aca4b4d98c2299d0a9b38c0584413dfd74 (patch)
tree17216d4bf53cd6b902f1d7e9e1d7a89f9652e6a0 /src/kitemviews
parent36f571a0cea38d58dba095934d10e594e9ccd15e (diff)
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
Diffstat (limited to 'src/kitemviews')
-rw-r--r--src/kitemviews/private/kfileitemmodelfilter.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/kitemviews/private/kfileitemmodelfilter.cpp b/src/kitemviews/private/kfileitemmodelfilter.cpp
index 2e320f2d9..6c6f94ffa 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;
}
}