fix: various
- Timeline updates were displaying the current active chat messages - Cursor for existing chat messages was being overwritten
This commit is contained in:
parent
d299e05e02
commit
157a53b02b
|
@ -192,6 +192,12 @@ QtObject:
|
||||||
QtProperty[QVariant] channelView:
|
QtProperty[QVariant] channelView:
|
||||||
read = getChannelView
|
read = getChannelView
|
||||||
|
|
||||||
|
proc triggerActiveChannelChange*(self:ChatsView) {.signal.}
|
||||||
|
|
||||||
|
proc activeChannelChanged*(self: ChatsView) {.slot.} =
|
||||||
|
self.channelView.activeChannelChanged()
|
||||||
|
self.triggerActiveChannelChange()
|
||||||
|
|
||||||
proc getMessageListIndexById(self: ChatsView, id: string): int
|
proc getMessageListIndexById(self: ChatsView, id: string): int
|
||||||
|
|
||||||
proc replaceMentionsWithPubKeys(self: ChatsView, mentions: seq[string], contacts: seq[Profile], message: string, predicate: proc (contact: Profile): string): string =
|
proc replaceMentionsWithPubKeys(self: ChatsView, mentions: seq[string], contacts: seq[Profile], message: string, predicate: proc (contact: Profile): string): string =
|
||||||
|
@ -378,7 +384,7 @@ QtObject:
|
||||||
if not self.channelView.activeChannel.chatItem.isNil:
|
if not self.channelView.activeChannel.chatItem.isNil:
|
||||||
self.channelView.previousActiveChannelIndex = self.channelView.chats.chats.findIndexById(self.channelView.activeChannel.id)
|
self.channelView.previousActiveChannelIndex = self.channelView.chats.chats.findIndexById(self.channelView.activeChannel.id)
|
||||||
self.channelView.activeChannel.setChatItem(self.timelineChat)
|
self.channelView.activeChannel.setChatItem(self.timelineChat)
|
||||||
self.channelView.activeChannelChanged()
|
self.activeChannelChanged()
|
||||||
|
|
||||||
proc pushMessages*(self:ChatsView, messages: var seq[Message]) =
|
proc pushMessages*(self:ChatsView, messages: var seq[Message]) =
|
||||||
for msg in messages.mitems:
|
for msg in messages.mitems:
|
||||||
|
@ -390,7 +396,7 @@ QtObject:
|
||||||
if (chat.chatType == ChatType.Profile):
|
if (chat.chatType == ChatType.Profile):
|
||||||
let timelineChatId = status_utils.getTimelineChatId()
|
let timelineChatId = status_utils.getTimelineChatId()
|
||||||
self.messageList[timelineChatId].add(msg)
|
self.messageList[timelineChatId].add(msg)
|
||||||
if self.channelView.activeChannel.id == timelineChatId: self.channelView.activeChannelChanged()
|
if self.channelView.activeChannel.id == timelineChatId: self.activeChannelChanged()
|
||||||
msgIndex = self.messageList[timelineChatId].messages.len - 1
|
msgIndex = self.messageList[timelineChatId].messages.len - 1
|
||||||
else:
|
else:
|
||||||
self.messageList[msg.chatId].add(msg)
|
self.messageList[msg.chatId].add(msg)
|
||||||
|
@ -433,7 +439,7 @@ QtObject:
|
||||||
self.channelView.chats.updateChat(channel)
|
self.channelView.chats.updateChat(channel)
|
||||||
if (self.channelView.activeChannel.id == channel.id):
|
if (self.channelView.activeChannel.id == channel.id):
|
||||||
self.channelView.activeChannel.setChatItem(channel)
|
self.channelView.activeChannel.setChatItem(channel)
|
||||||
self.channelView.activeChannelChanged()
|
self.activeChannelChanged()
|
||||||
|
|
||||||
|
|
||||||
proc markMessageAsSent*(self:ChatsView, chat: string, messageId: string) =
|
proc markMessageAsSent*(self:ChatsView, chat: string, messageId: string) =
|
||||||
|
@ -455,11 +461,12 @@ QtObject:
|
||||||
|
|
||||||
proc getMessageList(self: ChatsView): QVariant {.slot.} =
|
proc getMessageList(self: ChatsView): QVariant {.slot.} =
|
||||||
self.upsertChannel(self.channelView.activeChannel.id)
|
self.upsertChannel(self.channelView.activeChannel.id)
|
||||||
|
echo self.channelView.activeChannel.id
|
||||||
return newQVariant(self.messageList[self.channelView.activeChannel.id])
|
return newQVariant(self.messageList[self.channelView.activeChannel.id])
|
||||||
|
|
||||||
QtProperty[QVariant] messageList:
|
QtProperty[QVariant] messageList:
|
||||||
read = getMessageList
|
read = getMessageList
|
||||||
notify = activeChannelChanged
|
notify = triggerActiveChannelChange
|
||||||
|
|
||||||
proc getPinnedMessagesList(self: ChatsView): QVariant {.slot.} =
|
proc getPinnedMessagesList(self: ChatsView): QVariant {.slot.} =
|
||||||
self.upsertChannel(self.channelView.activeChannel.id)
|
self.upsertChannel(self.channelView.activeChannel.id)
|
||||||
|
@ -467,7 +474,7 @@ QtObject:
|
||||||
|
|
||||||
QtProperty[QVariant] pinnedMessagesList:
|
QtProperty[QVariant] pinnedMessagesList:
|
||||||
read = getPinnedMessagesList
|
read = getPinnedMessagesList
|
||||||
notify = activeChannelChanged
|
notify = triggerActiveChannelChange
|
||||||
|
|
||||||
proc pushChatItem*(self: ChatsView, chatItem: Chat) =
|
proc pushChatItem*(self: ChatsView, chatItem: Chat) =
|
||||||
discard self.channelView.chats.addChatItemToList(chatItem)
|
discard self.channelView.chats.addChatItemToList(chatItem)
|
||||||
|
@ -594,7 +601,7 @@ QtObject:
|
||||||
|
|
||||||
proc removeMessagesFromTimeline*(self: ChatsView, chatId: string) =
|
proc removeMessagesFromTimeline*(self: ChatsView, chatId: string) =
|
||||||
self.messageList[status_utils.getTimelineChatId()].deleteMessagesByChatId(chatId)
|
self.messageList[status_utils.getTimelineChatId()].deleteMessagesByChatId(chatId)
|
||||||
self.channelView.activeChannelChanged()
|
self.activeChannelChanged()
|
||||||
|
|
||||||
proc unreadMessages*(self: ChatsView): int {.slot.} =
|
proc unreadMessages*(self: ChatsView): int {.slot.} =
|
||||||
result = self.unreadMessageCnt
|
result = self.unreadMessageCnt
|
||||||
|
@ -622,7 +629,7 @@ QtObject:
|
||||||
self.channelView.chats.updateChat(chat)
|
self.channelView.chats.updateChat(chat)
|
||||||
if(self.channelView.activeChannel.id == chat.id):
|
if(self.channelView.activeChannel.id == chat.id):
|
||||||
self.channelView.activeChannel.setChatItem(chat)
|
self.channelView.activeChannel.setChatItem(chat)
|
||||||
self.channelView.activeChannelChanged()
|
self.activeChannelChanged()
|
||||||
self.currentSuggestions.setNewData(self.status.contacts.getContacts())
|
self.currentSuggestions.setNewData(self.status.contacts.getContacts())
|
||||||
if self.channelView.contextChannel.id == chat.id:
|
if self.channelView.contextChannel.id == chat.id:
|
||||||
self.channelView.contextChannel.setChatItem(chat)
|
self.channelView.contextChannel.setChatItem(chat)
|
||||||
|
@ -779,5 +786,3 @@ QtObject:
|
||||||
proc setActiveChannel*(self: ChatsView, channel: string) {.slot.} =
|
proc setActiveChannel*(self: ChatsView, channel: string) {.slot.} =
|
||||||
self.channelView.setActiveChannel(channel)
|
self.channelView.setActiveChannel(channel)
|
||||||
|
|
||||||
proc activeChannelChanged*(self: ChatsView) =
|
|
||||||
self.channelView.activeChannelChanged()
|
|
||||||
|
|
|
@ -538,7 +538,7 @@ proc pinnedMessagesByChatID*(self: ChatModel, chatId: string): seq[Message] =
|
||||||
result = messageTuple[1]
|
result = messageTuple[1]
|
||||||
|
|
||||||
proc pinnedMessagesByChatID*(self: ChatModel, chatId: string, cursor: string = "", pinnedMessages: seq[Message]) =
|
proc pinnedMessagesByChatID*(self: ChatModel, chatId: string, cursor: string = "", pinnedMessages: seq[Message]) =
|
||||||
self.msgCursor[chatId] = cursor
|
self.pinnedMsgCursor[chatId] = cursor
|
||||||
|
|
||||||
self.events.emit("pinnedMessagesLoaded", MsgsLoadedArgs(messages: pinnedMessages))
|
self.events.emit("pinnedMessagesLoaded", MsgsLoadedArgs(messages: pinnedMessages))
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ ScrollView {
|
||||||
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
|
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
|
||||||
|
|
||||||
property var onActivated: function () {
|
property var onActivated: function () {
|
||||||
chatsModel.channelView.setActiveChannelToTimeline()
|
chatsModel.setActiveChannelToTimeline()
|
||||||
statusUpdateInput.textInput.forceActiveFocus(Qt.MouseFocusReason)
|
statusUpdateInput.textInput.forceActiveFocus(Qt.MouseFocusReason)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue