_highlightRuleList << HighlightRule(name[i], isRegEx[i].toBool(), isCaseSensitive[i].toBool(),
isActive[i].toBool(), isInverse[i].toBool(), sender[i], channel[i]);
}
- _highlightNick = HighlightNickType(highlightRuleList["highlightNick"].toInt());
+
+ // Make sure the default for _highlightNick is "CurrentNick" if not set
+ _highlightNick = HighlightNickType(
+ highlightRuleList.value("highlightNick", HighlightNickType::CurrentNick).toInt());
+
_nicksCaseSensitive = highlightRuleList["nicksCaseSensitive"].toBool();
}
if (!rule.isEnabled)
continue;
- if (!rule.chanName.isEmpty() && !scopeMatch(rule.chanName, bufferName)) {
+ if (!rule.chanName.isEmpty()
+ && !scopeMatch(bufferName, rule.chanName, rule.isRegEx, rule.isCaseSensitive)) {
// A channel name rule is specified and does NOT match the current buffer name, skip
// this rule
continue;
if (rule.sender.isEmpty()) {
senderMatch = true;
} else {
- if (rule.isRegEx) {
- rx = QRegExp(rule.sender, rule.isCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive);
- } else {
- rx = QRegExp(rule.sender, Qt::CaseInsensitive, QRegExp::Wildcard);
- }
- senderMatch = rx.exactMatch(msgSender);
+ // A sender name rule is specified, match according to scope rules.
+ senderMatch = scopeMatch(msgSender, rule.sender, rule.isRegEx, rule.isCaseSensitive);
}
if (nameMatch && senderMatch) {