diff options
author | George Hazan <ghazan@miranda.im> | 2019-09-26 22:15:57 +0300 |
---|---|---|
committer | George Hazan <ghazan@miranda.im> | 2019-09-26 22:15:57 +0300 |
commit | 15c49e3fc4cf033fffbf79e9f68a0405d5a95d14 (patch) | |
tree | 3ba342e3e8645156102d3c5f3f9a1b5dafe4c22c | |
parent | d095047014348c9e8dd72a72dc59b2abd22bbf9c (diff) |
Clist_IsHidden / Clist_HideContact - two helpers to hide CList/Hidden variable and unify access to it
84 files changed, 171 insertions, 158 deletions
diff --git a/include/m_clist.h b/include/m_clist.h index 3142a497ed..c4b74e8397 100644 --- a/include/m_clist.h +++ b/include/m_clist.h @@ -489,6 +489,12 @@ EXTERN_C MIR_APP_DLL(int) Clist_ContactCompare(MCONTACT hContact1, MCONTACT hCon EXTERN_C MIR_APP_DLL(wchar_t*) Clist_GetContactDisplayName(MCONTACT hContact, int mode = 0);
/////////////////////////////////////////////////////////////////////////////////////////
+// gets / sets hidden status for a contact
+
+EXTERN_C MIR_APP_DLL(bool) Clist_IsHidden(MCONTACT hContact);
+EXTERN_C MIR_APP_DLL(void) Clist_HideContact(MCONTACT hContact, bool bHidden = true);
+
+/////////////////////////////////////////////////////////////////////////////////////////
// DRAG-N-DROP SUPPORT
/////////////////////////////////////////////////////////////////////////////////////////
// a contact is being dragged outside the main window
diff --git a/libs/win32/mir_app.lib b/libs/win32/mir_app.lib Binary files differindex 230c0a3dde..8dd255cecb 100644 --- a/libs/win32/mir_app.lib +++ b/libs/win32/mir_app.lib diff --git a/libs/win64/mir_app.lib b/libs/win64/mir_app.lib Binary files differindex 9583f8c37e..d018b79b8b 100644 --- a/libs/win64/mir_app.lib +++ b/libs/win64/mir_app.lib diff --git a/plugins/AVS/src/options.cpp b/plugins/AVS/src/options.cpp index 1411ecffb3..93ef446f50 100644 --- a/plugins/AVS/src/options.cpp +++ b/plugins/AVS/src/options.cpp @@ -496,7 +496,7 @@ INT_PTR CALLBACK DlgProcAvatarOptions(HWND hwndDlg, UINT msg, WPARAM wParam, LPA ShowWindow(hwndDlg, SW_SHOWNORMAL); InvalidateRect(GetDlgItem(hwndDlg, IDC_PROTOPIC), nullptr, FALSE); CheckDlgButton(hwndDlg, IDC_PROTECTAVATAR, db_get_b(hContact, "ContactPhoto", "Locked", 0) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_HIDEAVATAR, db_get_b(hContact, "ContactPhoto", "Hidden", 0) ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_HIDEAVATAR, Clist_IsHidden(hContact) ? BST_CHECKED : BST_UNCHECKED); SendDlgItemMessage(hwndDlg, IDC_BKG_NUM_POINTS_SPIN, UDM_SETBUDDY, (WPARAM)GetDlgItem(hwndDlg, IDC_BKG_NUM_POINTS), 0); SendDlgItemMessage(hwndDlg, IDC_BKG_NUM_POINTS_SPIN, UDM_SETRANGE, 0, MAKELONG(8, 2)); @@ -525,11 +525,11 @@ INT_PTR CALLBACK DlgProcAvatarOptions(HWND hwndDlg, UINT msg, WPARAM wParam, LPA case IDOK: { - BOOL locked = IsDlgButtonChecked(hwndDlg, IDC_PROTECTAVATAR); - int hidden = IsDlgButtonChecked(hwndDlg, IDC_HIDEAVATAR) ? 1 : 0; + bool locked = IsDlgButtonChecked(hwndDlg, IDC_PROTECTAVATAR) != 0; + bool hidden = IsDlgButtonChecked(hwndDlg, IDC_HIDEAVATAR) != 0; SetAvatarAttribute(hContact, AVS_HIDEONCLIST, hidden); - if (hidden != db_get_b(hContact, "ContactPhoto", "Hidden", 0)) - db_set_b(hContact, "ContactPhoto", "Hidden", hidden); + if (hidden != Clist_IsHidden(hContact)) + Clist_HideContact(hContact, hidden); if (!locked && db_get_b(hContact, "ContactPhoto", "NeedUpdate", 0)) QueueAdd(hContact); @@ -750,7 +750,7 @@ static INT_PTR CALLBACK DlgProcAvatarUserInfo(HWND hwndDlg, UINT msg, WPARAM wPa TranslateDialogDefault(hwndDlg); SendMessage(hwndDlg, DM_SETAVATARNAME, 0, 0); CheckDlgButton(hwndDlg, IDC_PROTECTAVATAR, db_get_b(hContact, "ContactPhoto", "Locked", 0) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_HIDEAVATAR, db_get_b(hContact, "ContactPhoto", "Hidden", 0) ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_HIDEAVATAR, Clist_IsHidden(hContact) ? BST_CHECKED : BST_UNCHECKED); SendDlgItemMessage(hwndDlg, IDC_BKG_NUM_POINTS_SPIN, UDM_SETBUDDY, (WPARAM)GetDlgItem(hwndDlg, IDC_BKG_NUM_POINTS), 0); SendDlgItemMessage(hwndDlg, IDC_BKG_NUM_POINTS_SPIN, UDM_SETRANGE, 0, MAKELONG(8, 2)); @@ -783,10 +783,10 @@ static INT_PTR CALLBACK DlgProcAvatarUserInfo(HWND hwndDlg, UINT msg, WPARAM wPa case IDC_HIDEAVATAR: { - int hidden = IsDlgButtonChecked(hwndDlg, IDC_HIDEAVATAR) ? 1 : 0; + bool hidden = IsDlgButtonChecked(hwndDlg, IDC_HIDEAVATAR) != 0; SetAvatarAttribute(hContact, AVS_HIDEONCLIST, hidden); - if (hidden != db_get_b(hContact, "ContactPhoto", "Hidden", 0)) - db_set_b(hContact, "ContactPhoto", "Hidden", hidden); + if (hidden != Clist_IsHidden(hContact)) + Clist_HideContact(hContact, hidden); } break; diff --git a/plugins/AVS/src/utils.cpp b/plugins/AVS/src/utils.cpp index cea5beb71e..80b8add728 100644 --- a/plugins/AVS/src/utils.cpp +++ b/plugins/AVS/src/utils.cpp @@ -158,7 +158,7 @@ int CreateAvatarInCache(MCONTACT hContact, AVATARCACHEENTRY *ace, const char *sz GetObject(ace->hbmPic, sizeof(bminfo), &bminfo);
ace->dwFlags = AVS_BITMAP_VALID;
- if (hContact != NULL && db_get_b(hContact, "ContactPhoto", "Hidden", 0))
+ if (hContact != NULL && Clist_IsHidden(hContact))
ace->dwFlags |= AVS_HIDEONCLIST;
ace->hContact = hContact;
ace->bmHeight = bminfo.bmHeight;
diff --git a/plugins/AutoShutdown/src/watcher.cpp b/plugins/AutoShutdown/src/watcher.cpp index fe08ea17a2..87cba96fde 100644 --- a/plugins/AutoShutdown/src/watcher.cpp +++ b/plugins/AutoShutdown/src/watcher.cpp @@ -182,7 +182,7 @@ static BOOL CheckAllContactsOffline(void) if (db_get_b(hContact, pszProto, "ChatRoom", 0)) continue;
if (db_get_w(hContact, pszProto, "Status", 0) != ID_STATUS_OFFLINE) {
if (fSmartCheck) {
- if (db_get_b(hContact, "CList", "Hidden", 0)) continue;
+ if (Clist_IsHidden(hContact)) continue;
if (db_get_b(hContact, "CList", "NotOnList", 0)) continue;
}
fAllOffline = FALSE;
diff --git a/plugins/BuddyExpectator/src/BuddyExpectator.cpp b/plugins/BuddyExpectator/src/BuddyExpectator.cpp index 48649fcc95..82dd5204fb 100644 --- a/plugins/BuddyExpectator/src/BuddyExpectator.cpp +++ b/plugins/BuddyExpectator/src/BuddyExpectator.cpp @@ -100,7 +100,7 @@ LRESULT CALLBACK HidePopupDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM switch (message) {
case WM_COMMAND:
if (HIWORD(wParam) == STN_CLICKED) {
- db_set_b(PUGetContact(hWnd), "CList", "Hidden", 1);
+ Clist_HideContact(PUGetContact(hWnd));
PUDeletePopup(hWnd);
}
break;
@@ -112,7 +112,7 @@ LRESULT CALLBACK HidePopupDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM case UM_POPUPACTION:
if (wParam == 2) {
- db_set_b(PUGetContact(hWnd), "CList", "Hidden", 1);
+ Clist_HideContact(PUGetContact(hWnd));
PUDeletePopup(hWnd);
}
if (wParam == 3) {
@@ -223,7 +223,7 @@ bool isContactGoneFor(MCONTACT hContact, int days) if (options.hideInactive)
if (daysSinceMessage >= options.iSilencePeriod)
- if (!db_get_b(hContact, "CList", "Hidden", 0) && !g_plugin.getByte(hContact, "NeverHide", 0)) {
+ if (!Clist_IsHidden(hContact) && !g_plugin.getByte(hContact, "NeverHide", 0)) {
POPUPDATAW ppd;
ppd.lchContact = hContact;
ppd.lchIcon = IcoLib_GetIcon("enabled_icon");
@@ -252,7 +252,7 @@ bool isContactGoneFor(MCONTACT hContact, int days) void ReturnNotify(MCONTACT hContact, wchar_t *message)
{
- if (db_get_b(hContact, "CList", "NotOnList", 0) == 1 || db_get_b(hContact, "CList", "Hidden", 0) == 1)
+ if (db_get_b(hContact, "CList", "NotOnList", 0) == 1 || Clist_IsHidden(hContact))
return;
Skin_PlaySound("buddyExpectatorReturn");
@@ -291,7 +291,7 @@ void ReturnNotify(MCONTACT hContact, wchar_t *message) void GoneNotify(MCONTACT hContact, wchar_t *message)
{
- if (db_get_b(hContact, "CList", "NotOnList", 0) == 1 || db_get_b(hContact, "CList", "Hidden", 0) == 1)
+ if (db_get_b(hContact, "CList", "NotOnList", 0) == 1 || Clist_IsHidden(hContact))
return;
if (options.iShowPopup2 > 0) {
diff --git a/plugins/ClientChangeNotify/src/ClientChangeNotify.cpp b/plugins/ClientChangeNotify/src/ClientChangeNotify.cpp index 97eff14c37..7cbd225163 100644 --- a/plugins/ClientChangeNotify/src/ClientChangeNotify.cpp +++ b/plugins/ClientChangeNotify/src/ClientChangeNotify.cpp @@ -212,7 +212,7 @@ int ContactSettingChanged(WPARAM hContact, LPARAM lParam) if (!hContactOrMeta)
hContactOrMeta = hContact;
- if (hContact && db_get_b(hContactOrMeta, "CList", "Hidden", 0))
+ if (hContact && Clist_IsHidden(hContactOrMeta))
return 0;
int PerContactSetting = hContact ? g_plugin.getByte(hContact, DB_CCN_NOTIFY, NOTIFY_USEGLOBAL) : NOTIFY_ALWAYS; // NOTIFY_ALWAYS for preview
diff --git a/plugins/Clist_modern/src/modern_clc.cpp b/plugins/Clist_modern/src/modern_clc.cpp index e59f10c3fe..a9afcacfd1 100644 --- a/plugins/Clist_modern/src/modern_clc.cpp +++ b/plugins/Clist_modern/src/modern_clc.cpp @@ -1308,7 +1308,7 @@ static LRESULT clcOnIntmGroupChanged(ClcData *dat, HWND hwnd, UINT, WPARAM wPara flags = contact->flags;
}
Clist_DeleteItemFromTree(hwnd, wParam);
- if (GetWindowLongPtr(hwnd, GWL_STYLE) & CLS_SHOWHIDDEN || !g_plugin.getByte(wParam, "Hidden")) {
+ if (GetWindowLongPtr(hwnd, GWL_STYLE) & CLS_SHOWHIDDEN || !Clist_IsHidden(wParam)) {
NMCLISTCONTROL nm;
g_clistApi.pfnAddContactToTree(hwnd, dat, wParam, 1, 1);
if (Clist_FindItem(hwnd, dat, wParam, &contact)) {
diff --git a/plugins/Clist_modern/src/modern_clcitems.cpp b/plugins/Clist_modern/src/modern_clcitems.cpp index d9e9c35246..87a0c84cd1 100644 --- a/plugins/Clist_modern/src/modern_clcitems.cpp +++ b/plugins/Clist_modern/src/modern_clcitems.cpp @@ -326,7 +326,7 @@ ClcCacheEntry* cliCreateCacheItem(MCONTACT hContact) pdnce->hContact = hContact;
pdnce->szProto = GetContactProto(hContact);
- pdnce->bIsHidden = g_plugin.getByte(hContact, "Hidden");
+ pdnce->bIsHidden = Clist_IsHidden(hContact);
pdnce->m_bIsSub = db_mc_isSub(hContact) != 0;
pdnce->m_bNoHiddenOffline = g_plugin.getByte(hContact, "noOffline");
pdnce->IdleTS = db_get_dw(hContact, pdnce->szProto, "IdleTS", 0);
@@ -396,7 +396,7 @@ int cliGetGroupContentsCount(ClcGroup *group, int visibleOnly) int CLVM_GetContactHiddenStatus(MCONTACT hContact, char *szProto, ClcData *dat)
{
- int dbHidden = g_plugin.getByte(hContact, "Hidden"); // default hidden state, always respect it.
+ int dbHidden = Clist_IsHidden(hContact); // default hidden state, always respect it.
int filterResult = 1;
int searchResult = 0;
ClcCacheEntry *pdnce = Clist_GetCacheEntry(hContact);
diff --git a/plugins/Clist_nicer/src/clc.cpp b/plugins/Clist_nicer/src/clc.cpp index bb843b5bbe..fe8faf6126 100644 --- a/plugins/Clist_nicer/src/clc.cpp +++ b/plugins/Clist_nicer/src/clc.cpp @@ -131,7 +131,7 @@ static int ClcSettingChanged(WPARAM hContact, LPARAM lParam) if (!__strcmp(szProto, cws->szModule)) {
// was a unique setting key written?
if (!__strcmp(cws->szSetting, "Status")) {
- if (!g_plugin.getByte(hContact, "Hidden"))
+ if (!Clist_IsHidden(hContact))
if (cws->value.wVal == ID_STATUS_OFFLINE)
if (g_plugin.getByte("HideOffline", SETTING_HIDEOFFLINE_DEFAULT))
return 0;
diff --git a/plugins/Clist_nicer/src/clcitems.cpp b/plugins/Clist_nicer/src/clcitems.cpp index 023ba9a40d..283691b06a 100644 --- a/plugins/Clist_nicer/src/clcitems.cpp +++ b/plugins/Clist_nicer/src/clcitems.cpp @@ -373,7 +373,7 @@ void LoadSkinItemToCache(TExtraCache *cEntry) int CLVM_GetContactHiddenStatus(MCONTACT hContact, char *szProto, struct ClcData *dat)
{
- int dbHidden = g_plugin.getByte(hContact, "Hidden"); // default hidden state, always respect it.
+ int dbHidden = Clist_IsHidden(hContact); // default hidden state, always respect it.
// always hide subcontacts (but show them on embedded contact lists)
if (dat != nullptr && dat->bHideSubcontacts && cfg::dat.bMetaEnabled && db_mc_isSub(hContact))
diff --git a/plugins/KeyboardNotify/src/ignore.cpp b/plugins/KeyboardNotify/src/ignore.cpp index fd9808108c..9d2c57df76 100644 --- a/plugins/KeyboardNotify/src/ignore.cpp +++ b/plugins/KeyboardNotify/src/ignore.cpp @@ -32,7 +32,7 @@ static DWORD GetMask(MCONTACT hContact) if(hContact == NULL)
mask=0;
else {
- if(db_get_b(hContact, "CList", "Hidden", 0) || db_get_b(hContact, "CList", "NotOnList", 0))
+ if (Clist_IsHidden(hContact) || db_get_b(hContact, "CList", "NotOnList", 0))
mask = g_plugin.getDword("Mask1", 0);
else
mask = g_plugin.getDword("Default1", 0);
diff --git a/plugins/MenuItemEx/src/main.cpp b/plugins/MenuItemEx/src/main.cpp index 5a1c87ab99..a8c8a6f3c5 100644 --- a/plugins/MenuItemEx/src/main.cpp +++ b/plugins/MenuItemEx/src/main.cpp @@ -377,7 +377,7 @@ static INT_PTR onSetVis(WPARAM wparam, LPARAM) static INT_PTR onHide(WPARAM wparam, LPARAM)
{
MCONTACT hContact = (MCONTACT)wparam;
- db_set_b(hContact, "CList", "Hidden", (BYTE)!db_get_b(hContact, "CList", "Hidden", 0));
+ Clist_HideContact(hContact, !Clist_IsHidden(hContact));
return 0;
}
@@ -643,7 +643,7 @@ static int isIgnored(MCONTACT hContact, int type) static INT_PTR onIgnore(WPARAM wparam, LPARAM lparam)
{
if (g_plugin.getByte("ignorehide", 0) && (lparam == IGNOREEVENT_ALL))
- db_set_b((MCONTACT)wparam, "CList", "Hidden", (isIgnored((MCONTACT)wparam, lparam) ? (byte)0 : (byte)1));
+ Clist_HideContact(wparam, !isIgnored((MCONTACT)wparam, lparam));
CallService(isIgnored((MCONTACT)wparam, lparam) ? MS_IGNORE_UNIGNORE : MS_IGNORE_IGNORE, wparam, lparam);
return 0;
@@ -693,8 +693,7 @@ static int BuildMenu(WPARAM wparam, LPARAM) bEnabled = bShowAll || (flags & VF_HFL);
Menu_ShowItem(hmenuHide, bEnabled);
if (bEnabled) {
- BYTE bHidden = db_get_b(hContact, "CList", "Hidden", 0);
- if (bHidden)
+ if (Clist_IsHidden(hContact))
Menu_ModifyItem(hmenuHide, LPGENW("Show in list"), IcoLib_GetIconHandle("miex_showil"));
else
Menu_ModifyItem(hmenuHide, LPGENW("Hide from list"), IcoLib_GetIconHandle("miex_hidefl"));
diff --git a/plugins/MirFox/src/MirfoxData.cpp b/plugins/MirFox/src/MirfoxData.cpp index 5aa4034d45..ac402cfab0 100644 --- a/plugins/MirFox/src/MirfoxData.cpp +++ b/plugins/MirFox/src/MirfoxData.cpp @@ -616,7 +616,8 @@ void MirfoxData::initializeMirandaContacts() for (auto &hContact : Contacts()){
//"Hidden" contacts not allowed in MirfoxData and SM, "NotOnList" contacts allowed and enabled
- if (db_get_b(hContact, "CList", "Hidden", 0) == 1) continue;
+ if (Clist_IsHidden(hContact))
+ continue;
//add to MirfoxData list
MirandaContact* mirandaContactItemPtr = new MirandaContact(
diff --git a/plugins/MirFox/src/MirfoxMiranda.cpp b/plugins/MirFox/src/MirfoxMiranda.cpp index e855537f5b..015fecfc7f 100644 --- a/plugins/MirFox/src/MirfoxMiranda.cpp +++ b/plugins/MirFox/src/MirfoxMiranda.cpp @@ -127,7 +127,7 @@ void CMirfoxMiranda::onContactAdded_async(void* threadArg) canAdd = false;
// execute
- if (canAdd && db_get_b(onContactAsyncThreadArgStruct->hContact, "CList", "Hidden", 0) == 1)
+ if (canAdd && Clist_IsHidden(onContactAsyncThreadArgStruct->hContact))
canAdd = false;
// add
@@ -188,10 +188,9 @@ void CMirfoxMiranda::onContactSettingChanged_async(void* threadArg){ canAdd = false;
// edit
- if (canAdd &&db_get_b(onContactAsyncThreadArgStruct->hContact, "CList", "Hidden", 0) == 1)
+ if (canAdd && Clist_IsHidden(onContactAsyncThreadArgStruct->hContact))
canAdd = false;
-
if (canAdd)
mirfoxMiranda->getMirfoxData().refreshContact_Edit(mirfoxMiranda->getSharedMemoryUtils(), onContactAsyncThreadArgStruct->hContact);
diff --git a/plugins/MirandaG15/src/CAppletManager.cpp b/plugins/MirandaG15/src/CAppletManager.cpp index 602fec49f4..1942853761 100644 --- a/plugins/MirandaG15/src/CAppletManager.cpp +++ b/plugins/MirandaG15/src/CAppletManager.cpp @@ -1123,7 +1123,7 @@ int CAppletManager::HookChatInbound(WPARAM, LPARAM lParam) Event.hContact = NULL; // Ignore events from hidden chatrooms, except for join events - if (gce->pszID.w != nullptr && db_get_b(Event.hContact, "CList", "Hidden", 0)) { + if (gce->pszID.w != nullptr && Clist_IsHidden(Event.hContact)) { if (gce->iType == GC_EVENT_JOIN && pHistory) pHistory->LUsers.push_back(toTstring(gce->pszNick.w)); @@ -1645,7 +1645,7 @@ int CAppletManager::HookSettingChanged(WPARAM hContact, LPARAM lParam) else if (!strcmp(dbcws->szModule, "CList")) { if (!strcmp(dbcws->szSetting, "Hidden")) { Event.eType = EVENT_CONTACT_HIDDEN; - Event.iValue = db_get_b(hContact, "CList", "Hidden", 0); + Event.iValue = Clist_IsHidden(hContact); } else if (!strcmp(dbcws->szSetting, "Group")) { Event.eType = EVENT_CONTACT_GROUP; diff --git a/plugins/MirandaG15/src/CContactList.cpp b/plugins/MirandaG15/src/CContactList.cpp index c385b7965b..1331ef94e9 100644 --- a/plugins/MirandaG15/src/CContactList.cpp +++ b/plugins/MirandaG15/src/CContactList.cpp @@ -202,12 +202,12 @@ bool CContactList::IsVisible(CContactListEntry *pEntry) return true;
if (CConfig::GetBoolSetting(CLIST_USEIGNORE)) {
- if (db_get_b(pEntry->hHandle, "CList", "Hidden", 0))
+ if (Clist_IsHidden(pEntry->hHandle))
return false;
if (db_mc_isSub(pEntry->hHandle)) {
MCONTACT hMetaContact = db_mc_getMeta(pEntry->hHandle);
- if (db_get_b(hMetaContact, "CList", "Hidden", 0))
+ if (Clist_IsHidden(hMetaContact))
return false;
}
}
diff --git a/plugins/MirandaG15/src/CEventScreen.cpp b/plugins/MirandaG15/src/CEventScreen.cpp index 169a2caef9..c307a5715b 100644 --- a/plugins/MirandaG15/src/CEventScreen.cpp +++ b/plugins/MirandaG15/src/CEventScreen.cpp @@ -186,8 +186,7 @@ void CEventScreen::OnLCDButtonDown(int iButton) char *szProto = GetContactProto(pEntry->hContact);
CIRCConnection *pIRCCon = CAppletManager::GetInstance()->GetIRCConnection(toTstring(szProto));
- if (pIRCCon && db_get_b(pEntry->hContact, szProto, "ChatRoom", 0) != 0 &&
- db_get_b(pEntry->hContact, "CList", "Hidden", 0))
+ if (pIRCCon && db_get_b(pEntry->hContact, szProto, "ChatRoom", 0) != 0 && Clist_IsHidden(pEntry->hContact))
return;
CAppletManager::GetInstance()->ActivateChatScreen(pEntry->hContact);
diff --git a/plugins/NewXstatusNotify/src/main.cpp b/plugins/NewXstatusNotify/src/main.cpp index 559517ec96..f89d1bb017 100644 --- a/plugins/NewXstatusNotify/src/main.cpp +++ b/plugins/NewXstatusNotify/src/main.cpp @@ -262,7 +262,7 @@ wchar_t* GetStr(STATUSMSGINFO *n, const wchar_t *tmplt) bool SkipHiddenContact(MCONTACT hContact)
{
- return (!opt.HiddenContactsToo && (db_get_b(hContact, "CList", "Hidden", 0) == 1));
+ return (!opt.HiddenContactsToo && Clist_IsHidden(hContact));
}
void LogSMsgToDB(STATUSMSGINFO *smi, const wchar_t *tmplt)
diff --git a/plugins/NewXstatusNotify/src/xstatus.cpp b/plugins/NewXstatusNotify/src/xstatus.cpp index 944dddf5fd..58c30723a1 100644 --- a/plugins/NewXstatusNotify/src/xstatus.cpp +++ b/plugins/NewXstatusNotify/src/xstatus.cpp @@ -350,7 +350,7 @@ void ExtraStatusChanged(XSTATUSCHANGE *xsc) mir_snprintf(buff, "%d", ID_STATUS_EXTRASTATUS);
if ((g_plugin.getByte(buff, 1) == 0)
|| (db_get_w(xsc->hContact, xsc->szProto, "Status", ID_STATUS_OFFLINE) == ID_STATUS_OFFLINE)
- || (!opt.HiddenContactsToo && (db_get_b(xsc->hContact, "CList", "Hidden", 0) == 1))
+ || (!opt.HiddenContactsToo && Clist_IsHidden(xsc->hContact))
|| (Proto_GetStatus(xsc->szProto) == ID_STATUS_OFFLINE))
{
FreeXSC(xsc);
diff --git a/plugins/SecureIM/src/crypt_check.cpp b/plugins/SecureIM/src/crypt_check.cpp index 0b9242d9e2..fb9c691e6b 100644 --- a/plugins/SecureIM/src/crypt_check.cpp +++ b/plugins/SecureIM/src/crypt_check.cpp @@ -96,7 +96,7 @@ bool isProtoSmallPackets(MCONTACT hContact) bool isContactInvisible(MCONTACT hContact)
{
- if (!db_mc_isSub(hContact) && db_get_b(hContact, "CList", "Hidden", 0))
+ if (!db_mc_isSub(hContact) && Clist_IsHidden(hContact))
return true;
pUinKey p = findUinKey(hContact);
diff --git a/plugins/SeenPlugin/src/utils.cpp b/plugins/SeenPlugin/src/utils.cpp index 0364a99da1..0bb0111924 100644 --- a/plugins/SeenPlugin/src/utils.cpp +++ b/plugins/SeenPlugin/src/utils.cpp @@ -439,7 +439,7 @@ void ShowPopup(MCONTACT hcontact, const char * lpzProto, int newStatus) if (CallService(MS_IGNORE_ISIGNORED, (WPARAM)hcontact, IGNOREEVENT_USERONLINE))
return;
- if (!g_plugin.getByte("UsePopups", 0) || !db_get_b(hcontact, "CList", "Hidden", 0))
+ if (!g_plugin.getByte("UsePopups", 0) || !Clist_IsHidden(hcontact))
return;
DBVARIANT dbv;
diff --git a/plugins/Sessions/Src/Utils.cpp b/plugins/Sessions/Src/Utils.cpp index 67a9750877..e19a4f87ab 100644 --- a/plugins/Sessions/Src/Utils.cpp +++ b/plugins/Sessions/Src/Utils.cpp @@ -289,7 +289,7 @@ void OffsetWindow(HWND parent, HWND hwnd, int dx, int dy) int CheckContactVisibility(MCONTACT hContact)
{
- return db_mc_isSub(hContact) || !db_get_b(hContact, "CList", "Hidden", 0);
+ return db_mc_isSub(hContact) || !Clist_IsHidden(hContact);
}
void RenameUserDefSession(int ses_count, wchar_t* ptszNewName)
diff --git a/plugins/ShellExt/src/shlcom.cpp b/plugins/ShellExt/src/shlcom.cpp index 3b13388e9f..a71875bfa4 100644 --- a/plugins/ShellExt/src/shlcom.cpp +++ b/plugins/ShellExt/src/shlcom.cpp @@ -271,10 +271,10 @@ bool ipcGetSortedContacts(THeaderIPC * ipch, int* pSlot, bool bGroupMode) // is HIT on?
if (BST_UNCHECKED == g_plugin.getByte(SHLExt_UseHITContacts, BST_UNCHECKED)) {
- // don't show people who are "Hidden" "NotOnList" or Ignored
- if (db_get_b(hContact, "CList", "Hidden", 0) == 1 ||
- db_get_b(hContact, "CList", "NotOnList", 0) == 1 ||
- CallService(MS_IGNORE_ISIGNORED, hContact, IGNOREEVENT_MESSAGE | IGNOREEVENT_FILE) != 0)
+ // don't show people who are hidden, "NotOnList" or ignored
+ if (Clist_IsHidden(hContact) ||
+ db_get_b(hContact, "CList", "NotOnList", 0) == 1 ||
+ CallService(MS_IGNORE_ISIGNORED, hContact, IGNOREEVENT_MESSAGE | IGNOREEVENT_FILE) != 0)
continue;
}
// is HIT2 off?
diff --git a/plugins/Spamotron/src/spamotron.cpp b/plugins/Spamotron/src/spamotron.cpp index f5632f6614..1e85e029a9 100644 --- a/plugins/Spamotron/src/spamotron.cpp +++ b/plugins/Spamotron/src/spamotron.cpp @@ -101,7 +101,7 @@ int OnDBEventFilterAdd(WPARAM wParam, LPARAM lParam) // Hide the contact until verified if option set.
if (g_plugin.getByte("HideUnverified", defaultHideUnverified))
- db_set_b(hContact, "CList", "Hidden", 1);
+ Clist_HideContact(hContact);
// Fetch the incoming message body
char *msgblob;
@@ -145,7 +145,7 @@ int OnDBEventFilterAdd(WPARAM wParam, LPARAM lParam) if (bCorrectResponse) {
g_plugin.setByte(hContact, "Verified", 1);
if (g_plugin.getByte("HideUnverified", defaultHideUnverified))
- db_unset(hContact, "CList", "Hidden");
+ Clist_HideContact(hContact, false);
if (g_plugin.getByte("AddPermanently", defaultAddPermanently))
db_unset(hContact, "CList", "NotOnList");
db_unset(hContact, "CList", "Delete");
@@ -210,7 +210,7 @@ int OnDBEventFilterAdd(WPARAM wParam, LPARAM lParam) {
g_plugin.setByte(hContact, "Verified", 1);
if (g_plugin.getByte("HideUnverified", defaultHideUnverified))
- db_unset(hContact, "CList", "Hidden");
+ Clist_HideContact(hContact, false);
if (g_plugin.getByte("AddPermanently", defaultAddPermanently))
db_unset(hContact, "CList", "NotOnList");
db_unset(hContact, "CList", "Delete");
@@ -313,7 +313,7 @@ int OnDBEventFilterAdd(WPARAM wParam, LPARAM lParam) _notify(hContact, POPUP_APPROVED, TranslateT("Contact %s approved."), message);
g_plugin.setByte(hContact, "Verified", 1);
if (g_plugin.getByte("HideUnverified", defaultHideUnverified))
- db_unset(hContact, "CList", "Hidden");
+ Clist_HideContact(hContact, false);
if (g_plugin.getByte("AddPermanently", defaultAddPermanently))
db_unset(hContact, "CList", "NotOnList");
db_unset(hContact, "CList", "Delete");
diff --git a/plugins/StopSpamMod/src/stopspam.cpp b/plugins/StopSpamMod/src/stopspam.cpp index b3035150e4..6d0c8e937c 100755 --- a/plugins/StopSpamMod/src/stopspam.cpp +++ b/plugins/StopSpamMod/src/stopspam.cpp @@ -44,7 +44,7 @@ int OnDbEventAdded(WPARAM hContact, LPARAM hDbEvent) // ...send message if (gbHideContacts) - db_set_b(hcntct, "CList", "Hidden", 1); + Clist_HideContact(hcntct); if (gbSpecialGroup) Clist_SetGroup(hcntct, gbSpammersGroup.c_str()); BYTE msg = 1; @@ -156,7 +156,7 @@ int OnDbEventFilterAdd(WPARAM hContact, LPARAM l) if (answered) { // unhide contact - db_unset(hContact, "CList", "Hidden"); + Clist_HideContact(hContact, false); g_plugin.delSetting(hContact, "MathAnswer"); @@ -270,7 +270,7 @@ int OnDbEventFilterAdd(WPARAM hContact, LPARAM l) } } if (gbHideContacts) - db_set_b(hContact, "CList", "Hidden", 1); + Clist_HideContact(hContact); if (gbSpecialGroup) Clist_SetGroup(hContact, gbSpammersGroup.c_str()); db_set_b(hContact, "CList", "NotOnList", 1); diff --git a/plugins/StopSpamPlus/src/events.cpp b/plugins/StopSpamPlus/src/events.cpp index ad96474d80..27c44c374b 100644 --- a/plugins/StopSpamPlus/src/events.cpp +++ b/plugins/StopSpamPlus/src/events.cpp @@ -34,7 +34,7 @@ int OnDbEventAdded(WPARAM, LPARAM lParam) CallProtoService(dbei.szModule, PS_AUTHDENY, hDbEvent, (LPARAM)_T2A(variables_parse(g_sets.getReply(), hcntct).c_str()));
db_set_b(hcntct, "CList", "NotOnList", 1);
- db_set_b(hcntct, "CList", "Hidden", 1);
+ Clist_HideContact(hcntct);
if (!g_sets.HistLog)
db_event_delete(0, hDbEvent);
return 1;
@@ -105,7 +105,7 @@ int OnDbEventFilterAdd(WPARAM w, LPARAM l) // if message equal right answer...
if (g_sets.AnswNotCaseSens ? !mir_wstrcmpi(message.c_str(), answer.c_str()) : !mir_wstrcmp(message.c_str(), answer.c_str())) {
// unhide contact
- db_unset(hContact, "CList", "Hidden");
+ Clist_HideContact(hContact, false);
// mark contact as Answered
g_plugin.setByte(hContact, DB_KEY_ANSWERED, 1);
@@ -147,7 +147,7 @@ int OnDbEventFilterAdd(WPARAM w, LPARAM l) // hide contact from contact list
db_set_b(hContact, "CList", "NotOnList", 1);
- db_set_b(hContact, "CList", "Hidden", 1);
+ Clist_HideContact(hContact);
// save message from contact
dbei->flags |= DBEF_READ;
diff --git a/plugins/TabSRMM/src/chat_tools.cpp b/plugins/TabSRMM/src/chat_tools.cpp index 79e173ec07..c92e11d842 100644 --- a/plugins/TabSRMM/src/chat_tools.cpp +++ b/plugins/TabSRMM/src/chat_tools.cpp @@ -309,8 +309,8 @@ BOOL DoSoundsFlashPopupTrayStuff(SESSION_INFO *si, GCEVENT *gce, BOOL bHighlight if (bHighlight) {
gce->iType |= GC_EVENT_HIGHLIGHT;
params->sound = "ChatHighlight";
- if (db_get_b(si->hContact, "CList", "Hidden", 0) != 0)
- db_unset(si->hContact, "CList", "Hidden");
+ if (Clist_IsHidden(si->hContact) != 0)
+ Clist_HideContact(si->hContact, false);
if (params->bInactive) {
bFlagUnread = true;
DoTrayIcon(si, gce);
diff --git a/plugins/TabSRMM/src/typingnotify.cpp b/plugins/TabSRMM/src/typingnotify.cpp index f9a92d12fb..2a4f630dbb 100644 --- a/plugins/TabSRMM/src/typingnotify.cpp +++ b/plugins/TabSRMM/src/typingnotify.cpp @@ -81,7 +81,7 @@ static LRESULT CALLBACK PopupDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPA void TN_TypingMessage(MCONTACT hContact, int iMode)
{
// hidden & ignored contacts check
- if (db_get_b(hContact, "CList", "Hidden", 0) || (db_get_dw(hContact, "Ignore", "Mask1", 0) & 1)) // 9 - online notification
+ if (Clist_IsHidden(hContact) || (db_get_dw(hContact, "Ignore", "Mask1", 0) & 1)) // 9 - online notification
return;
if (Disabled)
diff --git a/plugins/TooltipNotify/src/TooltipNotify.cpp b/plugins/TooltipNotify/src/TooltipNotify.cpp index efb801e967..1e2e724238 100644 --- a/plugins/TooltipNotify/src/TooltipNotify.cpp +++ b/plugins/TooltipNotify/src/TooltipNotify.cpp @@ -203,7 +203,7 @@ int CTooltipNotify::ContactSettingChanged(WPARAM hContact, LPARAM lParam) idle = true;
else return 0;
- if (db_get_b(hContact, "CList", "Hidden", 0))
+ if (Clist_IsHidden(hContact))
return 0;
const char *pszProto = cws->szModule;
diff --git a/plugins/UserInfoEx/src/svc_reminder.cpp b/plugins/UserInfoEx/src/svc_reminder.cpp index 93ec9fbad0..2ab71be4a1 100644 --- a/plugins/UserInfoEx/src/svc_reminder.cpp +++ b/plugins/UserInfoEx/src/svc_reminder.cpp @@ -523,7 +523,7 @@ static bool CheckBirthday(MCONTACT hContact, MTime &Now, CEvent &evt, BYTE bNoti static void CheckContact(MCONTACT hContact, MTime &Now, CEvent &evt, BYTE bNotify, PWORD LastAnwer = nullptr)
{
// ignore meta subcontacts here as their birthday information are collected explicitly
- if (hContact && (!gRemindOpts.bCheckVisibleOnly || !db_get_b(hContact, MOD_CLIST, "Hidden", FALSE)) && !db_mc_isSub(hContact)) {
+ if (hContact && (!gRemindOpts.bCheckVisibleOnly || !Clist_IsHidden(hContact)) && !db_mc_isSub(hContact)) {
CEvent ca;
if (CheckBirthday(hContact, Now, ca, bNotify, LastAnwer) || CheckAnniversaries(hContact, Now, ca, bNotify)) {
diff --git a/plugins/WhenWasIt/src/hooked_events.cpp b/plugins/WhenWasIt/src/hooked_events.cpp index 443794d9bd..638b6d31fd 100644 --- a/plugins/WhenWasIt/src/hooked_events.cpp +++ b/plugins/WhenWasIt/src/hooked_events.cpp @@ -91,7 +91,7 @@ int RefreshContactListIcons(MCONTACT hContact) if (hContact == 0)
return 0;
- int hidden = db_get_b(hContact, "CList", "Hidden", 0);
+ bool hidden = Clist_IsHidden(hContact);
int ignored = db_get_dw(hContact, "Ignore", "Mask1", 0);
ignored = ((ignored & 0x3f) != 0) ? 1 : 0;
int ok = 1;
diff --git a/plugins/wbOSD/src/events.cpp b/plugins/wbOSD/src/events.cpp index a3b9346e88..925ad4e588 100644 --- a/plugins/wbOSD/src/events.cpp +++ b/plugins/wbOSD/src/events.cpp @@ -117,9 +117,7 @@ int ContactStatusChanged(WPARAM wParam, LPARAM lParam) logmsg("ContactStatusChanged2");
- if (db_get_b(hContact, "CList", "NotOnList", 0) || db_get_b(hContact, "CList", "Hidden", 0) ||
- (CallService(MS_IGNORE_ISIGNORED, wParam, IGNOREEVENT_USERONLINE) && newStatus == ID_STATUS_ONLINE)
- )
+ if (db_get_b(hContact, "CList", "NotOnList", 0) || Clist_IsHidden(hContact) || (CallService(MS_IGNORE_ISIGNORED, wParam, IGNOREEVENT_USERONLINE) && newStatus == ID_STATUS_ONLINE))
return 0;
wchar_t bufferW[512];
diff --git a/protocols/Discord/src/groupchat.cpp b/protocols/Discord/src/groupchat.cpp index 95e3c47fb8..8d1f584fe4 100644 --- a/protocols/Discord/src/groupchat.cpp +++ b/protocols/Discord/src/groupchat.cpp @@ -82,7 +82,7 @@ void CDiscordProto::Chat_SendPrivateMessage(GCHOOK *gch) setId(hContact, DB_KEY_ID, userId); setId(hContact, DB_KEY_CHANNELID, _wtoi64(gch->ptszID)); setWString(hContact, "Nick", gch->ptszNick); - db_set_b(hContact, "CList", "Hidden", 1); + Clist_HideContact(hContact); db_set_dw(hContact, "Ignore", "Mask1", 0); } else hContact = pUser->hContact; diff --git a/protocols/Dummy/src/dummy_proto.cpp b/protocols/Dummy/src/dummy_proto.cpp index 3c32087d23..6fc7b953cf 100644 --- a/protocols/Dummy/src/dummy_proto.cpp +++ b/protocols/Dummy/src/dummy_proto.cpp @@ -154,11 +154,11 @@ MCONTACT CDummyProto::AddToList(int flags, PROTOSEARCHRESULT* psr) Proto_AddToContact(hContact, m_szModuleName); if (flags & PALF_TEMPORARY) { - db_set_b(hContact, "CList", "Hidden", 1); + Clist_HideContact(hContact); db_set_b(hContact, "CList", "NotOnList", 1); } else if (db_get_b(hContact, "CList", "NotOnList", 0)) { - db_unset(hContact, "CList", "Hidden"); + Clist_HideContact(hContact, false); db_unset(hContact, "CList", "NotOnList"); } setWString(hContact, uniqueIdSetting, psr->id.w); diff --git a/protocols/EmLanProto/src/mlan.cpp b/protocols/EmLanProto/src/mlan.cpp index 6ad76e2f95..27a3d9508e 100644 --- a/protocols/EmLanProto/src/mlan.cpp +++ b/protocols/EmLanProto/src/mlan.cpp @@ -207,7 +207,7 @@ MCONTACT CMLan::FindContact(in_addr addr, const char *nick, bool add_to_list, bo if (make_permanent) db_unset(res, "CList", "NotOnList"); if (make_visible) - db_unset(res, "CList", "Hidden"); + Clist_HideContact(res, false); return res; } } @@ -221,7 +221,7 @@ MCONTACT CMLan::FindContact(in_addr addr, const char *nick, bool add_to_list, bo if (!make_permanent) db_set_b(res, "CList", "NotOnList", 1); if (!make_visible) - db_set_b(res, "CList", "Hidden", 1); + Clist_HideContact(res); g_plugin.setWord(res, "Status", status); return res; @@ -340,7 +340,7 @@ void CMLan::OnRecvPacket(u_char *mes, int len, in_addr from) void CMLan::RecvMessageUrl(CCSDATA *ccs) { - db_unset(ccs->hContact, "CList", "Hidden"); + Clist_HideContact(ccs->hContact, false); PROTORECVEVENT *pre = (PROTORECVEVENT*)ccs->lParam; ptrA szMessage(mir_utf8encode(pre->szMessage)); @@ -924,7 +924,7 @@ void CMLan::RecvFile(CCSDATA *ccs) { PROTORECVEVENT *pre = (PROTORECVEVENT *)ccs->lParam; - db_unset(ccs->hContact, "CList", "Hidden"); + Clist_HideContact(ccs->hContact, false); char *szFile = pre->szMessage + sizeof(DWORD); char *szDesc = szFile + mir_strlen(szFile) + 1; diff --git a/protocols/EmLanProto/src/stdafx.h b/protocols/EmLanProto/src/stdafx.h index 5da73a09ee..550e2dfaf3 100644 --- a/protocols/EmLanProto/src/stdafx.h +++ b/protocols/EmLanProto/src/stdafx.h @@ -16,6 +16,7 @@ #include <m_protosvc.h>
#include <m_database.h>
#include <m_langpack.h>
+#include <m_clist.h>
#include "resource.h"
#include "version.h"
diff --git a/protocols/FacebookRM/src/contacts.cpp b/protocols/FacebookRM/src/contacts.cpp index 74f73fae43..5251abe84a 100644 --- a/protocols/FacebookRM/src/contacts.cpp +++ b/protocols/FacebookRM/src/contacts.cpp @@ -234,7 +234,7 @@ MCONTACT FacebookProto::AddToContactList(facebook_user* fbu, bool force_add, boo if (hContact) { // Save these values only when adding new contact, not when updating existing if (add_temporarily) { - db_set_b(hContact, "CList", "Hidden", 1); + Clist_HideContact(hContact); db_set_b(hContact, "CList", "NotOnList", 1); } diff --git a/protocols/FacebookRM/src/proto.cpp b/protocols/FacebookRM/src/proto.cpp index ba0acbd03f..12b5f3c80f 100644 --- a/protocols/FacebookRM/src/proto.cpp +++ b/protocols/FacebookRM/src/proto.cpp @@ -282,7 +282,7 @@ MCONTACT FacebookProto::AddToList(int flags, PROTOSEARCHRESULT* psr) // Reset NotOnList flag if present and we're adding this contact not temporarily if (hContact && !add_temporarily && db_get_b(hContact, "CList", "NotOnList", 0)) { - db_unset(hContact, "CList", "Hidden"); + Clist_HideContact(hContact, false); db_unset(hContact, "CList", "NotOnList"); } diff --git a/protocols/Gadu-Gadu/src/core.cpp b/protocols/Gadu-Gadu/src/core.cpp index d6a16a9493..3a2644f0b6 100644 --- a/protocols/Gadu-Gadu/src/core.cpp +++ b/protocols/Gadu-Gadu/src/core.cpp @@ -1317,8 +1317,9 @@ int GaduProto::dbsettingchanged(WPARAM hContact, LPARAM lParam) // If not on list changed
if (!strcmp(cws->szSetting, "NotOnList"))
{
- if (db_get_b(hContact, "CList", "Hidden", 0))
+ if (Clist_IsHidden(hContact))
return 0;
+
// Notify user normally this time if added to the list permanently
if (cws->value.type == DBVT_DELETED || (cws->value.type == DBVT_BYTE && cws->value.bVal == 0))
notifyuser(hContact, 1);
@@ -1460,7 +1461,7 @@ MCONTACT GaduProto::getcontact(uin_t uin, int create, int inlist, wchar_t *szNic if ((uin_t)getDword(hContact, GG_KEY_UIN, 0) == uin && !isChatRoom(hContact)) {
if (inlist) {
db_unset(hContact, "CList", "NotOnList");
- db_unset(hContact, "CList", "Hidden");
+ Clist_HideContact(hContact, false);
}
return hContact;
}
diff --git a/protocols/ICQ-WIM/src/groupchats.cpp b/protocols/ICQ-WIM/src/groupchats.cpp index dc5747e0c8..c0f477b122 100644 --- a/protocols/ICQ-WIM/src/groupchats.cpp +++ b/protocols/ICQ-WIM/src/groupchats.cpp @@ -258,7 +258,7 @@ void CIcqProto::Chat_SendPrivateMessage(GCHOOK *gch) if (pCache == nullptr) { hContact = CreateContact(gch->ptszUID, true); setWString(hContact, "Nick", gch->ptszNick); - db_set_b(hContact, "CList", "Hidden", 1); + Clist_HideContact(hContact); db_set_dw(hContact, "Ignore", "Mask1", 0); } else hContact = pCache->m_hContact; diff --git a/protocols/ICQ-WIM/src/ignore.cpp b/protocols/ICQ-WIM/src/ignore.cpp index 069d8c1844..cdf83cc517 100644 --- a/protocols/ICQ-WIM/src/ignore.cpp +++ b/protocols/ICQ-WIM/src/ignore.cpp @@ -50,7 +50,7 @@ void CIcqProto::ProcessPermissions(const JSONNode &ev) auto *p = FindContactByUIN(wszId); if (p == nullptr) { auto hContact = CreateContact(wszId, false); - db_set_b(hContact, "CList", "Hidden", 1); + Clist_HideContact(hContact); p = FindContactByUIN(wszId); } p->m_iApparentMode = ID_STATUS_OFFLINE; diff --git a/protocols/ICQCorp/src/protocol.cpp b/protocols/ICQCorp/src/protocol.cpp index c43c3b6fad..6aeebfe8f5 100644 --- a/protocols/ICQCorp/src/protocol.cpp +++ b/protocols/ICQCorp/src/protocol.cpp @@ -1257,7 +1257,7 @@ ICQUser* ICQ::addUser(unsigned int uin, bool persistent) if (u->dwUIN == uin) {
if (persistent) {
db_unset(u->hContact, "CList", "NotOnList");
- db_unset(u->hContact, "CList", "Hidden");
+ Clist_HideContact(u->hContact, false);
}
return u;
}
@@ -1275,7 +1275,7 @@ ICQUser* ICQ::addUser(unsigned int uin, bool persistent) getUserInfo(u, true);
else {
db_set_b(u->hContact, "CList", "NotOnList", 1);
- db_set_b(u->hContact, "CList", "Hidden", 1);
+ Clist_HideContact(u->hContact);
}
updateContactList();
diff --git a/protocols/ICQCorp/src/services.cpp b/protocols/ICQCorp/src/services.cpp index 0781c67d5c..a33c243606 100644 --- a/protocols/ICQCorp/src/services.cpp +++ b/protocols/ICQCorp/src/services.cpp @@ -189,7 +189,7 @@ static INT_PTR icqRecvMessage(WPARAM, LPARAM lParam) Netlib_Logf(hNetlibUser, "[ ] receive message\n");
CCSDATA *ccs = (CCSDATA*)lParam;
- db_unset(ccs->hContact, "CList", "Hidden");
+ Clist_HideContact(ccs->hContact, false);
PROTORECVEVENT *pre = (PROTORECVEVENT*)ccs->lParam;
ptrA szMsg(mir_utf8encode(pre->szMessage));
@@ -362,7 +362,7 @@ static INT_PTR icqRecvFile(WPARAM, LPARAM lParam) Netlib_Logf(hNetlibUser, "[ ] receive file\n");
CCSDATA *ccs = (CCSDATA *)lParam;
- db_unset(ccs->hContact, "CList", "Hidden");
+ Clist_HideContact(ccs->hContact, false);
PROTORECVEVENT *pre = (PROTORECVEVENT *)ccs->lParam;
char *szFile = pre->szMessage + sizeof(DWORD);
diff --git a/protocols/IRCG/src/clist.cpp b/protocols/IRCG/src/clist.cpp index 02739d42e0..43011ce264 100644 --- a/protocols/IRCG/src/clist.cpp +++ b/protocols/IRCG/src/clist.cpp @@ -31,7 +31,7 @@ BOOL CIrcProto::CList_AddDCCChat(const CMStringW& name, const CMStringW& hostmas CONTACT usertemp = { name, nullptr, nullptr, false, false, true };
MCONTACT hc = CList_FindContact(&usertemp);
- if (hc && db_get_b(hc, "CList", "NotOnList", 0) == 0 && db_get_b(hc, "CList", "Hidden", 0) == 0)
+ if (hc && db_get_b(hc, "CList", "NotOnList", 0) == 0 && Clist_IsHidden(hc) == 0)
bFlag = true;
CMStringW contactname = name; contactname += DCCSTRING;
@@ -90,7 +90,7 @@ MCONTACT CIrcProto::CList_AddContact(CONTACT *user, bool InList, bool SetOnline) if (InList)
db_unset(hContact, "CList", "NotOnList");
setWString(hContact, "Nick", user->name);
- db_unset(hContact, "CList", "Hidden");
+ Clist_HideContact(hContact, false);
if (SetOnline && getWord(hContact, "Status", ID_STATUS_OFFLINE) == ID_STATUS_OFFLINE)
setWord(hContact, "Status", ID_STATUS_ONLINE);
return hContact;
@@ -105,7 +105,7 @@ MCONTACT CIrcProto::CList_AddContact(CONTACT *user, bool InList, bool SetOnline) db_unset(hContact, "CList", "NotOnList");
else
db_set_b(hContact, "CList", "NotOnList", 1);
- db_unset(hContact, "CList", "Hidden");
+ Clist_HideContact(hContact, false);
setWString(hContact, "Nick", user->name);
setWString(hContact, "Default", user->name);
setWord(hContact, "Status", SetOnline ? ID_STATUS_ONLINE : ID_STATUS_OFFLINE);
diff --git a/protocols/IRCG/src/commandmonitor.cpp b/protocols/IRCG/src/commandmonitor.cpp index 36ae19a469..d982705974 100644 --- a/protocols/IRCG/src/commandmonitor.cpp +++ b/protocols/IRCG/src/commandmonitor.cpp @@ -146,7 +146,7 @@ VOID CALLBACK OnlineNotifTimerProc(HWND, UINT, UINT_PTR idEvent, DWORD) continue;
BYTE bDCC = ppro->getByte(hContact, "DCC", 0);
- BYTE bHidden = db_get_b(hContact, "CList", "Hidden", 0);
+ bool bHidden = Clist_IsHidden(hContact);
if (bDCC || bHidden)
continue;
if (ppro->getWString(hContact, "Default", &dbv))
@@ -691,7 +691,7 @@ bool CIrcProto::OnIrc_PRIVMSG(const CIrcMessage *pmsg) if ((m_ignore && IsIgnored(pmsg->prefix.sNick, pmsg->prefix.sUser, pmsg->prefix.sHost, 'q'))) {
MCONTACT hContact = CList_FindContact(&user);
- if (!hContact || (hContact && db_get_b(hContact, "CList", "Hidden", 0) == 1))
+ if (!hContact || (hContact && Clist_IsHidden(hContact)))
return true;
}
@@ -1063,10 +1063,7 @@ bool CIrcProto::IsCTCP(const CIrcMessage *pmsg) MCONTACT hContact = CList_FindContact(&user);
// check if it should be ignored
- if (m_DCCChatIgnore == 1 ||
- m_DCCChatIgnore == 2 && hContact &&
- db_get_b(hContact, "CList", "NotOnList", 0) == 0 &&
- db_get_b(hContact, "CList", "Hidden", 0) == 0) {
+ if (m_DCCChatIgnore == 1 || m_DCCChatIgnore == 2 && hContact && db_get_b(hContact, "CList", "NotOnList", 0) == 0 && !Clist_IsHidden(hContact)) {
CMStringW host = pmsg->prefix.sUser + L"@" + pmsg->prefix.sHost;
CList_AddDCCChat(pmsg->prefix.sNick, host, dwAdr, iPort); // add a CHAT event to the clist
}
diff --git a/protocols/JabberG/src/jabber_chat.cpp b/protocols/JabberG/src/jabber_chat.cpp index 8feab67e1b..402d007463 100644 --- a/protocols/JabberG/src/jabber_chat.cpp +++ b/protocols/JabberG/src/jabber_chat.cpp @@ -330,7 +330,7 @@ void CJabberProto::GcQuit(JABBER_LIST_ITEM *item, int code, const TiXmlElement * else
Chat_Control(m_szModuleName, wszRoomJid, SESSION_OFFLINE);
- db_unset(item->hContact, "CList", "Hidden");
+ Clist_HideContact(item->hContact, false);
item->bChatActive = false;
if (m_bJabberOnline) {
@@ -1346,7 +1346,7 @@ static void sttSendPrivateMessage(CJabberProto *ppro, JABBER_LIST_ITEM *item, co if (r)
ppro->setWord(hContact, "Status", r->m_iStatus);
- db_set_b(hContact, "CList", "Hidden", 1);
+ Clist_HideContact(hContact);
ppro->setUString(hContact, "Nick", nick);
db_set_dw(hContact, "Ignore", "Mask1", 0);
CallService(MS_MSG_SENDMESSAGE, hContact, 0);
diff --git a/protocols/JabberG/src/jabber_events.cpp b/protocols/JabberG/src/jabber_events.cpp index 8bc1189fdf..8aac09a5cc 100644 --- a/protocols/JabberG/src/jabber_events.cpp +++ b/protocols/JabberG/src/jabber_events.cpp @@ -151,7 +151,7 @@ void __cdecl CJabberProto::OnAddContactForever(MCONTACT hContact) SendGetVcard(hContact);
- db_unset(hContact, "CList", "Hidden");
+ Clist_HideContact(hContact, false);
}
int __cdecl CJabberProto::OnDbSettingChanged(WPARAM hContact, LPARAM lParam)
diff --git a/protocols/JabberG/src/jabber_iq_handlers.cpp b/protocols/JabberG/src/jabber_iq_handlers.cpp index ed0ace2ff0..686e531a28 100644 --- a/protocols/JabberG/src/jabber_iq_handlers.cpp +++ b/protocols/JabberG/src/jabber_iq_handlers.cpp @@ -257,7 +257,7 @@ BOOL CJabberProto::OnRosterPushRequest(const TiXmlElement*, CJabberIqInfo *pInfo UpdateSubscriptionInfo(item->hContact, item);
}
else if (isChatRoom(item->hContact))
- db_unset(item->hContact, "CList", "Hidden");
+ Clist_HideContact(item->hContact, false);
else
UpdateSubscriptionInfo(item->hContact, item);
}
diff --git a/protocols/JabberG/src/jabber_iqid.cpp b/protocols/JabberG/src/jabber_iqid.cpp index eb528f544b..c15d6cc78b 100755 --- a/protocols/JabberG/src/jabber_iqid.cpp +++ b/protocols/JabberG/src/jabber_iqid.cpp @@ -431,7 +431,7 @@ void CJabberProto::OnIqResultGetRoster(const TiXmlElement *iqNode, CJabberIqInfo if (char *p = strchr(wszTitle, '@')) *p = 0;
Chat_NewSession(GCW_CHATROOM, m_szModuleName, Utf2T(jid), Utf2T(wszTitle));
- db_unset(hContact, "CList", "Hidden");
+ Clist_HideContact(hContact, false);
chatRooms.insert((HANDLE)hContact);
}
else UpdateSubscriptionInfo(hContact, item);
diff --git a/protocols/JabberG/src/jabber_misc.cpp b/protocols/JabberG/src/jabber_misc.cpp index f41edad6c6..736e60e854 100755 --- a/protocols/JabberG/src/jabber_misc.cpp +++ b/protocols/JabberG/src/jabber_misc.cpp @@ -46,7 +46,7 @@ void CJabberProto::AddContactToRoster(const char *jid, const char *nick, const c void CJabberProto::DBAddAuthRequest(const char *jid, const char *nick)
{
MCONTACT hContact = DBCreateContact(jid, nick, true, true);
- delSetting(hContact, "Hidden");
+ Clist_HideContact(hContact, false);
DB_AUTH_BLOB blob(hContact, nick, nullptr, nullptr, jid, nullptr);
diff --git a/protocols/JabberG/src/jabber_proto.cpp b/protocols/JabberG/src/jabber_proto.cpp index 3ac61aec58..bdca637d77 100755 --- a/protocols/JabberG/src/jabber_proto.cpp +++ b/protocols/JabberG/src/jabber_proto.cpp @@ -358,7 +358,7 @@ MCONTACT CJabberProto::AddToListByJID(const char *newJid, DWORD flags) MCONTACT hContact = DBCreateContact(newJid, nullptr, true, false);
if (flags & PALF_TEMPORARY)
- db_set_b(hContact, "CList", "Hidden", 1);
+ Clist_HideContact(hContact);
return hContact;
}
diff --git a/protocols/MSN/src/msn_commands.cpp b/protocols/MSN/src/msn_commands.cpp index e4e3beca97..54a751bc27 100644 --- a/protocols/MSN/src/msn_commands.cpp +++ b/protocols/MSN/src/msn_commands.cpp @@ -524,7 +524,7 @@ void CMsnProto::MSN_ProcessYFind(char* buf, size_t len) MSN_AddUser(hContact, szEmail, netId, LIST_PL + LIST_REMOVE);
MSN_AddUser(hContact, szEmail, netId, LIST_BL + LIST_REMOVE);
MSN_AddUser(hContact, szEmail, netId, LIST_AL);
- db_unset(hContact, "CList", "Hidden");
+ Clist_HideContact(hContact, false);
}
MSN_SetContactDb(hContact, szEmail);
}
diff --git a/protocols/MSN/src/msn_contact.cpp b/protocols/MSN/src/msn_contact.cpp index 61e1cbb5fb..46e96c72c3 100644 --- a/protocols/MSN/src/msn_contact.cpp +++ b/protocols/MSN/src/msn_contact.cpp @@ -80,7 +80,7 @@ void CMsnProto::MSN_SetContactDb(MCONTACT hContact, const char *szEmail) if (listId & LIST_FL) {
if (db_get_b(hContact, "CList", "NotOnList", 0) == 1) {
db_unset(hContact, "CList", "NotOnList");
- db_unset(hContact, "CList", "Hidden");
+ Clist_HideContact(hContact, false);
}
if (listId & (LIST_BL | LIST_AL)) {
diff --git a/protocols/MSN/src/msn_proto.cpp b/protocols/MSN/src/msn_proto.cpp index 1ab70262a8..56fa7c818b 100644 --- a/protocols/MSN/src/msn_proto.cpp +++ b/protocols/MSN/src/msn_proto.cpp @@ -195,17 +195,17 @@ MCONTACT CMsnProto::AddToListByEmail(const char *email, const char *nick, DWORD if (flags & PALF_TEMPORARY) {
if (db_get_b(hContact, "CList", "NotOnList", 0) == 1)
- db_set_b(hContact, "CList", "Hidden", 1);
+ Clist_HideContact(hContact);
}
else {
- db_unset(hContact, "CList", "Hidden");
+ Clist_HideContact(hContact, false);
if (msnLoggedIn) {
int netId = strncmp(email, "tel:", 4) ? NETID_MSN : NETID_MOB;
if (MSN_AddUser(hContact, email, netId, LIST_FL)) {
MSN_AddUser(hContact, email, netId, LIST_PL + LIST_REMOVE);
MSN_AddUser(hContact, email, netId, LIST_BL + LIST_REMOVE);
MSN_AddUser(hContact, email, netId, LIST_AL);
- db_unset(hContact, "CList", "Hidden");
+ Clist_HideContact(hContact, false);
}
MSN_SetContactDb(hContact, email);
@@ -660,7 +660,7 @@ MEVENT CMsnProto::RecvMsg(MCONTACT hContact, PROTORECVEVENT* pre) char tEmail[MSN_MAX_EMAIL_LEN];
if (!db_get_static(hContact, m_szModuleName, "wlid", tEmail, sizeof(tEmail)) || !db_get_static(hContact, m_szModuleName, "e-mail", tEmail, sizeof(tEmail)))
if (Lists_IsInList(LIST_FL, tEmail) && db_get_b(hContact, "MetaContacts", "IsSubcontact", 0) == 0)
- db_unset(hContact, "CList", "Hidden");
+ Clist_HideContact(hContact, false);
return CSuper::RecvMsg(hContact, pre);
}
diff --git a/protocols/MSN/src/msn_soapab.cpp b/protocols/MSN/src/msn_soapab.cpp index 3b73664455..6e84d40ea2 100644 --- a/protocols/MSN/src/msn_soapab.cpp +++ b/protocols/MSN/src/msn_soapab.cpp @@ -917,7 +917,7 @@ bool CMsnProto::MSN_ABRefreshClist(unsigned int nTry) else
delSetting(hContact, "Nick");
if (mir_strcmpi(ezxml_txt(ezxml_child(pers, "onHideList")), "true") == 0)
- db_set_b(hContact, "CList", "Hidden", 1);
+ Clist_HideContact(hContact);
setString(hContact, "ID", ezxml_txt(ezxml_child(pers, "id")));
SetAbParam(hContact, "CID", cid);
diff --git a/protocols/NewsAggregator/Src/Options.cpp b/protocols/NewsAggregator/Src/Options.cpp index 986051a6bf..c6e1967edc 100644 --- a/protocols/NewsAggregator/Src/Options.cpp +++ b/protocols/NewsAggregator/Src/Options.cpp @@ -880,9 +880,9 @@ bool COptionsMain::OnApply() if (mir_wstrcmp(dbNick, nick) == 0) { g_plugin.setByte(hContact, "CheckState", m_feeds.GetCheckState(i)); if (!m_feeds.GetCheckState(i)) - db_set_b(hContact, "CList", "Hidden", 1); + Clist_HideContact(hContact); else - db_unset(hContact, "CList", "Hidden"); + Clist_HideContact(hContact, false); } } } diff --git a/protocols/Sametime/src/sametime_proto.cpp b/protocols/Sametime/src/sametime_proto.cpp index ace07a8da0..7feebbafc2 100644 --- a/protocols/Sametime/src/sametime_proto.cpp +++ b/protocols/Sametime/src/sametime_proto.cpp @@ -170,7 +170,7 @@ int CSametimeProto::RecvFile(MCONTACT hContact, PROTORECVFILE* pre) {
debugLogW(L"CSametimeProto::RecvFile() hContact=[%x]", hContact);
- db_unset(hContact, "CList", "Hidden");
+ Clist_HideContact(hContact, false);
db_unset(hContact, "CList", "NotOnList");
return CSuper::RecvFile(hContact, pre);
@@ -180,7 +180,7 @@ MEVENT CSametimeProto::RecvMsg(MCONTACT hContact, PROTORECVEVENT* pre) {
debugLogW(L"CSametimeProto::RecvMsg() hContact=[%x]", hContact);
- db_unset(hContact, "CList", "Hidden");
+ Clist_HideContact(hContact, false);
db_unset(hContact, "CList", "NotOnList");
return CSuper::RecvMsg(hContact, pre);
diff --git a/protocols/Sametime/src/userlist.cpp b/protocols/Sametime/src/userlist.cpp index 8b892d85d5..ea482a1122 100644 --- a/protocols/Sametime/src/userlist.cpp +++ b/protocols/Sametime/src/userlist.cpp @@ -70,7 +70,7 @@ MCONTACT CSametimeProto::AddContact(mwSametimeUser* user, bool temporary) }
else if (!temporary) {
db_unset(hContact, "CList", "NotOnList");
- db_unset(hContact, "CList", "Hidden");
+ Clist_HideContact(hContact, false);
}
@@ -105,11 +105,11 @@ MCONTACT CSametimeProto::AddContact(mwSametimeUser* user, bool temporary) if (temporary) {
db_set_b(hContact, "CList", "NotOnList", 1);
- db_set_b(hContact, "CList", "Hidden", 1);
+ Clist_HideContact(hContact);
}
else {
db_unset(hContact, "CList", "NotOnList");
- db_unset(hContact, "CList", "Hidden");
+ Clist_HideContact(hContact, false);
}
return hContact;
diff --git a/protocols/SkypeWeb/src/skype_chatrooms.cpp b/protocols/SkypeWeb/src/skype_chatrooms.cpp index b75fa2509f..cfc268094f 100644 --- a/protocols/SkypeWeb/src/skype_chatrooms.cpp +++ b/protocols/SkypeWeb/src/skype_chatrooms.cpp @@ -107,7 +107,7 @@ int CSkypeProto::OnGroupChatEventHook(WPARAM, LPARAM lParam) if (hContact == NULL) {
hContact = AddContact(user_id, true);
setWord(hContact, "Status", ID_STATUS_ONLINE);
- db_set_b(hContact, "CList", "Hidden", 1);
+ Clist_HideContact(hContact);
setWString(hContact, "Nick", gch->ptszUID);
}
CallService(MS_MSG_SENDMESSAGEW, hContact, 0);
diff --git a/protocols/SkypeWeb/src/skype_contacts.cpp b/protocols/SkypeWeb/src/skype_contacts.cpp index 2961cda97d..57fcdc1355 100644 --- a/protocols/SkypeWeb/src/skype_contacts.cpp +++ b/protocols/SkypeWeb/src/skype_contacts.cpp @@ -181,11 +181,11 @@ void CSkypeProto::LoadContactList(const NETLIBHTTPREQUEST *response) else setByte(hContact, "Grant", 1);
if (item["blocked"].as_bool()) {
- db_set_b(hContact, "CList", "Hidden", 1);
+ Clist_HideContact(hContact);
setByte(hContact, "IsBlocked", 1);
}
else {
- db_unset(hContact, "CList", "Hidden");
+ Clist_HideContact(hContact, false);
delSetting(hContact, "IsBlocked");
}
@@ -283,9 +283,8 @@ INT_PTR CSkypeProto::BlockContact(WPARAM hContact, LPARAM) void CSkypeProto::OnBlockContact(const NETLIBHTTPREQUEST *response, void *p)
{
MCONTACT hContact = (DWORD_PTR)p;
- if (response == nullptr)
- return;
- db_set_b(hContact, "CList", "Hidden", 1);
+ if (response != nullptr)
+ Clist_HideContact(hContact);
}
INT_PTR CSkypeProto::UnblockContact(WPARAM hContact, LPARAM)
@@ -300,6 +299,6 @@ void CSkypeProto::OnUnblockContact(const NETLIBHTTPREQUEST *response, void *p) return;
MCONTACT hContact = (DWORD_PTR)p;
- db_set_b(hContact, "CList", "Hidden", 0);
+ Clist_HideContact(hContact, false);
delSetting(hContact, "IsBlocked");
}
diff --git a/protocols/VKontakte/src/misc.cpp b/protocols/VKontakte/src/misc.cpp index 9d54898e85..9a06c9b164 100644 --- a/protocols/VKontakte/src/misc.cpp +++ b/protocols/VKontakte/src/misc.cpp @@ -1500,7 +1500,7 @@ void CVkProto::AddVkDeactivateEvent(MCONTACT hContact, CMStringW& wszType) hContact, wszType.c_str(),
(int)m_vkOptions.bShowVkDeactivateEvents,
(int)getBool(hContact, "ShowVkDeactivateEvents", true),
- (int)(db_get_b(hContact, "CList", "Hidden", 0) == 0));
+ (int)(!Clist_IsHidden(hContact)));
CVKDeactivateEvent vkDeactivateEvent[] = {
{ L"", Translate("User restored control over own page") },
@@ -1528,7 +1528,7 @@ void CVkProto::AddVkDeactivateEvent(MCONTACT hContact, CMStringW& wszType) (
m_vkOptions.bShowVkDeactivateEvents
&& getBool(hContact, "ShowVkDeactivateEvents", true)
- && (db_get_b(hContact, "CList", "Hidden", 0) == 0)
+ && (!Clist_IsHidden(hContact))
) ? 0 : DBEF_READ);
db_event_add(hContact, &dbei);
}
diff --git a/protocols/VKontakte/src/vk_chats.cpp b/protocols/VKontakte/src/vk_chats.cpp index 35977921be..4e5ff332e4 100644 --- a/protocols/VKontakte/src/vk_chats.cpp +++ b/protocols/VKontakte/src/vk_chats.cpp @@ -475,7 +475,7 @@ int CVkProto::OnChatEvent(WPARAM, LPARAM lParam) MCONTACT hContact = FindUser(_wtoi(gch->ptszUID));
if (hContact == 0) {
hContact = FindUser(_wtoi(gch->ptszUID), true);
- db_set_b(hContact, "CList", "Hidden", 1);
+ Clist_HideContact(hContact);
db_set_b(hContact, "CList", "NotOnList", 1);
db_set_dw(hContact, "Ignore", "Mask1", 0);
RetrieveUserInfo(_wtoi(gch->ptszUID));
@@ -723,7 +723,7 @@ void CVkProto::NickMenuHook(CVkChatInfo *cc, GCHOOK *gch) hContact = FindUser(cu->m_uid);
if (hContact == 0) {
hContact = FindUser(cu->m_uid, true);
- db_set_b(hContact, "CList", "Hidden", 1);
+ Clist_HideContact(hContact);
db_set_b(hContact, "CList", "NotOnList", 1);
db_set_dw(hContact, "Ignore", "Mask1", 0);
}
diff --git a/protocols/VKontakte/src/vk_thread.cpp b/protocols/VKontakte/src/vk_thread.cpp index ecae89cdd5..b73a88103f 100644 --- a/protocols/VKontakte/src/vk_thread.cpp +++ b/protocols/VKontakte/src/vk_thread.cpp @@ -357,12 +357,11 @@ MCONTACT CVkProto::SetContactInfo(const JSONNode &jnItem, bool flag, VKContactTy return 0;
if (vkContactType == VKContactType::vkContactMUCUser) {
- db_set_b(hContact, "CList", "Hidden", 1);
+ Clist_HideContact(hContact);
db_set_b(hContact, "CList", "NotOnList", 1);
db_set_dw(hContact, "Ignore", "Mask1", 0);
}
-
CMStringW wszNick, wszValue;
int iValue;
diff --git a/protocols/Weather/src/weather_addstn.cpp b/protocols/Weather/src/weather_addstn.cpp index ca7a8ae6e3..5804f42b00 100644 --- a/protocols/Weather/src/weather_addstn.cpp +++ b/protocols/Weather/src/weather_addstn.cpp @@ -50,7 +50,7 @@ INT_PTR WeatherAddToList(WPARAM, LPARAM lParam) // and add them on the list if (db_get_b(hContact, "CList", "NotOnList", 1)) { db_unset(hContact, "CList", "NotOnList"); - db_unset(hContact, "CList", "Hidden"); + Clist_HideContact(hContact, false); } db_free(&dbv); // contact is added, function quitting diff --git a/protocols/Weather/src/weather_mwin.cpp b/protocols/Weather/src/weather_mwin.cpp index 1c1a7b7896..1ab04f0811 100644 --- a/protocols/Weather/src/weather_mwin.cpp +++ b/protocols/Weather/src/weather_mwin.cpp @@ -250,7 +250,7 @@ static void addWindow(MCONTACT hContact) int frameID = g_plugin.addFrame(&Frame); g_plugin.setDword(hContact, "mwin", frameID); - db_set_b(hContact, "CList", "Hidden", TRUE); + Clist_HideContact(hContact); } void removeWindow(MCONTACT hContact) @@ -261,7 +261,7 @@ void removeWindow(MCONTACT hContact) CallService(MS_CLIST_FRAMES_REMOVEFRAME, frameId, 0); g_plugin.setDword(hContact, "mwin", 0); - db_unset(hContact, "CList", "Hidden"); + Clist_HideContact(hContact, false); } void UpdateMwinData(MCONTACT hContact) diff --git a/protocols/WebView/src/webview_services.cpp b/protocols/WebView/src/webview_services.cpp index 5371ff0780..f0af2a30fe 100644 --- a/protocols/WebView/src/webview_services.cpp +++ b/protocols/WebView/src/webview_services.cpp @@ -353,7 +353,7 @@ INT_PTR AddToList(WPARAM, LPARAM lParam) sameurl++; if (db_get_b(hContact, "CList", "NotOnList", 1)) { db_unset(hContact, "CList", "NotOnList"); - db_unset(hContact, "CList", "Hidden"); + Clist_HideContact(hContact, false); } } db_free(&dbv); @@ -404,7 +404,7 @@ INT_PTR AddToList(WPARAM, LPARAM lParam) samename++; if (db_get_b(hContact2, "CList", "NotOnList", 1)) { db_unset(hContact2, "CList", "NotOnList"); - db_unset(hContact2, "CList", "Hidden"); + Clist_HideContact(hContact2, false); } db_free(&dbv); } diff --git a/protocols/YAMN/src/proto/pop3/pop3comm.cpp b/protocols/YAMN/src/proto/pop3/pop3comm.cpp index 93f7885135..2eb6f725f7 100644 --- a/protocols/YAMN/src/proto/pop3/pop3comm.cpp +++ b/protocols/YAMN/src/proto/pop3/pop3comm.cpp @@ -289,10 +289,10 @@ int RegisterPOP3Plugin(WPARAM, LPARAM) g_plugin.setWord(Finder->hContact, "Status", ID_STATUS_ONLINE); db_set_s(Finder->hContact, "CList", "StatusMsg", Translate("No new mail message")); if ((Finder->Flags & YAMN_ACC_ENA) && (Finder->NewMailN.Flags & YAMN_ACC_CONT)) - db_unset(Finder->hContact, "CList", "Hidden"); + Clist_HideContact(Finder->hContact, false); if (!(Finder->Flags & YAMN_ACC_ENA) || !(Finder->NewMailN.Flags & YAMN_ACC_CONT)) - db_set_b(Finder->hContact, "CList", "Hidden", 1); + Clist_HideContact(Finder->hContact); } db_free(&dbv); } diff --git a/protocols/YAMN/src/services.cpp b/protocols/YAMN/src/services.cpp index 771367d479..0ba33321ee 100644 --- a/protocols/YAMN/src/services.cpp +++ b/protocols/YAMN/src/services.cpp @@ -427,16 +427,13 @@ void CreateServiceFunctions(void) CreateServiceFunction(MS_YAMN_CLISTCONTEXTAPP, ContactApplication); } -//Function to put all enabled contact to the Online status +// Function to put all enabled contact to the Online status void RefreshContact(void) { CAccount *Finder; for (Finder = POP3Plugin->FirstAccount; Finder != nullptr; Finder = Finder->Next) { if (Finder->hContact != NULL) { - if ((Finder->Flags & YAMN_ACC_ENA) && (Finder->NewMailN.Flags & YAMN_ACC_CONT)) - db_unset(Finder->hContact, "CList", "Hidden"); - else - db_set_b(Finder->hContact, "CList", "Hidden", 1); + Clist_HideContact(Finder->hContact, !(Finder->Flags & YAMN_ACC_ENA) && (Finder->NewMailN.Flags & YAMN_ACC_CONT)); } else if ((Finder->Flags & YAMN_ACC_ENA) && (Finder->NewMailN.Flags & YAMN_ACC_CONT)) { Finder->hContact = db_add_contact(); diff --git a/src/core/stduseronline/src/useronline.cpp b/src/core/stduseronline/src/useronline.cpp index 1c3a6d3640..ea74f3ed2b 100644 --- a/src/core/stduseronline/src/useronline.cpp +++ b/src/core/stduseronline/src/useronline.cpp @@ -36,7 +36,7 @@ static int UserOnlineSettingChanged(WPARAM hContact, LPARAM lParam) int oldStatus = g_plugin.getWord(hContact, "OldStatus", ID_STATUS_OFFLINE);
g_plugin.setWord(hContact, "OldStatus", (WORD)newStatus);
if (CallService(MS_IGNORE_ISIGNORED, hContact, IGNOREEVENT_USERONLINE)) return 0;
- if (db_get_b(hContact, "CList", "Hidden", 0)) return 0;
+ if (Clist_IsHidden(hContact)) return 0;
if (newStatus == ID_STATUS_OFFLINE && oldStatus != ID_STATUS_OFFLINE) {
// Remove the event from the queue if it exists since they are now offline
MEVENT lastEvent = g_plugin.getDword(hContact, "LastEvent");
diff --git a/src/mir_app/src/chat_manager.cpp b/src/mir_app/src/chat_manager.cpp index 879bf83780..913615bee5 100644 --- a/src/mir_app/src/chat_manager.cpp +++ b/src/mir_app/src/chat_manager.cpp @@ -326,7 +326,7 @@ BOOL SM_SetStatus(const char *pszModule, SESSION_INFO *si, int wStatus) si->wStatus = wStatus;
if (si->hContact) {
if (si->iType != GCW_SERVER && wStatus != ID_STATUS_OFFLINE)
- db_unset(si->hContact, "CList", "Hidden");
+ Clist_HideContact(si->hContact, false);
db_set_w(si->hContact, si->pszModule, "Status", (WORD)wStatus);
}
diff --git a/src/mir_app/src/chat_tools.cpp b/src/mir_app/src/chat_tools.cpp index d04c2e0d00..94ba775092 100644 --- a/src/mir_app/src/chat_tools.cpp +++ b/src/mir_app/src/chat_tools.cpp @@ -293,8 +293,8 @@ BOOL DoSoundsFlashPopupTrayStuff(SESSION_INFO *si, GCEVENT *gce, BOOL bHighlight gce->iType |= GC_EVENT_HIGHLIGHT;
if (bInactive || !g_Settings->bSoundsFocus)
Skin_PlaySound("ChatHighlight");
- if (db_get_b(si->hContact, "CList", "Hidden", 0) != 0)
- db_unset(si->hContact, "CList", "Hidden");
+ if (Clist_IsHidden(si->hContact))
+ Clist_HideContact(si->hContact, false);
if (bInactive)
g_chatApi.DoTrayIcon(si, gce);
if (bInactive || !g_Settings->bPopupInactiveOnly)
diff --git a/src/mir_app/src/clc.cpp b/src/mir_app/src/clc.cpp index 166a27793a..10625482ce 100644 --- a/src/mir_app/src/clc.cpp +++ b/src/mir_app/src/clc.cpp @@ -452,7 +452,7 @@ LRESULT CALLBACK fnContactListControlWndProc(HWND hwnd, UINT uMsg, WPARAM wParam flags = contact->flags;
}
Clist_DeleteItemFromTree(hwnd, wParam);
- if (GetWindowLongPtr(hwnd, GWL_STYLE) & CLS_SHOWHIDDEN || !db_get_b(wParam, "CList", "Hidden", 0)) {
+ if (GetWindowLongPtr(hwnd, GWL_STYLE) & CLS_SHOWHIDDEN || !Clist_IsHidden(wParam)) {
NMCLISTCONTROL nm;
g_clistApi.pfnAddContactToTree(hwnd, dat, wParam, 1, 1);
if (Clist_FindItem(hwnd, dat, wParam, &contact)) {
@@ -486,7 +486,7 @@ LRESULT CALLBACK fnContactListControlWndProc(HWND hwnd, UINT uMsg, WPARAM wParam // this means an offline msg is flashing, so the contact should be shown
DWORD style = GetWindowLongPtr(hwnd, GWL_STYLE);
- int shouldShow = (style & CLS_SHOWHIDDEN || !db_get_b(wParam, "CList", "Hidden", 0))
+ int shouldShow = (style & CLS_SHOWHIDDEN || !Clist_IsHidden(wParam))
&& (!Clist_IsHiddenMode(dat, status) || Clist_GetContactIcon(wParam) != lParam);
contact = nullptr;
diff --git a/src/mir_app/src/clcitems.cpp b/src/mir_app/src/clcitems.cpp index 4dba92786a..262ddf04f1 100644 --- a/src/mir_app/src/clcitems.cpp +++ b/src/mir_app/src/clcitems.cpp @@ -342,7 +342,7 @@ MIR_APP_DLL(void) Clist_DeleteItemFromTree(HWND hwnd, MCONTACT hItem) int fnGetContactHiddenStatus(MCONTACT hContact, char*, ClcData*) { - return db_get_b(hContact, "CList", "Hidden", 0); + return Clist_IsHidden(hContact); } void fnRebuildEntireList(HWND hwnd, ClcData *dat) diff --git a/src/mir_app/src/clcutils.cpp b/src/mir_app/src/clcutils.cpp index cd26b13f54..6573897669 100644 --- a/src/mir_app/src/clcutils.cpp +++ b/src/mir_app/src/clcutils.cpp @@ -861,6 +861,21 @@ MIR_APP_DLL(void) Clist_InvalidateItem(HWND hwnd, ClcData *dat, int iItem) }
///////////////////////////////////////////////////////////////////////////////
+
+MIR_APP_DLL(bool) Clist_IsHidden(MCONTACT hContact)
+{
+ return db_get_b(hContact, "CList", "Hidden", 0) != 0;
+}
+
+MIR_APP_DLL(void) Clist_HideContact(MCONTACT hContact, bool bHidden)
+{
+ if (bHidden)
+ db_set_b(hContact, "CList", "Hidden", 1);
+ else
+ db_unset(hContact, "CList", "Hidden");
+}
+
+///////////////////////////////////////////////////////////////////////////////
// row coord functions
int fnGetRowTopY(ClcData *dat, int item)
diff --git a/src/mir_app/src/clistsettings.cpp b/src/mir_app/src/clistsettings.cpp index 9a6c18a7b2..c02de30401 100644 --- a/src/mir_app/src/clistsettings.cpp +++ b/src/mir_app/src/clistsettings.cpp @@ -69,7 +69,7 @@ void fnCheckCacheItem(ClcCacheEntry *p) p->szProto = GetContactProto(p->hContact);
if (p->bIsHidden == -1)
- p->bIsHidden = db_get_b(p->hContact, "CList", "Hidden", 0);
+ p->bIsHidden = Clist_IsHidden(p->hContact);
}
void fnFreeCacheItem(ClcCacheEntry *p)
@@ -203,7 +203,7 @@ int ContactSettingChanged(WPARAM hContact, LPARAM lParam) g_clistApi.pfnCheckCacheItem(pdnce);
}
else if (!strcmp(cws->szSetting, "Status")) {
- if (!db_get_b(hContact, "CList", "Hidden", 0))
+ if (!Clist_IsHidden(hContact))
Clist_ChangeContactIcon(hContact, g_clistApi.pfnIconFromStatusMode(cws->szModule, cws->value.wVal, hContact));
}
}
diff --git a/src/mir_app/src/clui.cpp b/src/mir_app/src/clui.cpp index 84918f548f..b8e2ba2a9d 100644 --- a/src/mir_app/src/clui.cpp +++ b/src/mir_app/src/clui.cpp @@ -203,7 +203,7 @@ static INT_PTR MenuItem_DeleteContact(WPARAM wParam, LPARAM lParam) switch (action) {
case IDC_HIDE: // Archive contact
- db_set_b(wParam, "CList", "Hidden", 1);
+ Clist_HideContact(wParam);
break;
case IDYES: // Delete contact
diff --git a/src/mir_app/src/contact.cpp b/src/mir_app/src/contact.cpp index 3ea5b151af..0daf98592f 100644 --- a/src/mir_app/src/contact.cpp +++ b/src/mir_app/src/contact.cpp @@ -32,7 +32,7 @@ MIR_APP_DLL(void) Clist_LoadContactTree(void) int hideOffline = db_get_b(0, "CList", "HideOffline", SETTING_HIDEOFFLINE_DEFAULT); for (auto &hContact : Contacts()) { int status = Contact_GetStatus(hContact); - if ((!hideOffline || status != ID_STATUS_OFFLINE) && !db_get_b(hContact, "CList", "Hidden", 0)) + if ((!hideOffline || status != ID_STATUS_OFFLINE) && !Clist_IsHidden(hContact)) Clist_ChangeContactIcon(hContact, g_clistApi.pfnIconFromStatusMode(GetContactProto(hContact), status, hContact)); } Clist_EndRebuild(); diff --git a/src/mir_app/src/ignore.cpp b/src/mir_app/src/ignore.cpp index 82a3772d17..231e4d5a0f 100644 --- a/src/mir_app/src/ignore.cpp +++ b/src/mir_app/src/ignore.cpp @@ -38,7 +38,7 @@ static DWORD GetMask(MCONTACT hContact) if (hContact == 0)
mask = 0;
else {
- if (db_get_b(hContact, "CList", "Hidden", 0) || db_get_b(hContact, "CList", "NotOnList", 0))
+ if (Clist_IsHidden(hContact) || db_get_b(hContact, "CList", "NotOnList", 0))
mask = db_get_dw(0, "Ignore", "Mask1", 0);
else
mask = db_get_dw(0, "Ignore", "Default1", 0);
@@ -192,7 +192,7 @@ static void SetAllContactIcons(HWND hwndList) }
else proto1Caps = proto4Caps = 0;
InitialiseItem(hwndList, hContact, hItem, proto1Caps, proto4Caps);
- if (!db_get_b(hContact, "CList", "Hidden", 0))
+ if (!Clist_IsHidden(hContact))
SendMessage(hwndList, CLM_SETCHECKMARK, (WPARAM)hItem, 1);
}
}
@@ -304,11 +304,9 @@ static INT_PTR CALLBACK DlgProcIgnoreOpts(HWND hwndDlg, UINT msg, WPARAM, LPARAM case PSN_APPLY:
for (auto &hContact : Contacts()) {
HANDLE hItem = (HANDLE)SendDlgItemMessage(hwndDlg, IDC_LIST, CLM_FINDCONTACT, hContact, 0);
- if (hItem) SaveItemMask(GetDlgItem(hwndDlg, IDC_LIST), hContact, hItem, "Mask1");
- if (SendDlgItemMessage(hwndDlg, IDC_LIST, CLM_GETCHECKMARK, (WPARAM)hItem, 0))
- db_unset(hContact, "CList", "Hidden");
- else
- db_set_b(hContact, "CList", "Hidden", 1);
+ if (hItem)
+ SaveItemMask(GetDlgItem(hwndDlg, IDC_LIST), hContact, hItem, "Mask1");
+ Clist_HideContact(hContact, !SendDlgItemMessage(hwndDlg, IDC_LIST, CLM_GETCHECKMARK, (WPARAM)hItem, 0));
}
SaveItemMask(GetDlgItem(hwndDlg, IDC_LIST), 0, hItemAll, "Default1");
diff --git a/src/mir_app/src/meta_menu.cpp b/src/mir_app/src/meta_menu.cpp index bdc340e79d..5d9a53e492 100644 --- a/src/mir_app/src/meta_menu.cpp +++ b/src/mir_app/src/meta_menu.cpp @@ -79,7 +79,7 @@ INT_PTR Meta_Convert(WPARAM wParam, LPARAM) // hide the contact if clist groups disabled (shouldn't create one anyway since menus disabled)
if (!db_mc_isEnabled())
- db_set_b(hMetaContact, "CList", "Hidden", 1);
+ Clist_HideContact(hMetaContact);
return hMetaContact;
}
@@ -96,7 +96,7 @@ void Meta_RemoveContactNumber(DBCachedContact *ccMeta, int number, bool bUpdateI DBCachedContact *ccSub = currDb->getCache()->GetCachedContact(Meta_GetContactHandle(ccMeta, number));
if (ccSub != nullptr) {
if (ccSub->parentID == ccMeta->contactID) {
- db_unset(ccSub->contactID, "CList", "Hidden");
+ Clist_HideContact(ccSub->contactID, false);
// stop ignoring, if we were
if (g_metaOptions.bSuppressStatus)
diff --git a/src/mir_app/src/meta_utils.cpp b/src/mir_app/src/meta_utils.cpp index 75e02fa608..7d0cee5982 100644 --- a/src/mir_app/src/meta_utils.cpp +++ b/src/mir_app/src/meta_utils.cpp @@ -400,7 +400,7 @@ int Meta_HideMetaContacts(bool bHide) else
continue;
- db_set_b(hContact, "CList", "Hidden", bSet);
+ Clist_HideContact(hContact, bSet);
}
if (bHide) {
diff --git a/src/mir_app/src/mir_app.def b/src/mir_app/src/mir_app.def index e040deddea..8a0d8aaa07 100644 --- a/src/mir_app/src/mir_app.def +++ b/src/mir_app/src/mir_app.def @@ -365,6 +365,8 @@ Chat_UpdateOptions @418 NONAME ?onDblClick_List@CSrmmBaseDialog@@IAEXPAVCCtrlListBox@@@Z @440 NONAME
?OnDestroy@CSrmmBaseDialog@@MAEXXZ @441 NONAME
Chat_AddMenuItems @442 NONAME
+Clist_IsHidden @443
+Clist_HideContact @444
Chat_DoEventHook @445 NONAME
_stubLogProc@16 @446 NONAME
_stubMessageProc@16 @447 NONAME
diff --git a/src/mir_app/src/mir_app64.def b/src/mir_app/src/mir_app64.def index 050bc63a1c..d302dbff59 100644 --- a/src/mir_app/src/mir_app64.def +++ b/src/mir_app/src/mir_app64.def @@ -365,6 +365,8 @@ Chat_UpdateOptions @418 NONAME ?onDblClick_List@CSrmmBaseDialog@@IEAAXPEAVCCtrlListBox@@@Z @440 NONAME
?OnDestroy@CSrmmBaseDialog@@MEAAXXZ @441 NONAME
Chat_AddMenuItems @442 NONAME
+Clist_IsHidden @443
+Clist_HideContact @444
Chat_DoEventHook @445 NONAME
stubLogProc @446 NONAME
stubMessageProc @447 NONAME
|