diff --git a/src/app/currentconversation.cpp b/src/app/currentconversation.cpp index 5de28c6bbb672bd51c1e93a91ffa697d90578a39..f5485850229f62ad557b364bdd30d79f207fdbb2 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 6aa85f3d44d2c43a89c6a7ef090a4250f3ef8861..7483c107c08bc4ea9748f95503712caae0aba15e 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 a14a26117b06993380abcde8f2e3acd485518e89..50d71c49b7b493dd00581b3433e5763d038ef5d2 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 1cca059156ab77419b23b9c3c8aec5379d253c02..e79c5d369c681695fe7ec1cba0eabb4d8569cf2f 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 8f80044d47f1dd860b00049b43c2d16785112496..502d5b6b785e2266d74411960da5036746fb9de6 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 f8035af9a8d43d5cd76f465c306719d40a0f4c1b..4836a1aef24410d9258e3f8e1d973d6bec463129 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) } }