#ifndef FILTERDOMAIN_H #define FILTERDOMAIN_H #include #include #include #include "filterrule.h" typedef std::unique_ptr FilterRule_ptr; typedef QVector 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 m_rules; }; // function taken from KDE/Falkon bool isMatchingDomain(const QString &domain, const QString &filter); #endif // FILTERDOMAIN_H