From 9addf1221baad9c039d95679218548b11b266c0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Tinkl?= Date: Mon, 19 Sep 2022 10:40:02 +0200 Subject: [PATCH] =?UTF-8?q?fix(PinnedMessagesPopup):=20=E2=80=9CJump=20to?= =?UTF-8?q?=E2=80=9D=20button=20doesn=E2=80=99t=20work=20pinned=20messages?= =?UTF-8?q?=20popup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This was never implemented, eventhough a similar approach is used with the global AppSearch. Expose the method `scrollToMessage(messageId)` so that it can be called from QML directly. Fixes #7375 --- .../main/chat_section/chat_content/messages/view.nim | 5 ++++- ui/app/AppLayouts/Chat/popups/PinnedMessagesPopup.qml | 5 +++++ ui/app/AppLayouts/Chat/views/ChatContentView.qml | 1 + ui/app/AppLayouts/Chat/views/ChatHeaderContentView.qml | 3 ++- ui/app/AppLayouts/Chat/views/ChatMessagesView.qml | 6 +----- ui/imports/shared/views/chat/MessageView.qml | 1 + 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/app/modules/main/chat_section/chat_content/messages/view.nim b/src/app/modules/main/chat_section/chat_content/messages/view.nim index 97206c60fc..eba4f49732 100644 --- a/src/app/modules/main/chat_section/chat_content/messages/view.nim +++ b/src/app/modules/main/chat_section/chat_content/messages/view.nim @@ -165,4 +165,7 @@ QtObject: proc refreshAMessageUserRespondedTo(self: View, msgId: string) {.signal.} proc emitRefreshAMessageUserRespondedToSignal*(self: View, msgId: string) = - self.refreshAMessageUserRespondedTo(msgId) \ No newline at end of file + self.refreshAMessageUserRespondedTo(msgId) + + proc jumpToMessage*(self: View, messageId: string) {.slot.} = + self.delegate.scrollToMessage(messageId) diff --git a/ui/app/AppLayouts/Chat/popups/PinnedMessagesPopup.qml b/ui/app/AppLayouts/Chat/popups/PinnedMessagesPopup.qml index 40523f5902..42b101de32 100644 --- a/ui/app/AppLayouts/Chat/popups/PinnedMessagesPopup.qml +++ b/ui/app/AppLayouts/Chat/popups/PinnedMessagesPopup.qml @@ -15,6 +15,7 @@ StatusDialog { property var store property var messageStore + property var messagesModule property var pinnedMessagesModel //this doesn't belong to the messageStore, it is a part of the ChatContentStore, but we didn't introduce it yet. property string messageToPin property string messageToUnpin @@ -150,6 +151,10 @@ StatusDialog { onOpenProfileClicked: { Global.openProfilePopup(publicKey, null, state) } + + onJumpToMessage: { + root.messagesModule.jumpToMessage(messageId); + } } } diff --git a/ui/app/AppLayouts/Chat/views/ChatContentView.qml b/ui/app/AppLayouts/Chat/views/ChatContentView.qml index 46136e46fd..9311d96bc9 100644 --- a/ui/app/AppLayouts/Chat/views/ChatContentView.qml +++ b/ui/app/AppLayouts/Chat/views/ChatContentView.qml @@ -95,6 +95,7 @@ ColumnLayout { Global.openPopup(Global.pinnedMessagesPopup, { store: rootStore, messageStore: messageStore, + messagesModule: chatContentModule.messagesModule, pinnedMessagesModel: chatContentModule.pinnedMessagesModel, messageToPin: messageId }) diff --git a/ui/app/AppLayouts/Chat/views/ChatHeaderContentView.qml b/ui/app/AppLayouts/Chat/views/ChatHeaderContentView.qml index 92fe595710..a7529a9537 100644 --- a/ui/app/AppLayouts/Chat/views/ChatHeaderContentView.qml +++ b/ui/app/AppLayouts/Chat/views/ChatHeaderContentView.qml @@ -291,12 +291,13 @@ RowLayout { onPinnedMessagesCountClicked: { if(!chatContentModule) { - console.debug("error on open pinned messages - chat content module is not set") + console.warn("error on open pinned messages - chat content module is not set") return } Global.openPopup(Global.pinnedMessagesPopup, { store: rootStore, messageStore: root.rootStore.messageStore, + messagesModule: chatContentModule.messagesModule, pinnedMessagesModel: chatContentModule.pinnedMessagesModel, messageToPin: "" }) diff --git a/ui/app/AppLayouts/Chat/views/ChatMessagesView.qml b/ui/app/AppLayouts/Chat/views/ChatMessagesView.qml index fd7cc13e41..4670d3e669 100644 --- a/ui/app/AppLayouts/Chat/views/ChatMessagesView.qml +++ b/ui/app/AppLayouts/Chat/views/ChatMessagesView.qml @@ -7,6 +7,7 @@ import QtGraphicalEffects 1.13 import QtQuick.Dialogs 1.3 import StatusQ.Core 0.1 +import StatusQ.Core.Theme 0.1 import StatusQ.Controls 0.1 import StatusQ.Components 0.1 @@ -19,11 +20,6 @@ import shared.status 1.0 import shared.controls 1.0 import shared.views.chat 1.0 -import StatusQ.Core 0.1 -import StatusQ.Core.Theme 0.1 -import StatusQ.Controls 0.1 -import StatusQ.Components 0.1 - import "../controls" Item { diff --git a/ui/imports/shared/views/chat/MessageView.qml b/ui/imports/shared/views/chat/MessageView.qml index 6fc0828cb7..f2c645f134 100644 --- a/ui/imports/shared/views/chat/MessageView.qml +++ b/ui/imports/shared/views/chat/MessageView.qml @@ -744,6 +744,7 @@ Loader { Global.openPopup(Global.pinnedMessagesPopup, { store: root.rootStore, messageStore: messageStore, + messagesModule: chatContentModule.messagesModule, pinnedMessagesModel: chatContentModule.pinnedMessagesModel, messageToPin: root.messageId });