]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Ensure input is a valid regexp before enabling regexp filter mode
authorArjun AK <arjunak234@gmail.com>
Sun, 9 Nov 2014 13:50:30 +0000 (19:20 +0530)
committerArjun AK <arjunak234@gmail.com>
Sun, 9 Nov 2014 14:06:20 +0000 (19:36 +0530)
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

index 2e320f2d9b0fc7ee77b28c17528046f4732b7b4b..6c6f94ffab016fa6f0816e17a3143ec26e6f4da6 100644 (file)
@@ -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;
     }
 }