X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fclient%2Fmessagemodel.cpp;h=6bcff7b842a5eb220ab000881223da4315cf49a6;hb=39eb2fda3eaef2de78a8134556015ff86e9b85d4;hp=07af7aca10feb92288ca8f1e7708f4d29cf20200;hpb=d641909f556da373ede15b257898ddc183e0954b;p=quassel.git diff --git a/src/client/messagemodel.cpp b/src/client/messagemodel.cpp index 07af7aca..6bcff7b8 100644 --- a/src/client/messagemodel.cpp +++ b/src/client/messagemodel.cpp @@ -219,7 +219,7 @@ int MessageModel::insertMessagesGracefully(const QList &msglist) { while(iter != msglist.constBegin()) { iter--; - if(!fastForward && (*iter).msgId() < minId) + if(!fastForward && (*iter).msgId() <= minId) break; processedMsgs++; @@ -250,7 +250,7 @@ int MessageModel::insertMessagesGracefully(const QList &msglist) { } } else { while(iter != msglist.constEnd()) { - if(!fastForward && (*iter).msgId() < minId) + if(!fastForward && (*iter).msgId() <= minId) break; processedMsgs++; @@ -348,6 +348,18 @@ void MessageModel::changeOfDay() { _nextDayChange = _nextDayChange.addSecs(86400); } +void MessageModel::insertErrorMessage(BufferInfo bufferInfo, const QString &errorString) { + int idx = messageCount(); + beginInsertRows(QModelIndex(), idx, idx); + Message msg(bufferInfo, Message::Error, errorString); + if(!messagesIsEmpty()) + msg.setMsgId(messageItemAt(idx-1)->msgId()); + else + msg.setMsgId(0); + insertMessage__(idx, msg); + endInsertRows(); +} + void MessageModel::requestBacklog(BufferId bufferId) { if(_messagesWaiting.contains(bufferId)) return; @@ -409,6 +421,9 @@ bool MessageModelItem::setData(int column, const QVariant &value, int role) { Q_UNUSED(column); switch(role) { + case MessageModel::FlagsRole: + _msg.setFlags((Message::Flags)value.toUInt()); + return true; case MessageModel::RedirectedToRole: _redirectedTo = value.value(); return true;