-void Client::recvBacklogData(BufferInfo id, QVariantList msgs, bool /*done*/) {
- Buffer *b = buffer(id);
- foreach(QVariant v, msgs) {
- Message msg = v.value<Message>();
- checkForHighlight(msg);
- b->prependMsg(msg);
- //networkModel()->updateBufferActivity(msg);
- if(!layoutQueue.contains(b)) layoutQueue.append(b);
- }
- if(layoutQueue.count() && !layoutTimer->isActive()) layoutTimer->start();
-}
-
-void Client::layoutMsg() {
- if(layoutQueue.count()) {
- Buffer *b = layoutQueue.takeFirst(); // TODO make this the current buffer
- if(b->layoutMsg())
- layoutQueue.append(b); // Buffer has more messages in its queue --> Round Robin
- }
-
- if(!layoutQueue.count())
- layoutTimer->stop();
-}
-
-AbstractUiMsg *Client::layoutMsg(const Message &msg) {
- return instance()->mainUi->layoutMsg(msg);
-}
-
-void Client::checkForHighlight(Message &msg) {
- const Network *net = network(msg.bufferInfo().networkId());
- if(net && !net->myNick().isEmpty()) {
- QRegExp nickRegExp("^(.*\\W)?" + QRegExp::escape(net->myNick()) + "(\\W.*)?$");
- if((msg.type() & (Message::Plain | Message::Notice | Message::Action)) && nickRegExp.exactMatch(msg.text()))
- msg.setFlags(msg.flags() | Message::Highlight);
- }