From dbc48cc0ec4df774c257d5175d62bce16e2437e3 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sat, 9 Dec 2023 20:00:47 +0300 Subject: PROTO_INTERFACE::OnContactDeleted to be able to block the contact's deletion --- src/mir_app/src/mir_app.def | 2 +- src/mir_app/src/mir_app64.def | 2 +- src/mir_app/src/proto_interface.cpp | 6 ++++-- src/mir_core/src/db.cpp | 3 ++- 4 files changed, 8 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/mir_app/src/mir_app.def b/src/mir_app/src/mir_app.def index c93fc79d87..a37fbe8acb 100644 --- a/src/mir_app/src/mir_app.def +++ b/src/mir_app/src/mir_app.def @@ -496,7 +496,7 @@ Proto_GetStatus @601 ?OnModulesLoaded@PROTO_INTERFACE@@UAEXXZ @607 NONAME ?OnShutdown@PROTO_INTERFACE@@UAEXXZ @608 NONAME ?GetStatus@Contact@@YGHI@Z @609 NONAME -?OnContactDeleted@PROTO_INTERFACE@@UAEXI@Z @610 NONAME +?OnContactDeleted@PROTO_INTERFACE@@UAE_NI@Z @610 NONAME ?OnBuildProtoMenu@PROTO_INTERFACE@@UAEXXZ @611 NONAME ?OnErase@PROTO_INTERFACE@@UAEXXZ @612 NONAME ?getMStringA@CMPluginBase@@QAE?AV?$CMStringT@DV?$ChTraitsCRT@D@@@@IPBD0@Z @613 NONAME diff --git a/src/mir_app/src/mir_app64.def b/src/mir_app/src/mir_app64.def index 0284e7cbcd..374e1a3e7c 100644 --- a/src/mir_app/src/mir_app64.def +++ b/src/mir_app/src/mir_app64.def @@ -496,7 +496,7 @@ Proto_GetStatus @601 ?OnModulesLoaded@PROTO_INTERFACE@@UEAAXXZ @607 NONAME ?OnShutdown@PROTO_INTERFACE@@UEAAXXZ @608 NONAME ?GetStatus@Contact@@YAHI@Z @609 NONAME -?OnContactDeleted@PROTO_INTERFACE@@UEAAXI@Z @610 NONAME +?OnContactDeleted@PROTO_INTERFACE@@UEAA_NI@Z @610 NONAME ?OnBuildProtoMenu@PROTO_INTERFACE@@UEAAXXZ @611 NONAME ?OnErase@PROTO_INTERFACE@@UEAAXXZ @612 NONAME ?getMStringA@CMPluginBase@@QEAA?AV?$CMStringT@DV?$ChTraitsCRT@D@@@@IPEBD0@Z @613 NONAME diff --git a/src/mir_app/src/proto_interface.cpp b/src/mir_app/src/proto_interface.cpp index 00d7fb2f26..3caf9971aa 100644 --- a/src/mir_app/src/proto_interface.cpp +++ b/src/mir_app/src/proto_interface.cpp @@ -72,8 +72,10 @@ void PROTO_INTERFACE::OnBuildProtoMenu() void PROTO_INTERFACE::OnContactAdded(MCONTACT) {} -void PROTO_INTERFACE::OnContactDeleted(MCONTACT) -{} +bool PROTO_INTERFACE::OnContactDeleted(MCONTACT) +{ + return true; +} MWindow PROTO_INTERFACE::OnCreateAccMgrUI(MWindow) { diff --git a/src/mir_core/src/db.cpp b/src/mir_core/src/db.cpp index 0dec7c5ee6..4765a79ad4 100644 --- a/src/mir_core/src/db.cpp +++ b/src/mir_core/src/db.cpp @@ -111,7 +111,8 @@ MIR_CORE_DLL(int) db_delete_contact(MCONTACT hContact, bool bFromProto) if (!bFromProto) if (auto *ppro = Proto_GetInstance(hContact)) - ppro->OnContactDeleted(hContact); + if (!ppro->OnContactDeleted(hContact)) + return 1; Netlib_Logf(nullptr, "Contact deleted: %d", hContact); return (g_pCurrDb) ? g_pCurrDb->DeleteContact(hContact) : 0; -- cgit v1.2.3