From cde9a132ca3c62d8f5d9692a93d6d59499ac455e Mon Sep 17 00:00:00 2001 From: George Hazan Date: Wed, 31 Jan 2024 19:38:52 +0300 Subject: ICQ: support for Delete for everyone mode --- protocols/ICQ-WIM/src/proto.cpp | 7 ++++--- protocols/ICQ-WIM/src/proto.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'protocols') diff --git a/protocols/ICQ-WIM/src/proto.cpp b/protocols/ICQ-WIM/src/proto.cpp index 2dd9d96610..9978c83ed6 100644 --- a/protocols/ICQ-WIM/src/proto.cpp +++ b/protocols/ICQ-WIM/src/proto.cpp @@ -221,7 +221,7 @@ void CIcqProto::BatchDeleteMsg() mir_free(it); } - pReq->params << WCHAR_PARAM("sn", GetUserId(m_hDeleteContact)) << BOOL_PARAM("shared", true) << ids; + pReq->params << WCHAR_PARAM("sn", GetUserId(m_hDeleteContact)) << BOOL_PARAM("silent", true) << BOOL_PARAM("shared", m_bRemoveForAll) << ids; Push(pReq); m_arDeleteQueue.destroy(); @@ -243,6 +243,7 @@ void CIcqProto::OnEventDeleted(MCONTACT hContact, MEVENT hEvent, int flags) mir_cslock lck(m_csDeleteQueue); m_hDeleteContact = hContact; + m_bRemoveForAll = (flags & CDF_FOR_EVERYONE) != 0; m_arDeleteQueue.insert(mir_strdup(dbei.szId)); m_impl.m_delete.Start(100); } @@ -514,8 +515,8 @@ INT_PTR CIcqProto::GetCaps(int type, MCONTACT) return PF2_SHORTAWAY | PF2_LONGAWAY | PF2_LIGHTDND | PF2_HEAVYDND; case PFLAGNUM_4: - nReturn = PF4_FORCEAUTH | PF4_SUPPORTIDLE | PF4_OFFLINEFILES | PF4_IMSENDOFFLINE | PF4_SUPPORTTYPING | - PF4_AVATARS | PF4_SERVERMSGID | PF4_READNOTIFY | PF4_REPLY; + nReturn = PF4_FORCEAUTH | PF4_SUPPORTIDLE | PF4_OFFLINEFILES | PF4_IMSENDOFFLINE | PF4_SUPPORTTYPING | + PF4_AVATARS | PF4_SERVERMSGID | PF4_READNOTIFY | PF4_REPLY | PF4_DELETEFORALL; break; case PFLAG_UNIQUEIDTEXT: diff --git a/protocols/ICQ-WIM/src/proto.h b/protocols/ICQ-WIM/src/proto.h index b7f05974ae..f4f3e8f8d7 100644 --- a/protocols/ICQ-WIM/src/proto.h +++ b/protocols/ICQ-WIM/src/proto.h @@ -212,7 +212,7 @@ class CIcqProto : public PROTO friend AsyncHttpRequest* operator <<(AsyncHttpRequest*, const AIMSID&); - bool m_bOnline, m_bTerminated, m_bFirstBos, m_isMra, m_bError462, m_bInvisible; + bool m_bOnline, m_bTerminated, m_bFirstBos, m_isMra, m_bError462, m_bInvisible, m_bRemoveForAll; int m_iTimeShift; MCONTACT CheckOwnMessage(const CMStringA &reqId, const CMStringA &msgId, bool bRemove); -- cgit v1.2.3