X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Fignorelistmanager.h;h=d5a1c8aedf08b8e6e829023a2a154e2a222984a4;hb=5941a9d24333401874e051c349b391e2bcac0e0d;hp=efa007fc8237c1bdbba1b6b5855a6e947ebd2327;hpb=9fc57dc2c000e80fb8bd746a090e2e8210e1278e;p=quassel.git diff --git a/src/common/ignorelistmanager.h b/src/common/ignorelistmanager.h index efa007fc..d5a1c8ae 100644 --- a/src/common/ignorelistmanager.h +++ b/src/common/ignorelistmanager.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2013 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -22,9 +22,12 @@ #define IGNORELISTMANAGER_H #include +#include #include "message.h" #include "syncableobject.h" +// Scope matching +#include "util.h" class IgnoreListManager : public SyncableObject { @@ -60,10 +63,16 @@ public: ScopeType scope; QString scopeRule; bool isActive; + QRegExp regEx; IgnoreListItem() {} IgnoreListItem(IgnoreType type_, const QString &ignoreRule_, bool isRegEx_, StrictnessType strictness_, ScopeType scope_, const QString &scopeRule_, bool isActive_) - : type(type_), ignoreRule(ignoreRule_), isRegEx(isRegEx_), strictness(strictness_), scope(scope_), scopeRule(scopeRule_), isActive(isActive_) {} + : type(type_), ignoreRule(ignoreRule_), isRegEx(isRegEx_), strictness(strictness_), scope(scope_), scopeRule(scopeRule_), isActive(isActive_), regEx(ignoreRule_) { + regEx.setCaseSensitivity(Qt::CaseInsensitive); + if (!isRegEx_) { + regEx.setPatternSyntax(QRegExp::Wildcard); + } + } bool operator!=(const IgnoreListItem &other) { return (type != other.type || @@ -140,7 +149,6 @@ public slots: protected: void setIgnoreList(const QList &ignoreList) { _ignoreList = ignoreList; } - bool scopeMatch(const QString &scopeRule, const QString &string) const; // scopeRule is a ';'-separated list, string is a network/channel-name StrictnessType _match(const QString &msgContents, const QString &msgSender, Message::Type msgType, const QString &network, const QString &bufferName);