From b5c54696cefcb122f9fa2cd7b45f5411cbf93eaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Blin?= <sebastien.blin@savoirfairelinux.com> Date: Mon, 18 Jul 2022 14:45:29 -0400 Subject: [PATCH] swarmdetailspanel: update on changes + fix chatviewheader Change-Id: Ieeb6811101f7c1dadc2b9d07fdac93cc4fe68dd4 --- src/app/currentconversation.cpp | 15 ++++++++++++++ src/app/currentconversation.h | 1 + src/app/mainview/MainView.qml | 2 -- src/app/mainview/components/ChatView.qml | 6 ------ .../mainview/components/ChatViewHeader.qml | 20 +++++++++++-------- .../mainview/components/SwarmDetailsPanel.qml | 6 ++++-- 6 files changed, 32 insertions(+), 18 deletions(-) diff --git a/src/app/currentconversation.cpp b/src/app/currentconversation.cpp index 5de28c6bb..f54858502 100644 --- a/src/app/currentconversation.cpp +++ b/src/app/currentconversation.cpp @@ -116,6 +116,16 @@ CurrentConversation::onConversationUpdated(const QString& convId) updateData(); } +void +CurrentConversation::onProfileUpdated(const QString& convId) +{ + // filter for our currently set id + if (id_ != convId) + return; + set_title(lrcInstance_->getCurrentConversationModel()->title(convId)); + set_description(lrcInstance_->getCurrentConversationModel()->description(convId)); +} + void CurrentConversation::connectModel() { @@ -128,4 +138,9 @@ CurrentConversation::connectModel() this, &CurrentConversation::onConversationUpdated, Qt::UniqueConnection); + connect(lrcInstance_->getCurrentConversationModel(), + &ConversationModel::profileUpdated, + this, + &CurrentConversation::onProfileUpdated, + Qt::UniqueConnection); } diff --git a/src/app/currentconversation.h b/src/app/currentconversation.h index 6aa85f3d4..7483c107c 100644 --- a/src/app/currentconversation.h +++ b/src/app/currentconversation.h @@ -57,6 +57,7 @@ public: private Q_SLOTS: void updateData(); void onConversationUpdated(const QString& convId); + void onProfileUpdated(const QString& convId); private: LRCInstance* lrcInstance_; diff --git a/src/app/mainview/MainView.qml b/src/app/mainview/MainView.qml index a14a26117..50d71c49b 100644 --- a/src/app/mainview/MainView.qml +++ b/src/app/mainview/MainView.qml @@ -182,8 +182,6 @@ Rectangle { var item = ConversationsAdapter.getConvInfoMap(convId) if (item.convId === undefined) return - chatView.headerUserAliasLabelText = item.title - chatView.headerUserUserNameLabelText = item.description if (item.callStackViewShouldShow) { if (inSettingsView) { toggleSettingsView() diff --git a/src/app/mainview/components/ChatView.qml b/src/app/mainview/components/ChatView.qml index 1cca05915..e79c5d369 100644 --- a/src/app/mainview/components/ChatView.qml +++ b/src/app/mainview/components/ChatView.qml @@ -32,9 +32,6 @@ import "../js/pluginhandlerpickercreation.js" as PluginHandlerPickerCreation Rectangle { id: root - property string headerUserAliasLabelText: "" - property string headerUserUserNameLabelText: "" - property bool allMessagesLoaded signal needToHideConversationInCall @@ -63,9 +60,6 @@ Rectangle { Layout.maximumHeight: JamiTheme.chatViewHeaderPreferredHeight Layout.minimumWidth: JamiTheme.chatViewHeaderMinimumWidth - userAliasLabelText: headerUserAliasLabelText - userUserNameLabelText: headerUserUserNameLabelText - DropArea { anchors.fill: parent onDropped: chatViewFooter.setFilePathsToSend(drop.urls) diff --git a/src/app/mainview/components/ChatViewHeader.qml b/src/app/mainview/components/ChatViewHeader.qml index 8f80044d4..502d5b6b7 100644 --- a/src/app/mainview/components/ChatViewHeader.qml +++ b/src/app/mainview/components/ChatViewHeader.qml @@ -29,15 +29,19 @@ import "../../commoncomponents" Rectangle { id: root - property string userAliasLabelText - property string userUserNameLabelText - signal backClicked signal needToHideConversationInCall signal addToConversationClicked signal pluginSelector signal showDetailsClicked + Connections { + target: CurrentConversation + enabled: true + function onTitleChanged() { title.eText = CurrentConversation.title } + function onDescriptionChanged() { description.eText = CurrentConversation.description } + } + property bool interactionButtonsVisibility: { if (CurrentConversation.inCall) return false @@ -109,7 +113,7 @@ Rectangle { spacing: 0 ElidedTextLabel { - id: userAliasLabel + id: title Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft @@ -118,23 +122,23 @@ Rectangle { horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter - eText: userAliasLabelText + eText: CurrentConversation.title maxWidth: userNameOrIdRect.width } ElidedTextLabel { - id: userUserNameLabel + id: description Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft visible: text.length && - userAliasLabelText != userUserNameLabelText + CurrentConversation.title != CurrentConversation.description font.pointSize: JamiTheme.textFontSize color: JamiTheme.faddedLastInteractionFontColor horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter - eText: userUserNameLabelText + eText: CurrentConversation.description maxWidth: userNameOrIdRect.width } } diff --git a/src/app/mainview/components/SwarmDetailsPanel.qml b/src/app/mainview/components/SwarmDetailsPanel.qml index f8035af9a..4836a1aef 100644 --- a/src/app/mainview/components/SwarmDetailsPanel.qml +++ b/src/app/mainview/components/SwarmDetailsPanel.qml @@ -93,7 +93,8 @@ Rectangle { JamiTheme.chatviewTextColorDark onEditingFinished: { - ConversationsAdapter.updateConversationTitle(LRCInstance.selectedConvUid, titleLine.text) + if (text !== CurrentConversation.title) + ConversationsAdapter.updateConversationTitle(LRCInstance.selectedConvUid, text) } } @@ -132,7 +133,8 @@ Rectangle { JamiTheme.chatviewTextColorDark onEditingFinished: { - ConversationsAdapter.updateConversationDescription(LRCInstance.selectedConvUid, descriptionLine.text) + if (text !== CurrentConversation.description) + ConversationsAdapter.updateConversationDescription(LRCInstance.selectedConvUid, text) } } -- GitLab