summaryrefslogtreecommitdiff
path: root/src/mir_app
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2021-01-07 18:09:54 +0300
committerGeorge Hazan <ghazan@miranda.im>2021-01-07 18:09:54 +0300
commit5508a77c6103f979697dd72d5a72347a354d020d (patch)
treef2f5aeed9794a8e9dd57f4caae65e2a20d429ee3 /src/mir_app
parente26d06563851e85fa26c606a2577f81b4d7bef7c (diff)
common code moved to the core
Diffstat (limited to 'src/mir_app')
-rw-r--r--src/mir_app/src/MDatabaseCommon.cpp20
-rw-r--r--src/mir_app/src/mir_app.def1
-rw-r--r--src/mir_app/src/mir_app64.def1
3 files changed, 22 insertions, 0 deletions
diff --git a/src/mir_app/src/MDatabaseCommon.cpp b/src/mir_app/src/MDatabaseCommon.cpp
index 5e5feacd56..20abf51d35 100644
--- a/src/mir_app/src/MDatabaseCommon.cpp
+++ b/src/mir_app/src/MDatabaseCommon.cpp
@@ -61,6 +61,26 @@ int MDatabaseCommon::CheckProto(DBCachedContact *cc, const char *proto)
return !mir_strcmp(cc->szProto, proto);
}
+void MDatabaseCommon::FillContactSettings()
+{
+ for (DBCachedContact *cc = m_cache->GetFirstContact(); cc; cc = m_cache->GetNextContact(cc->contactID)) {
+ CheckProto(cc, "");
+
+ DBVARIANT dbv; dbv.type = DBVT_DWORD;
+ cc->nSubs = (0 != GetContactSetting(cc->contactID, META_PROTO, "NumContacts", &dbv)) ? -1 : dbv.dVal;
+ if (cc->nSubs != -1) {
+ cc->pSubs = (MCONTACT*)mir_alloc(cc->nSubs * sizeof(MCONTACT));
+ for (int k = 0; k < cc->nSubs; k++) {
+ char setting[100];
+ mir_snprintf(setting, _countof(setting), "Handle%d", k);
+ cc->pSubs[k] = (0 != GetContactSetting(cc->contactID, META_PROTO, setting, &dbv)) ? 0 : dbv.dVal;
+ }
+ }
+ cc->nDefault = (0 != GetContactSetting(cc->contactID, META_PROTO, "Default", &dbv)) ? -1 : dbv.dVal;
+ cc->parentID = (0 != GetContactSetting(cc->contactID, META_PROTO, "ParentMeta", &dbv)) ? 0 : dbv.dVal;
+ }
+}
+
bool MDatabaseCommon::LockName(const wchar_t *pwszProfileName)
{
if (m_hLock != nullptr)
diff --git a/src/mir_app/src/mir_app.def b/src/mir_app/src/mir_app.def
index fad6884348..d7ea30182d 100644
--- a/src/mir_app/src/mir_app.def
+++ b/src/mir_app/src/mir_app.def
@@ -751,3 +751,4 @@ _Netlib_GetTlsUnique@8 @831 NONAME
?SafeDeleteFile@PU@@YGHPB_W@Z @839 NONAME
?SafeMoveFile@PU@@YGHPB_W0@Z @840 NONAME
?FilterSearch@Clist@@3V?$CMOption@_N@@A @841 NONAME
+?FillContactSettings@MDatabaseCommon@@IAEXXZ @842 NONAME
diff --git a/src/mir_app/src/mir_app64.def b/src/mir_app/src/mir_app64.def
index 0378aaba7b..3ec5305738 100644
--- a/src/mir_app/src/mir_app64.def
+++ b/src/mir_app/src/mir_app64.def
@@ -751,3 +751,4 @@ Netlib_GetTlsUnique @831 NONAME
?SafeDeleteFile@PU@@YAHPEB_W@Z @839 NONAME
?SafeMoveFile@PU@@YAHPEB_W0@Z @840 NONAME
?FilterSearch@Clist@@3V?$CMOption@_N@@A @841 NONAME
+?FillContactSettings@MDatabaseCommon@@IEAAXXZ @842 NONAME