From 8e44ab2338f4ca63d58de4b3329c384df9d6c053 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Mon, 19 Mar 2018 02:36:12 +0100 Subject: NOISSUE redo new instance dialog --- api/logic/Filter.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 api/logic/Filter.cpp (limited to 'api/logic/Filter.cpp') diff --git a/api/logic/Filter.cpp b/api/logic/Filter.cpp new file mode 100644 index 00000000..7f6667ae --- /dev/null +++ b/api/logic/Filter.cpp @@ -0,0 +1,31 @@ +#include "Filter.h" + +Filter::~Filter(){} + +ContainsFilter::ContainsFilter(const QString& pattern) : pattern(pattern){} +ContainsFilter::~ContainsFilter(){} +bool ContainsFilter::accepts(const QString& value) +{ + return value.contains(pattern); +} + +ExactFilter::ExactFilter(const QString& pattern) : pattern(pattern){} +ExactFilter::~ExactFilter(){} +bool ExactFilter::accepts(const QString& value) +{ + return value.contains(pattern); +} + +RegexpFilter::RegexpFilter(const QString& regexp, bool invert) + :invert(invert) +{ + pattern.setPattern(regexp); + pattern.optimize(); +} +RegexpFilter::~RegexpFilter(){} +bool RegexpFilter::accepts(const QString& value) +{ + auto match = pattern.match(value); + bool matched = match.hasMatch(); + return invert ? (!matched) : (matched); +} -- cgit v1.2.3