X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fignorelistmanager.h;h=d6ab6eca973fbb0c1bcbef014a90b226963552c5;hp=1d44b0b466b9654b42dcf54e9b8c18ed247e2e02;hb=f19fea582ace1d8f3dfe29c1096c48758079e56e;hpb=57d23cf77236e4ba25eb2bddb0eb343fe7f5b5df diff --git a/src/common/ignorelistmanager.h b/src/common/ignorelistmanager.h index 1d44b0b4..d6ab6eca 100644 --- a/src/common/ignorelistmanager.h +++ b/src/common/ignorelistmanager.h @@ -93,23 +93,55 @@ public: */ StrictnessType match(const Message &msg, const QString &network = QString()); - virtual void addIgnoreListItem(IgnoreType type, const QString &ignoreRule, bool isRegEx, StrictnessType strictness, - ScopeType scope, const QString &scopeRule, bool isActive); - virtual void addIgnoreListItem(const IgnoreListItem &item); + +// virtual void addIgnoreListItem(const IgnoreListItem &item); public slots: virtual QVariantMap initIgnoreList() const; virtual void initSetIgnoreList(const QVariantMap &ignoreList); + //! Request removal of an ignore rule based on the rule itself. + /** Use this method if you want to remove a single ignore rule + * and get that synced with the core immediately. + * \param ignoreRule A valid ignore rule + */ + virtual inline void requestRemoveIgnoreListItem(const QString &ignoreRule) { REQUEST(ARG(ignoreRule)) } + virtual void removeIgnoreListItem(const QString &ignoreRule); + + //! Request toggling of "isActive" flag of a given ignore rule. + /** Use this method if you want to toggle the "isActive" flag of a single ignore rule + * and get that synced with the core immediately. + * \param ignoreRule A valid ignore rule + */ + virtual inline void requestToggleIgnoreRule(const QString &ignoreRule) { REQUEST(ARG(ignoreRule)) } + virtual void toggleIgnoreRule(const QString &ignoreRule); + + //! Request an IgnoreListItem to be added to the ignore list + /** Items added to the list with this method, get immediately synced with the core + * \param type The IgnoreType of the new rule + * \param ignoreRule The rule itself + * \param isRegEx Signals if the rule should be interpreted as a regular expression + * \param strictness Th StrictnessType that should be applied + * \param scope The ScopeType that should be set + * \param scopeRule A string of semi-colon separated network- or channelnames + * \param isActive Signals if the rule is enabled or not + */ + virtual inline void requestAddIgnoreListItem(int type, const QString &ignoreRule, bool isRegEx, int strictness, + int scope, const QString &scopeRule, bool isActive) { + REQUEST(ARG(type), ARG(ignoreRule), ARG(isRegEx), ARG(strictness), ARG(scope), ARG(scopeRule), ARG(isActive)) + } + virtual void addIgnoreListItem(int type, const QString &ignoreRule, bool isRegEx, int strictness, + int scope, const QString &scopeRule, bool isActive); + protected: void setIgnoreList(const QList &ignoreList) { _ignoreList = ignoreList; } + // scopeRule is a ; separated list, string is a network/channel-name + bool scopeMatch(const QString &scopeRule, const QString &string) const; signals: void ignoreAdded(IgnoreType type, const QString &ignoreRule, bool isRegex, StrictnessType strictness, ScopeType scope, const QVariant &scopeRule, bool isActive); private: - // scopeRule is a ; separated list, string is a network/channel-name - bool scopeMatch(const QString &scopeRule, const QString &string); IgnoreList _ignoreList; };