X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fqtuimessageprocessor.cpp;h=336a18d1063ca2cd7e338874ba4096f8b2517b38;hb=fd675d4386592325ffbcb994cbb0a83407b01646;hp=3aa3acd267b1bd7b189b19c14911cf7f8abadd72;hpb=5bd4e3fcf31a7a337f91b3bba86bd237aa5e7ed6;p=quassel.git diff --git a/src/qtui/qtuimessageprocessor.cpp b/src/qtui/qtuimessageprocessor.cpp index 3aa3acd2..336a18d1 100644 --- a/src/qtui/qtuimessageprocessor.cpp +++ b/src/qtui/qtuimessageprocessor.cpp @@ -56,8 +56,8 @@ void QtUiMessageProcessor::reset() { void QtUiMessageProcessor::process(Message &msg) { checkForHighlight(msg); + preProcess(msg); Client::messageModel()->insertMessage(msg); - postProcess(msg); } void QtUiMessageProcessor::process(QList &msgs) { @@ -65,7 +65,7 @@ void QtUiMessageProcessor::process(QList &msgs) { QList::iterator msgIterEnd = msgs.end(); while(msgIter != msgIterEnd) { checkForHighlight(*msgIter); - postProcess(*msgIter); + preProcess(*msgIter); msgIter++; } Client::messageModel()->insertMessages(msgs); @@ -115,10 +115,11 @@ void QtUiMessageProcessor::checkForHighlight(Message &msg) { const Identity *myIdentity = Client::identity(net->identity()); if(myIdentity) nickList = myIdentity->nicks(); + if(!nickList.contains(net->myNick())) + nickList.prepend(net->myNick()); } foreach(QString nickname, nickList) { - QRegExp nickRegExp("\\b" + QRegExp::escape(nickname) + "(\\W|\\b|$)", // + "\\b", this does not seem to work for trailing ` -> upstream bug? - _nicksCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive); + QRegExp nickRegExp("(^|\\W)" + QRegExp::escape(nickname) + "(\\W|$)", _nicksCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive); if(nickRegExp.indexIn(msg.contents()) >= 0) { msg.setFlags(msg.flags() | Message::Highlight); return; @@ -135,7 +136,7 @@ void QtUiMessageProcessor::checkForHighlight(Message &msg) { QRegExp rx(rule.name, rule.caseSensitive? Qt::CaseSensitive : Qt::CaseInsensitive); match = rx.exactMatch(msg.contents()); } else { - QRegExp rx("\\b" + QRegExp::escape(rule.name) + "\\b", rule.caseSensitive? Qt::CaseSensitive : Qt::CaseInsensitive); + QRegExp rx("(^|\\W)" + QRegExp::escape(rule.name) + "(\\W|$)", rule.caseSensitive? Qt::CaseSensitive : Qt::CaseInsensitive); match = (rx.indexIn(msg.contents()) >= 0); } if(match) {