fix(replies): update quoted message data when receiving new messages
Fixes #9156
This commit is contained in:
parent
162fe76273
commit
470a872659
|
@ -292,6 +292,31 @@ QtObject:
|
||||||
let parentModelIndex = newQModelIndex()
|
let parentModelIndex = newQModelIndex()
|
||||||
defer: parentModelIndex.delete
|
defer: parentModelIndex.delete
|
||||||
|
|
||||||
|
# Update replied to messages if there are
|
||||||
|
# We update replies before adding, since we do not need to update the new items, they should already be up to date
|
||||||
|
for i in 0 ..< self.items.len:
|
||||||
|
var oldItem = self.items[i]
|
||||||
|
if oldItem.responseToMessageWithId == "" or oldItem.quotedMessageFrom != "":
|
||||||
|
continue
|
||||||
|
for newItem in items:
|
||||||
|
if oldItem.responseToMessageWithId == newItem.id:
|
||||||
|
oldItem.quotedMessageFrom = newItem.senderId
|
||||||
|
oldItem.quotedMessageAuthorDisplayName = newItem.senderDisplayName
|
||||||
|
oldItem.quotedMessageAuthorAvatar = newItem.senderIcon
|
||||||
|
oldItem.quotedMessageParsedText = newItem.messageText
|
||||||
|
oldItem.quotedMessageText = newItem.unparsedText
|
||||||
|
oldItem.quotedMessageContentType = newItem.contentType.int
|
||||||
|
let index = self.createIndex(i, 0, nil)
|
||||||
|
self.dataChanged(index, index, @[
|
||||||
|
ModelRole.QuotedMessageFrom.int,
|
||||||
|
ModelRole.QuotedMessageAuthorDisplayName.int,
|
||||||
|
ModelRole.QuotedMessageAuthorAvatar.int,
|
||||||
|
ModelRole.QuotedMessageText.int,
|
||||||
|
ModelRole.QuotedMessageParsedText.int,
|
||||||
|
ModelRole.QuotedMessageContentType.int,
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
self.beginInsertRows(parentModelIndex, position, position + items.len - 1)
|
self.beginInsertRows(parentModelIndex, position, position + items.len - 1)
|
||||||
self.items.insert(items, position)
|
self.items.insert(items, position)
|
||||||
self.endInsertRows()
|
self.endInsertRows()
|
||||||
|
|
Loading…
Reference in New Issue