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) {
int nbAdded = 0;
for (auto &e : list) {
if (mEventLogList.contains(e)) continue;
if (auto message = e->getChatMessageCore())
connect(message.get(), &ChatMessageCore::isReadChanged, this, [this] { emit lUpdateUnreadCount(); });
mEventLogList.append(e);
++nbAdded;
auto it = std::find_if(mEventLogList.begin(), mEventLogList.end(), [e](QSharedPointer<EventLogCore> event) {
return e->getEventLogId() == event->getEventLogId();
});
if (it == mEventLogList.end()) {
if (auto message = e->getChatMessageCore())
connect(message.get(), &ChatMessageCore::isReadChanged, this, [this] { emit lUpdateUnreadCount(); });
mEventLogList.append(e);
++nbAdded;
}
}
if (nbAdded > 0) emit eventsInserted(list);
}

View file

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