X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fclient%2Fmessagemodel.cpp;h=0cc31a181f4953737a52614337422860d468601f;hb=8438c6f685ed43943d36996ada054941a30e3cb3;hp=6bcff7b842a5eb220ab000881223da4315cf49a6;hpb=2f7cc62b4d9091d026316d0f0823ac4a6236cad8;p=quassel.git diff --git a/src/client/messagemodel.cpp b/src/client/messagemodel.cpp index 6bcff7b8..0cc31a18 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) @@ -385,8 +387,10 @@ void MessageModel::messagesReceived(BufferId bufferId, int count) { 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) { @@ -407,13 +411,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(); } } @@ -421,9 +426,6 @@ 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;