blob: b356a326f53eef6eebab6641208aeefdc9af102e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#ifndef FILTERDOMAIN_H
#define FILTERDOMAIN_H
#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:
explicit FilterDomain(QObject *parent = nullptr);
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:
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
bool isMatchingDomain(const QString &domain, const QString &filter);
#endif // FILTERDOMAIN_H
|