aboutsummaryrefslogtreecommitdiff
path: root/lib/web/urlfilter/filterdomain.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/web/urlfilter/filterdomain.h')
-rw-r--r--lib/web/urlfilter/filterdomain.h28
1 files changed, 16 insertions, 12 deletions
diff --git a/lib/web/urlfilter/filterdomain.h b/lib/web/urlfilter/filterdomain.h
index 2173bfc..b356a32 100644
--- a/lib/web/urlfilter/filterdomain.h
+++ b/lib/web/urlfilter/filterdomain.h
@@ -3,28 +3,32 @@
#include <QObject>
#include <QVector>
+#include <memory>
+#include "filterrule.h"
+
+typedef std::unique_ptr<FilterRule> FilterRule_ptr;
+typedef QVector<QString> QStringVector;
class FilterDomain : public QObject
{
Q_OBJECT
public:
- enum MatchType {
- Whitelist, // only match added domains
- Blacklist, // only match domains not added
- WhitelistAll, // match all domains
- BlacklistAll // match no domains
- };
-
- explicit FilterDomain(MatchType type = Whitelist, QObject *parent = nullptr);
+ explicit FilterDomain(QObject *parent = nullptr);
- void setType(MatchType type);
- void addDomain(const QString &domain);
+ void addDomain(const QString &domain, bool isException = false);
+ void addRule(FilterRule_ptr &rule);
bool hasMatch(const QString &host) const;
+ void process(QWebEngineUrlRequestInfo &info) const;
private:
- MatchType m_type;
- QVector<QString> m_domains;
+ Q_DISABLE_COPY(FilterDomain)
+
+ // lists of domains this rule group? is allowed on and blocked on
+ QStringVector m_allowedOnDomains;
+ QStringVector m_blockedOnDomains;
+
+ std::vector<FilterRule_ptr> m_rules;
};
// function taken from KDE/Falkon