}
void Client::recvMessage(const Message &msg) {
- Buffer *b = buffer(msg.bufferInfo());
- b->appendMsg(msg);
- networkModel()->updateBufferActivity(msg);
+ if(msg.type() == Message::Error) {
+ Buffer *b = buffer(msg.bufferInfo().bufferId());
+ if(b) {
+ b->appendMsg(msg);
+ networkModel()->updateBufferActivity(msg);
+ } else {
+ //TODO: display message in the status buffer
+ b = buffer(msg.bufferInfo());
+ b->appendMsg(msg);
+ networkModel()->updateBufferActivity(msg);
+ }
+ } else {
+ Buffer *b = buffer(msg.bufferInfo());
+ b->appendMsg(msg);
+ networkModel()->updateBufferActivity(msg);
+ }
if(msg.type() == Message::Plain || msg.type() == Message::Notice || msg.type() == Message::Action) {
const Network *net = network(msg.bufferInfo().networkId());
foreach(QVariant v, msgs) {
Message msg = v.value<Message>();
b->prependMsg(msg);
- // networkModel()->updateBufferActivity(msg);
+ networkModel()->updateBufferActivity(msg);
if(!layoutQueue.contains(b)) layoutQueue.append(b);
}
if(layoutQueue.count() && !layoutTimer->isActive()) layoutTimer->start();