From 5289388e941bbdeca3d380c2f1044228e3397bc0 Mon Sep 17 00:00:00 2001
From: George Hazan <george.hazan@gmail.com>
Date: Thu, 20 Mar 2014 14:47:13 +0000
Subject: db_mc_enable, db_mc_isEnabled - new functions to detect whether MC
 are used

git-svn-id: http://svn.miranda-ng.org/main/trunk@8666 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
---
 src/modules/metacontacts/meta_main.cpp     |  2 --
 src/modules/metacontacts/meta_menu.cpp     | 19 ++++++++++---------
 src/modules/metacontacts/meta_options.cpp  |  2 +-
 src/modules/metacontacts/meta_services.cpp | 12 ++----------
 src/modules/metacontacts/metacontacts.h    |  1 -
 5 files changed, 13 insertions(+), 23 deletions(-)

(limited to 'src/modules')

diff --git a/src/modules/metacontacts/meta_main.cpp b/src/modules/metacontacts/meta_main.cpp
index c031e6ce77..dec65ef7d0 100644
--- a/src/modules/metacontacts/meta_main.cpp
+++ b/src/modules/metacontacts/meta_main.cpp
@@ -24,8 +24,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 #include "metacontacts.h"
 
-BOOL os_unicode_enabled = FALSE;
-
 /////////////////////////////////////////////////////////////////////////////////////////
 // icolib support
 
diff --git a/src/modules/metacontacts/meta_menu.cpp b/src/modules/metacontacts/meta_menu.cpp
index f6116a03ea..0717647f88 100644
--- a/src/modules/metacontacts/meta_menu.cpp
+++ b/src/modules/metacontacts/meta_menu.cpp
@@ -76,7 +76,7 @@ INT_PTR Meta_Convert(WPARAM wParam, LPARAM lParam)
 	}
 
 	// hide the contact if clist groups disabled (shouldn't create one anyway since menus disabled)
-	if (!options.bEnabled)
+	if (!db_mc_isEnabled())
 		db_set_b(hMetaContact, "CList", "Hidden", 1);
 
 	return hMetaContact;
@@ -318,7 +318,7 @@ int Meta_ModifyMenu(WPARAM hMeta, LPARAM lParam)
 	}
 
 	PROTOACCOUNT *pa = Proto_GetAccount(cc->szProto);
-	if (!options.bEnabled || pa->bIsVirtual) {
+	if (!db_mc_isEnabled() || pa->bIsVirtual) {
 		// groups disabled - all meta menu options hidden
 		Menu_ShowItem(hMenuDefault, false);
 		Menu_ShowItem(hMenuDelete, false);
@@ -360,20 +360,21 @@ INT_PTR Meta_OnOff(WPARAM wParam, LPARAM lParam)
 {
 	CLISTMENUITEM mi = { sizeof(mi) };
 	mi.flags = CMIM_NAME | CMIM_ICON;
-	// just write to db - the rest is handled in the Meta_SettingChanged function
-	if (db_get_b(0, META_PROTO, "Enabled", 1)) {
-		db_set_b(0, META_PROTO, "Enabled", 0);
-		// modify main mi item
+
+	bool bToggled = !db_mc_isEnabled();
+	db_set_b(0, META_PROTO, "Enabled", bToggled);
+	if (bToggled) {
 		mi.icolibItem = GetIconHandle(I_MENU);
 		mi.pszName = LPGEN("Toggle MetaContacts On");
 	}
 	else {
-		db_set_b(0, META_PROTO, "Enabled", 1);
-		// modify main mi item
 		mi.icolibItem = GetIconHandle(I_MENUOFF);
 		mi.pszName = LPGEN("Toggle MetaContacts Off");
 	}
 	Menu_ModifyItem(hMenuOnOff, &mi);
+
+	db_mc_enable(bToggled);
+	Meta_HideMetaContacts(bToggled);
 	return 0;
 }
 
@@ -442,7 +443,7 @@ void InitMenus()
 
 	Meta_HideLinkedContacts();
 
-	if (!options.bEnabled) {
+	if (!db_mc_isEnabled()) {
 		// modify main menu item
 		mi.flags = CMIM_NAME | CMIM_ICON;
 		mi.icolibItem = GetIconHandle(I_MENU);
diff --git a/src/modules/metacontacts/meta_options.cpp b/src/modules/metacontacts/meta_options.cpp
index 382f83d446..1346f0b049 100644
--- a/src/modules/metacontacts/meta_options.cpp
+++ b/src/modules/metacontacts/meta_options.cpp
@@ -160,7 +160,7 @@ int Meta_WriteOptions(MetaOptions *opt)
 
 int Meta_ReadOptions(MetaOptions *opt)
 {
-	opt->bEnabled = db_get_b(NULL, META_PROTO, "Enabled", true) != 0;
+	db_mc_enable(db_get_b(NULL, META_PROTO, "Enabled", true) != 0);
 	opt->bSuppressStatus = db_get_b(NULL, META_PROTO, "SuppressStatus", true) != 0;
 	opt->menu_contact_label = (int)db_get_w(NULL, META_PROTO, "MenuContactLabel", DNT_UID);
 	opt->menu_function = (int)db_get_w(NULL, META_PROTO, "MenuContactFunction", FT_MENU);
diff --git a/src/modules/metacontacts/meta_services.cpp b/src/modules/metacontacts/meta_services.cpp
index a4e14883dd..556b6999f5 100644
--- a/src/modules/metacontacts/meta_services.cpp
+++ b/src/modules/metacontacts/meta_services.cpp
@@ -314,16 +314,8 @@ int Meta_SettingChanged(WPARAM hContact, LPARAM lParam)
 	char buffer[512], szId[40];
 
 	// the only global options we're interested in
-	if (hContact == 0) {
-		// hide metacontacts when groups disabled
-		if ((!strcmp(dcws->szModule, "CList") && !strcmp(dcws->szSetting, "UseGroups")) ||
-			 (!strcmp(dcws->szModule, META_PROTO) && !strcmp(dcws->szSetting, "Enabled")))
-		{
-			options.bEnabled = !options.bEnabled;
-			Meta_HideMetaContacts(!options.bEnabled);
-		}
+	if (hContact == 0)
 		return 0;
-	}
 
 	DBCachedContact *cc = currDb->m_cache->GetCachedContact(hContact);
 	if (cc == NULL || !cc->IsSub())
@@ -521,7 +513,7 @@ INT_PTR Meta_UserIsTyping(WPARAM hMeta, LPARAM lParam)
 
 int Meta_ContactIsTyping(WPARAM hContact, LPARAM lParam)
 {
-	if (!options.bEnabled)
+	if (!db_mc_isEnabled())
 		return 0;
 
 	DBCachedContact *cc = currDb->m_cache->GetCachedContact(hContact);
diff --git a/src/modules/metacontacts/metacontacts.h b/src/modules/metacontacts/metacontacts.h
index d550740242..54bbd3eebf 100644
--- a/src/modules/metacontacts/metacontacts.h
+++ b/src/modules/metacontacts/metacontacts.h
@@ -76,7 +76,6 @@ enum CListDisplayNameType {CNNT_NICK = 0, CNNT_DISPLAYNAME = 1};
 
 struct MetaOptions
 {
-	bool bEnabled;
 	bool bLockHandle;
 	bool bSuppressStatus;
 
-- 
cgit v1.2.3