X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fmessagemodel.cpp;h=945ac7da26079d11b6bd44cc817cfd0f22e5da23;hp=13e69007717fa5ccf4c2fec9e6fdf0b98d69d2be;hb=3c2914faeb01f3bc32e29f40179ae88040fbcf59;hpb=0480c16e33acc3cc6b1f1b507aa8696a70627bf8 diff --git a/src/client/messagemodel.cpp b/src/client/messagemodel.cpp index 13e69007..945ac7da 100644 --- a/src/client/messagemodel.cpp +++ b/src/client/messagemodel.cpp @@ -370,7 +370,7 @@ void MessageModel::requestBacklog(BufferId bufferId) { .arg(requestCount) .arg(Client::networkModel()->networkName(bufferId)) .arg(Client::networkModel()->bufferName(bufferId))); - Client::backlogManager()->requestBacklog(bufferId, requestCount, _messageList.at(i)->msgId().toInt()); + Client::backlogManager()->requestBacklog(bufferId, -1, _messageList.at(i)->msgId(), requestCount); return; } } @@ -385,6 +385,16 @@ void MessageModel::messagesReceived(BufferId bufferId, int count) { _messagesWaiting.remove(bufferId); } +void MessageModel::buffersPermanentlyMerged(BufferId bufferId1, BufferId bufferId2) { + for(int i = 0; i < _messageList.count(); i++) { + if(_messageList[i]->bufferId() == bufferId2) { + _messageList[i]->setBufferId(bufferId1); + QModelIndex idx = index(i, 0); + emit dataChanged(idx, idx); + } + } +} + // ======================================== // MessageModelItem // ======================================== @@ -395,6 +405,8 @@ MessageModelItem::MessageModelItem(const Message &msg) : _type(msg.type()), _flags(msg.flags()) { + if(!msg.sender().contains('!')) + _flags |= Message::ServerMsg; } QVariant MessageModelItem::data(int column, int role) const { @@ -407,10 +419,22 @@ QVariant MessageModelItem::data(int column, int role) const { case MessageModel::TypeRole: return _type; case MessageModel::FlagsRole: return (int)_flags; case MessageModel::TimestampRole: return _timestamp; + case MessageModel::RedirectedToRole: return qVariantFromValue(_redirectedTo); default: return QVariant(); } } +bool MessageModelItem::setData(int column, const QVariant &value, int role) { + Q_UNUSED(column); + + switch(role) { + case MessageModel::RedirectedToRole: + _redirectedTo = value.value(); + return true; + default: + return false; + } +} // Stuff for later bool MessageModelItem::lessThan(const MessageModelItem *m1, const MessageModelItem *m2){