diff options
| author | Ahmad Samir <[email protected]> | 2019-12-24 17:15:44 +0200 |
|---|---|---|
| committer | Ahmad Samir <[email protected]> | 2020-05-06 11:37:38 +0200 |
| commit | e3c03e466ea53e575752154cde4e24caea118471 (patch) | |
| tree | c939719355c672406ad1e0df7fcff15bd947afa6 /src/kitemviews/private | |
| parent | 37deaaef2c39a4c4b410cd0313a55a4072d2b2ff (diff) | |
Port QRegExp to QRegularExpression
Summary:
Port QRegExp::exactMatch() with QRegularExpression::anchoredPattern().
Port QRegExp::Wildcard with QRegularExpression::wildcardToRegularExpression().
Note that QRegularExpression::wildcardToRegularExpression() returns an anchored
pattern.
Test Plan:
Using the filter bar in dolphin works as before.
All unit tests pass, except:
- kfileitemmodeltest (which is unrelated AFAICS); it fails on master too
- placesitemmodeltest, which fails on master too
Reviewers: #dolphin, elvisangelaccio, meven
Reviewed By: #dolphin, elvisangelaccio
Subscribers: kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D26215
Diffstat (limited to 'src/kitemviews/private')
| -rw-r--r-- | src/kitemviews/private/kfileitemmodelfilter.cpp | 13 | ||||
| -rw-r--r-- | src/kitemviews/private/kfileitemmodelfilter.h | 4 |
2 files changed, 8 insertions, 9 deletions
diff --git a/src/kitemviews/private/kfileitemmodelfilter.cpp b/src/kitemviews/private/kfileitemmodelfilter.cpp index fc56cc71d..bcd875132 100644 --- a/src/kitemviews/private/kfileitemmodelfilter.cpp +++ b/src/kitemviews/private/kfileitemmodelfilter.cpp @@ -20,8 +20,9 @@ #include "kfileitemmodelfilter.h" -#include <KFileItem> +#include <QRegularExpression> +#include <KFileItem> KFileItemModelFilter::KFileItemModelFilter() : m_useRegExp(false), @@ -44,12 +45,10 @@ void KFileItemModelFilter::setPattern(const QString& filter) if (filter.contains('*') || filter.contains('?') || filter.contains('[')) { if (!m_regExp) { - m_regExp = new QRegExp(); - m_regExp->setCaseSensitivity(Qt::CaseInsensitive); - m_regExp->setMinimal(false); - m_regExp->setPatternSyntax(QRegExp::WildcardUnix); + m_regExp = new QRegularExpression(); + m_regExp->setPatternOptions(QRegularExpression::CaseInsensitiveOption); } - m_regExp->setPattern(filter); + m_regExp->setPattern(QRegularExpression::wildcardToRegularExpression(filter)); m_useRegExp = m_regExp->isValid(); } else { m_useRegExp = false; @@ -103,7 +102,7 @@ bool KFileItemModelFilter::matches(const KFileItem& item) const bool KFileItemModelFilter::matchesPattern(const KFileItem& item) const { if (m_useRegExp) { - return m_regExp->exactMatch(item.text()); + return m_regExp->match(item.text()).hasMatch(); } else { return item.text().toLower().contains(m_lowerCasePattern); } diff --git a/src/kitemviews/private/kfileitemmodelfilter.h b/src/kitemviews/private/kfileitemmodelfilter.h index f9f588aba..b56e0ad5b 100644 --- a/src/kitemviews/private/kfileitemmodelfilter.h +++ b/src/kitemviews/private/kfileitemmodelfilter.h @@ -26,7 +26,7 @@ #include <QStringList> class KFileItem; -class QRegExp; +class QRegularExpression; /** * @brief Allows to check whether an item of the KFileItemModel @@ -83,7 +83,7 @@ private: bool m_useRegExp; // If true, m_regExp is used for filtering, // otherwise m_lowerCaseFilter is used. - QRegExp* m_regExp; + QRegularExpression *m_regExp; QString m_lowerCasePattern; // Lowercase version of m_filter for // faster comparison in matches(). QString m_pattern; // Property set by setPattern(). |
