mirror of
https://github.com/status-im/status-desktop.git
synced 2025-02-22 11:38:57 +00:00
feat(chat): allow for editing last user message using arrow-up key
This commit is contained in:
parent
784b9acd4f
commit
f3eb29bfea
@ -166,6 +166,12 @@ QtObject:
|
||||
proc jumpToMessage*(self: View, messageId: string) {.slot.} =
|
||||
self.delegate.scrollToMessage(messageId)
|
||||
|
||||
proc setEditModeOnAndScrollToLastMessage*(self: View, pubkey: string) {.slot.} =
|
||||
let lastMessage = self.model.getLastItemFrom(pubKey)
|
||||
if lastMessage != nil and lastMessage.id != "":
|
||||
self.model.setEditModeOn(lastMessage.id)
|
||||
self.jumpToMessage(lastMessage.id)
|
||||
|
||||
proc resendMessage*(self: View, messageId: string) {.slot.} =
|
||||
let error = self.delegate.resendChatMessage(messageId)
|
||||
if (error != ""):
|
||||
|
@ -354,6 +354,13 @@ QtObject:
|
||||
self.countChanged()
|
||||
self.updateMessagesWithResponseTo(messageId)
|
||||
|
||||
proc getLastItemFrom*(self: Model, pubkey: string): Item =
|
||||
# last item == first time since we process messages in reverse order
|
||||
for i in 0 ..< self.items.len:
|
||||
if self.items[i].senderId == pubkey:
|
||||
return self.items[i]
|
||||
|
||||
|
||||
proc getItemWithMessageId*(self: Model, messageId: string): Item =
|
||||
let ind = self.findIndexForMessageId(messageId)
|
||||
if(ind == -1):
|
||||
|
@ -180,6 +180,12 @@ QtObject {
|
||||
messageModule.setEditModeOn(messageId)
|
||||
}
|
||||
|
||||
function setEditModeOnLastMessage(pubkey) {
|
||||
if(!messageModule)
|
||||
return
|
||||
messageModule.setEditModeOnAndScrollToLastMessage(pubkey)
|
||||
}
|
||||
|
||||
function setEditModeOff(messageId) {
|
||||
if(!messageModule)
|
||||
return
|
||||
|
@ -250,6 +250,7 @@ ColumnLayout {
|
||||
onUnblockChat: {
|
||||
chatContentModule.unblockChat()
|
||||
}
|
||||
onKeyUpPress: messageStore.setEditModeOnLastMessage(root.rootStore.userProfileInst.pubKey)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -28,6 +28,7 @@ Rectangle {
|
||||
signal stickerSelected(string hashId, string packId, string url)
|
||||
signal sendMessage(var event)
|
||||
signal unblockChat()
|
||||
signal keyUpPress()
|
||||
|
||||
property var usersStore
|
||||
property var store
|
||||
@ -358,6 +359,10 @@ Rectangle {
|
||||
} else if (event.key === Qt.Key_Escape && control.isReply) {
|
||||
control.isReply = false
|
||||
event.accepted = true
|
||||
} else if (event.key === Qt.Key_Up && getPlainText() == "") {
|
||||
event.accepted = true
|
||||
control.keyUpPress()
|
||||
return
|
||||
}
|
||||
|
||||
const symbolPressed = event.text.length > 0 &&
|
||||
|
Loading…
x
Reference in New Issue
Block a user