* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
-#ifndef HIGHLIGHTRULELISTMANAGER_H
-#define HIGHLIGHTRULELISTMANAGER_H
+#pragma once
+
+#include <utility>
-#include <QString>
#include <QRegExp>
+#include <QString>
+#include <QStringList>
+#include <QVariantList>
+#include <QVariantMap>
#include "message.h"
#include "syncableobject.h"
bool isRegEx = false;
bool isCaseSensitive = false;
bool isEnabled = true;
+ bool isInverse = false;
+ QString sender;
QString chanName;
HighlightRule() {}
- HighlightRule(const QString &name_, bool isRegEx_, bool isCaseSensitive_,
- bool isEnabled_, const QString &chanName_)
- : name(name_), isRegEx(isRegEx_), isCaseSensitive(isCaseSensitive_), isEnabled(isEnabled_), chanName(chanName_) {
+ HighlightRule(QString name_, bool isRegEx_, bool isCaseSensitive_, bool isEnabled_, bool isInverse_,
+ QString sender_, QString chanName_)
+ : name(std::move(name_)), isRegEx(isRegEx_), isCaseSensitive(isCaseSensitive_), isEnabled(isEnabled_),
+ isInverse(isInverse_), sender(std::move(sender_)), chanName(std::move(chanName_)) {
}
bool operator!=(const HighlightRule &other)
{
isRegEx != other.isRegEx ||
isCaseSensitive != other.isCaseSensitive ||
isEnabled != other.isEnabled ||
+ isInverse != other.isInverse ||
+ sender != other.sender ||
chanName != other.chanName);
}
};
inline const HighlightRuleList &highlightRuleList() const { return _highlightRuleList; }
inline HighlightNickType highlightNick() { return _highlightNick; }
- inline bool nicksCaseSensitive() { return _nicksCaseSensitive; }
+ inline bool nicksCaseSensitive() { return _nicksCaseSensitive; }
//! Check if a message matches the HighlightRule
/** This method checks if a message matches the users highlight rules.
* @param chanName The channel in which the rule should apply
*/
virtual inline void requestAddHighlightRule(const QString &name, bool isRegEx, bool isCaseSensitive, bool isEnabled,
- const QString &chanName)
+ bool isInverse, const QString &sender, const QString &chanName)
{
- REQUEST(ARG(name), ARG(isRegEx), ARG(isCaseSensitive), ARG(isEnabled), ARG(chanName))
+ REQUEST(ARG(name), ARG(isRegEx), ARG(isCaseSensitive), ARG(isEnabled), ARG(isInverse), ARG(sender), ARG(chanName))
}
- virtual void addHighlightRule(const QString &name, bool isRegEx, bool isCaseSensitive,
- bool isEnabled, const QString &chanName);
+ virtual void addHighlightRule(const QString &name, bool isRegEx, bool isCaseSensitive, bool isEnabled,
+ bool isInverse, const QString &sender, const QString &chanName);
virtual inline void requestSetHighlightNick(HighlightNickType highlightNick)
{
protected:
void setHighlightRuleList(const QList<HighlightRule> &HighlightRuleList) { _highlightRuleList = HighlightRuleList; }
- bool _match(const QString &msgContents, const QString &msgSender, Message::Type msgType, Message::Flags msgFlags, const QString &bufferName, const QString ¤tNick, const QStringList identityNicks);
+ bool match(const QString &msgContents,
+ const QString &msgSender,
+ Message::Type msgType,
+ Message::Flags msgFlags,
+ const QString &bufferName,
+ const QString ¤tNick,
+ const QStringList identityNicks);
signals:
- void ruleAdded(QString name, bool isRegEx, bool isCaseSensitive, bool isEnabled, QString chanName);
+ void ruleAdded(QString name, bool isRegEx, bool isCaseSensitive, bool isEnabled, bool isInverse, QString sender, QString chanName);
private:
HighlightRuleList _highlightRuleList;
HighlightNickType _highlightNick = HighlightNickType::CurrentNick;
bool _nicksCaseSensitive = false;
};
-
-
-#endif // HIGHLIGHTRULELISTMANAGER_H