fix double message insertion

This commit is contained in:
Gaelle Braud 2025-07-31 17:25:37 +02:00
parent ac4b5e60f7
commit d17a61e6d0
2 changed files with 10 additions and 6 deletions

View file

@ -523,11 +523,15 @@ void ChatCore::resetEventLogList(QList<QSharedPointer<EventLogCore>> list) {
void ChatCore::appendEventLogsToEventLogList(QList<QSharedPointer<EventLogCore>> list) { void ChatCore::appendEventLogsToEventLogList(QList<QSharedPointer<EventLogCore>> list) {
int nbAdded = 0; int nbAdded = 0;
for (auto &e : list) { for (auto &e : list) {
if (mEventLogList.contains(e)) continue; auto it = std::find_if(mEventLogList.begin(), mEventLogList.end(), [e](QSharedPointer<EventLogCore> event) {
if (auto message = e->getChatMessageCore()) return e->getEventLogId() == event->getEventLogId();
connect(message.get(), &ChatMessageCore::isReadChanged, this, [this] { emit lUpdateUnreadCount(); }); });
mEventLogList.append(e); if (it == mEventLogList.end()) {
++nbAdded; if (auto message = e->getChatMessageCore())
connect(message.get(), &ChatMessageCore::isReadChanged, this, [this] { emit lUpdateUnreadCount(); });
mEventLogList.append(e);
++nbAdded;
}
} }
if (nbAdded > 0) emit eventsInserted(list); if (nbAdded > 0) emit eventsInserted(list);
} }

View file

@ -75,7 +75,7 @@ private:
QSharedPointer<ChatMessageCore> mChatMessageCore = nullptr; QSharedPointer<ChatMessageCore> mChatMessageCore = nullptr;
QSharedPointer<CallHistoryCore> mCallHistoryCore = nullptr; QSharedPointer<CallHistoryCore> mCallHistoryCore = nullptr;
LinphoneEnums::EventLogType mEventLogType; LinphoneEnums::EventLogType mEventLogType;
bool mHandled; bool mHandled = false;
bool mImportant; bool mImportant;
bool mEphemeralRelated; bool mEphemeralRelated;
QString mEventDetails; QString mEventDetails;