X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fclient.cpp;h=8c7a043068cd68bd937e9b5e5a49ed549ad04e7c;hp=69ffbfc787396f59d9267e27ae7fd97123e16d09;hb=9ced25191b84390d1867cf3ee19f5aec741795a8;hpb=278aef059d7652b2a4e1359d72bb4028524246d4 diff --git a/src/client/client.cpp b/src/client/client.cpp index 69ffbfc7..8c7a0430 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -546,25 +546,33 @@ void Client::checkForHighlight(Message &msg) { NotificationSettings notificationSettings; const Network *net = network(msg.bufferInfo().networkId()); if(net && !net->myNick().isEmpty()) { - if(notificationSettings.highlightCurrentNick()) { - QRegExp nickRegExp("^(.*\\W)?" + QRegExp::escape(net->myNick()) + "(\\W.*)?$"); + QStringList nickList; + if(notificationSettings.highlightNick() == NotificationSettings::CurrentNick) { + nickList << net->myNick(); + } else if(notificationSettings.highlightNick() == NotificationSettings::AllNicks) { + nickList = identity(net->identity())->nicks(); + } + foreach(QString nickname, nickList) { + QRegExp nickRegExp("^(.*\\W)?" + QRegExp::escape(nickname) + "(\\W.*)?$"); if((msg.type() & (Message::Plain | Message::Notice | Message::Action)) && !(msg.flags() & Message::Self) && nickRegExp.exactMatch(msg.text())) { - msg.setFlags(msg.flags() | Message::Highlight); - return; + msg.setFlags(msg.flags() | Message::Highlight); + return; } } + foreach(QVariant highlight, notificationSettings.highlightList()) { QVariantMap highlightRule = highlight.toMap(); if(!highlightRule["enable"].toBool()) continue; + Qt::CaseSensitivity caseSensitivity = highlightRule["cs"].toBool() ? Qt::CaseSensitive : Qt::CaseInsensitive; QString name = highlightRule["name"].toString(); QRegExp userRegExp; if(highlightRule["regex"].toBool()) { - userRegExp = QRegExp(name); + userRegExp = QRegExp(name, caseSensitivity); } else { - userRegExp = QRegExp("^(.*\\W)?" + QRegExp::escape(name) + "(\\W.*)?$"); + userRegExp = QRegExp("^(.*\\W)?" + QRegExp::escape(name) + "(\\W.*)?$", caseSensitivity); } if((msg.type() & (Message::Plain | Message::Notice | Message::Action)) && !(msg.flags() & Message::Self)