#include "highlightrulemanager.h"
-#include "util.h"
-
#include <QDebug>
+#include "util.h"
+
INIT_SYNCABLE_OBJECT(HighlightRuleManager)
-HighlightRuleManager &HighlightRuleManager::operator=(const HighlightRuleManager &other) {
+
+HighlightRuleManager &HighlightRuleManager::operator=(const HighlightRuleManager &other)
+{
if (this == &other)
return *this;
}
-int HighlightRuleManager::indexOf(int id) const {
+int HighlightRuleManager::indexOf(int id) const
+{
for (int i = 0; i < _highlightRuleList.count(); i++) {
if (_highlightRuleList[i].id == id)
return i;
return -1;
}
-int HighlightRuleManager::nextId() {
+
+int HighlightRuleManager::nextId()
+{
int max = 0;
for (int i = 0; i < _highlightRuleList.count(); i++) {
int id = _highlightRuleList[i].id;
max = id;
}
}
- return max+1;
+ return max + 1;
}
-QVariantMap HighlightRuleManager::initHighlightRuleList() const {
+QVariantMap HighlightRuleManager::initHighlightRuleList() const
+{
QVariantList id;
QVariantMap highlightRuleListMap;
QStringList name;
}
-void HighlightRuleManager::initSetHighlightRuleList(const QVariantMap &highlightRuleList) {
+void HighlightRuleManager::initSetHighlightRuleList(const QVariantMap &highlightRuleList)
+{
QVariantList id = highlightRuleList["id"].toList();
QStringList name = highlightRuleList["name"].toStringList();
QVariantList isRegEx = highlightRuleList["isRegEx"].toList();
}
}
+
void HighlightRuleManager::addHighlightRule(int id, const QString &name, bool isRegEx, bool isCaseSensitive,
bool isActive, bool isInverse, const QString &sender,
- const QString &channel) {
+ const QString &channel)
+{
if (contains(id)) {
return;
}
Message::Flags msgFlags,
const QString &bufferName,
const QString ¤tNick,
- const QStringList identityNicks) {
+ const QStringList identityNicks)
+{
if (!((msgType & (Message::Plain | Message::Notice | Message::Action)) && !(msgFlags & Message::Self))) {
return false;
}
continue;
}
- QRegExp rx;
- if (rule.isRegEx) {
- rx = QRegExp(rule.name, rule.isCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive);
+ bool nameMatch = false;
+ if (rule.name.isEmpty()) {
+ // Empty rule, matches any message
+ nameMatch = true;
} else {
- rx = QRegExp("(^|\\W)" + QRegExp::escape(rule.name) + "(\\W|$)", rule.isCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive);
+ // Check according to specified rule
+ QRegExp rx;
+ if (rule.isRegEx) {
+ rx = QRegExp(rule.name,
+ rule.isCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive);
+ } else {
+ rx = QRegExp("(^|\\W)" + QRegExp::escape(rule.name) + "(\\W|$)",
+ rule.isCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive);
+ }
+ nameMatch = (rx.indexIn(stripFormatCodes(msgContents)) >= 0);
}
- bool nameMatch = (rx.indexIn(stripFormatCodes(msgContents)) >= 0);
bool senderMatch;
if (rule.sender.isEmpty()) {
return false;
}
-void HighlightRuleManager::removeHighlightRule(int highlightRule) {
+
+void HighlightRuleManager::removeHighlightRule(int highlightRule)
+{
removeAt(indexOf(highlightRule));
SYNC(ARG(highlightRule))
}
-void HighlightRuleManager::toggleHighlightRule(int highlightRule) {
+void HighlightRuleManager::toggleHighlightRule(int highlightRule)
+{
int idx = indexOf(highlightRule);
if (idx == -1)
return;
SYNC(ARG(highlightRule))
}
-bool HighlightRuleManager::match(const Message &msg, const QString ¤tNick, const QStringList &identityNicks) {
+
+bool HighlightRuleManager::match(const Message &msg, const QString ¤tNick, const QStringList &identityNicks)
+{
return match(msg.contents(), msg.sender(), msg.type(), msg.flags(), msg.bufferInfo().bufferName(), currentNick, identityNicks);
}