while(iter != msglist.constBegin()) {
iter--;
- if(!fastForward && (*iter).msgId() < minId)
+ if(!fastForward && (*iter).msgId() <= minId)
break;
processedMsgs++;
}
} else {
while(iter != msglist.constEnd()) {
- if(!fastForward && (*iter).msgId() < minId)
+ if(!fastForward && (*iter).msgId() <= minId)
break;
processedMsgs++;
}
void MessageModel::clear() {
- beginRemoveRows(QModelIndex(), 0, rowCount() - 1);
- removeAllMessages();
- endRemoveRows();
_messagesWaiting.clear();
+ if (rowCount() > 0) {
+ beginRemoveRows(QModelIndex(), 0, rowCount() - 1);
+ removeAllMessages();
+ endRemoveRows();
+ }
}
// returns index of msg with given Id or of the next message after that (i.e., the index where we'd insert this msg)
_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;
return;
_messagesWaiting[bufferId] -= count;
- if(_messagesWaiting[bufferId] <= 0)
+ if(_messagesWaiting[bufferId] <= 0) {
_messagesWaiting.remove(bufferId);
+ emit finishedBacklogFetch(bufferId);
+ }
}
void MessageModel::buffersPermanentlyMerged(BufferId bufferId1, BufferId bufferId2) {
return QVariant();
switch(role) {
- case MessageModel::MsgIdRole: return QVariant::fromValue<MsgId>(msgId());
- case MessageModel::BufferIdRole: return QVariant::fromValue<BufferId>(bufferId());
- case MessageModel::TypeRole: return msgType();
- case MessageModel::FlagsRole: return (int)msgFlags();
- case MessageModel::TimestampRole: return timestamp();
- case MessageModel::RedirectedToRole: return qVariantFromValue<BufferId>(_redirectedTo);
- default: return QVariant();
+ case MessageModel::MessageRole: return QVariant::fromValue<Message>(message());
+ case MessageModel::MsgIdRole: return QVariant::fromValue<MsgId>(msgId());
+ case MessageModel::BufferIdRole: return QVariant::fromValue<BufferId>(bufferId());
+ case MessageModel::TypeRole: return msgType();
+ case MessageModel::FlagsRole: return (int)msgFlags();
+ case MessageModel::TimestampRole: return timestamp();
+ case MessageModel::RedirectedToRole: return qVariantFromValue<BufferId>(_redirectedTo);
+ default: return QVariant();
}
}