aboutsummaryrefslogtreecommitdiff
path: root/lib/urlfilter/filterleaf.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/urlfilter/filterleaf.h')
-rw-r--r--lib/urlfilter/filterleaf.h23
1 files changed, 20 insertions, 3 deletions
diff --git a/lib/urlfilter/filterleaf.h b/lib/urlfilter/filterleaf.h
index 6d9caae..36c00e9 100644
--- a/lib/urlfilter/filterleaf.h
+++ b/lib/urlfilter/filterleaf.h
@@ -9,8 +9,10 @@
#ifndef SMOLBOTE_FILTERLEAF_H
#define SMOLBOTE_FILTERLEAF_H
+#include <QHash>
#include <QObject>
#include <QString>
+#include <QWebEngineUrlRequestInfo>
class FilterLeaf
{
@@ -23,7 +25,7 @@ public:
};
FilterLeaf(FilterLeaf &&other);
- FilterLeaf& operator=(FilterLeaf &&other);
+ FilterLeaf &operator=(FilterLeaf &&other);
~FilterLeaf() = default;
virtual bool match(const QString &requestUrl) const = 0;
@@ -33,11 +35,26 @@ public:
const QString redirect() const;
protected:
+ enum UrlMatchType {
+ InvalidMatch,
+ RegularExpressionMatch,
+ StringContains,
+ StringStartsWith,
+ StringEndsWith,
+ StringEquals,
+ DomainMatch
+ };
+
explicit FilterLeaf() = default;
+ // rule matching
+ UrlMatchType matchType = InvalidMatch;
+ QHash<QWebEngineUrlRequestInfo::ResourceType, bool> resourceTypeOptions;
+ QString m_request;
+
+ // rule action
bool m_isBlocking;
- std::string m_request;
- std::string m_redirect;
+ QString m_redirect;
};
#endif // SMOLBOTE_FILTERLEAF_H