diff --git a/src/messagesadapter.cpp b/src/messagesadapter.cpp index 479aff2e7cc96587d4fbca6f015d1e809d8956eb..25f9121830104d7e165922e1ee1c448b7491bd76 100644 --- a/src/messagesadapter.cpp +++ b/src/messagesadapter.cpp @@ -54,7 +54,10 @@ MessagesAdapter::MessagesAdapter(AppSettingsManager* settingsManager, const auto& conversation = lrcInstance_->getConversationFromConvUid(convId); filteredMsgListModel_->setSourceModel(conversation.interactions.get()); set_messageListModel(QVariant::fromValue(filteredMsgListModel_)); - set_currentConvComposingList({}); + if (!conversation.typers.empty()) + set_currentConvComposingList(conversationTypersUrlToName(conversation.typers)); + else + set_currentConvComposingList({}); }); connect(previewEngine_, &PreviewEngine::infoReady, this, &MessagesAdapter::onPreviewInfoReady); @@ -434,15 +437,24 @@ MessagesAdapter::onComposingStatusChanged(const QString& convId, const QString& contactUri, bool isComposing) { + Q_UNUSED(contactUri) if (lrcInstance_->get_selectedConvUid() == convId) { - auto name = lrcInstance_->getCurrentContactModel()->bestNameForContact(contactUri); - if (isComposing) - currentConvComposingList_.append(name); - else - currentConvComposingList_.removeOne(name); + const QString& accId = lrcInstance_->get_currentAccountId(); + auto& conversation = lrcInstance_->getConversationFromConvUid(convId, accId); + set_currentConvComposingList(conversationTypersUrlToName(conversation.typers)); + } +} - Q_EMIT currentConvComposingListChanged(); +QList<QString> +MessagesAdapter::conversationTypersUrlToName(const QSet<QString>& typersSet) +{ + QList<QString> nameList; + for (const auto& id : typersSet) { + auto name = lrcInstance_->getCurrentContactModel()->bestNameForContact(id); + nameList.append(name); } + + return nameList; } bool diff --git a/src/messagesadapter.h b/src/messagesadapter.h index e6717ef4c39094c119df3c4915cadea236f8ae1f..bfa4e6279d1f5cd6292991065966e7b2bad08215 100644 --- a/src/messagesadapter.h +++ b/src/messagesadapter.h @@ -129,6 +129,8 @@ private Q_SLOTS: bool isComposing); private: + QList<QString> conversationTypersUrlToName(const QSet<QString>& typersSet); + AppSettingsManager* settingsManager_; PreviewEngine* previewEngine_; FilteredMsgListModel* filteredMsgListModel_;