X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fmessagemodel.cpp;h=d10a9bcc1f9ea2043dd1736b79bc64f7b694263f;hp=91eb769f7b712289f82fcdec7b9286e057a185ff;hb=17492fb6c867296692b782227de660d352545f73;hpb=54afee59c56e1a75352b32200b9503150601bd90 diff --git a/src/client/messagemodel.cpp b/src/client/messagemodel.cpp index 91eb769f..d10a9bcc 100644 --- a/src/client/messagemodel.cpp +++ b/src/client/messagemodel.cpp @@ -307,10 +307,12 @@ void MessageModel::customEvent(QEvent *event) { } 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) @@ -348,6 +350,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; @@ -395,13 +409,14 @@ QVariant MessageModelItem::data(int column, int role) const { return QVariant(); switch(role) { - case MessageModel::MsgIdRole: return QVariant::fromValue(msgId()); - case MessageModel::BufferIdRole: return QVariant::fromValue(bufferId()); - case MessageModel::TypeRole: return msgType(); - case MessageModel::FlagsRole: return (int)msgFlags(); - case MessageModel::TimestampRole: return timestamp(); - case MessageModel::RedirectedToRole: return qVariantFromValue(_redirectedTo); - default: return QVariant(); + case MessageModel::MessageRole: return QVariant::fromValue(message()); + case MessageModel::MsgIdRole: return QVariant::fromValue(msgId()); + case MessageModel::BufferIdRole: return QVariant::fromValue(bufferId()); + case MessageModel::TypeRole: return msgType(); + case MessageModel::FlagsRole: return (int)msgFlags(); + case MessageModel::TimestampRole: return timestamp(); + case MessageModel::RedirectedToRole: return qVariantFromValue(_redirectedTo); + default: return QVariant(); } }