From ee46074d500e5ea300f9bef0b979f47a8f0a0c75 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Thu, 30 Nov 2023 17:00:54 +0300 Subject: =?UTF-8?q?fixes=20#3981=20(NewStory:=20=D0=B2=20=D0=B3=D1=80?= =?UTF-8?q?=D1=83=D0=BF=D1=87=D0=B0=D1=82=D0=B0=D1=85=20=D0=B2=D1=85=D0=BE?= =?UTF-8?q?=D0=B4=D1=8F=D1=89=D0=B8=D0=B5=20=D0=BE=D1=82=D0=BE=D0=B1=D1=80?= =?UTF-8?q?=D0=B0=D0=B6=D0=B0=D1=8E=D1=82=D1=81=D1=8F=20=D0=BE=D1=82=20?= =?UTF-8?q?=D0=B8=D0=BC=D0=B5=D0=BD=D0=B8=20=D0=B3=D1=80=D1=83=D0=BF=D0=BF?= =?UTF-8?q?=D1=8B)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/NewStory/src/history_array.cpp | 74 +++++++++++++++++----------------- 1 file changed, 38 insertions(+), 36 deletions(-) (limited to 'plugins/NewStory/src') diff --git a/plugins/NewStory/src/history_array.cpp b/plugins/NewStory/src/history_array.cpp index 380b23785e..f05ac90363 100644 --- a/plugins/NewStory/src/history_array.cpp +++ b/plugins/NewStory/src/history_array.cpp @@ -464,48 +464,50 @@ void HistoryArray::addChatEvent(SESSION_INFO *si, const LOGINFO *lin) if (si == nullptr) return; - if (si->pMI->bDatabase && lin->hEvent) { - addEvent(si->hContact, lin->hEvent, 1); - return; - } - - CMStringW wszText; - bool bTextUsed = Chat_GetDefaultEventDescr(si, lin, wszText); - if (!bTextUsed && lin->ptszText) { - if (!wszText.IsEmpty()) - wszText.AppendChar(' '); - wszText.Append(g_chatApi.RemoveFormatting(lin->ptszText)); - } - int numItems = getCount(); auto &p = allocateItem(); p.hContact = si->hContact; - p.wtext = wszText.Detach(); - p.m_bLoaded = true; - p.m_bHighlighted = lin->bIsHighlighted; - p.dbe.timestamp = lin->time; - if (lin->bIsMe) - p.dbe.flags |= DBEF_SENT; - - switch (lin->iType) { - case GC_EVENT_MESSAGE: - case GC_EVENT_INFORMATION: - p.dbe.eventType = EVENTTYPE_MESSAGE; - break; - case GC_EVENT_SETCONTACTSTATUS: - p.dbe.eventType = EVENTTYPE_STATUSCHANGE; - break; + if (si->pMI->bDatabase && lin->hEvent) { + p.hEvent = lin->hEvent; + p.load(true); + } + else { + CMStringW wszText; + bool bTextUsed = Chat_GetDefaultEventDescr(si, lin, wszText); + if (!bTextUsed && lin->ptszText) { + if (!wszText.IsEmpty()) + wszText.AppendChar(' '); + wszText.Append(g_chatApi.RemoveFormatting(lin->ptszText)); + } - case GC_EVENT_JOIN: - case GC_EVENT_PART: - case GC_EVENT_QUIT: - p.dbe.eventType = EVENTTYPE_JABBER_PRESENCE; - break; + p.wtext = wszText.Detach(); + p.m_bLoaded = true; + p.m_bHighlighted = lin->bIsHighlighted; + p.dbe.timestamp = lin->time; + if (lin->bIsMe) + p.dbe.flags |= DBEF_SENT; + + switch (lin->iType) { + case GC_EVENT_MESSAGE: + case GC_EVENT_INFORMATION: + p.dbe.eventType = EVENTTYPE_MESSAGE; + break; - default: - p.dbe.eventType = EVENTTYPE_OTHER; - break; + case GC_EVENT_SETCONTACTSTATUS: + p.dbe.eventType = EVENTTYPE_STATUSCHANGE; + break; + + case GC_EVENT_JOIN: + case GC_EVENT_PART: + case GC_EVENT_QUIT: + p.dbe.eventType = EVENTTYPE_JABBER_PRESENCE; + break; + + default: + p.dbe.eventType = EVENTTYPE_OTHER; + break; + } } if (lin->ptszNick) { -- cgit v1.2.3