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.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/web/urlfilter/filterdomain.h b/lib/web/urlfilter/filterdomain.h
new file mode 100644
index 0000000..2173bfc
--- /dev/null
+++ b/lib/web/urlfilter/filterdomain.h
@@ -0,0 +1,33 @@
+#ifndef FILTERDOMAIN_H
+#define FILTERDOMAIN_H
+
+#include <QObject>
+#include <QVector>
+
+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);
+
+ void setType(MatchType type);
+ void addDomain(const QString &domain);
+
+ bool hasMatch(const QString &host) const;
+
+private:
+ MatchType m_type;
+ QVector<QString> m_domains;
+};
+
+// function taken from KDE/Falkon
+bool isMatchingDomain(const QString &domain, const QString &filter);
+
+#endif // FILTERDOMAIN_H