From 1fc54488ade5a8ba494c50f5a781b191c9b66c15 Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Sun, 29 Aug 2010 01:17:12 +0300 Subject: hz --- utilities.cpp | 42 +++++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 15 deletions(-) (limited to 'utilities.cpp') diff --git a/utilities.cpp b/utilities.cpp index 6fe66a8..65b4b6f 100644 --- a/utilities.cpp +++ b/utilities.cpp @@ -178,20 +178,13 @@ void GetFolderPath(TCHAR *WindowTittle, char *szSetting) } } -BOOL isProtoMetaContacts(HANDLE hContact); -HANDLE getMostOnline(HANDLE hContact); - - int LoadKey(WPARAM w, LPARAM l) { void ShowLoadPublicKeyDialog(); extern map user_data; extern int item_num; item_num = 0; //black magic here - HANDLE hContact = (HANDLE)w; - if(isProtoMetaContacts(hContact)) - hContact = getMostOnline(hContact); - user_data[1] = hContact; + user_data[1] = (HANDLE)w; ShowLoadPublicKeyDialog(); return 0; } @@ -200,7 +193,7 @@ int SendKey(WPARAM w, LPARAM l) { HANDLE hContact = (HANDLE)w; if(isProtoMetaContacts(hContact)) - hContact = getMostOnline(hContact); + hContact = metaGetMostOnline(hContact); char *szMessage = UniGetContactSettingUtf(NULL, szGPGModuleName, "GPGPubKey", ""); if(strlen(szMessage) > 1) { @@ -218,11 +211,30 @@ extern HANDLE hLoadPublicKey, hToggleEncryption; int ToggleEncryption(WPARAM w, LPARAM l) { - HANDLE hContact = (HANDLE)w; - if(isProtoMetaContacts(hContact)) - hContact = getMostOnline(hContact); - BYTE enc = DBGetContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", 0); - DBWriteContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", enc?0:1); + HANDLE hContact = (HANDLE)w; + BYTE enc = 0; + if(isProtoMetaContacts(hContact)) + enc = DBGetContactSettingByte(metaGetMostOnline(hContact), szGPGModuleName, "GPGEncryption", 0); + else + enc = DBGetContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", 0); + { + if(isProtoMetaContacts(hContact)) + { + HANDLE hcnt = NULL; + if(MessageBox(0, _T("Do you want to toggle encryption for all subcontacts ?"), _T("Metacontact detected"), MB_YESNO) == IDYES) + { + int count = metaGetContactsNum(hContact); + for(int i = 0; i < count; i++) + { + hcnt = metaGetSubcontact(hContact, i); + if(hcnt) + DBWriteContactSettingByte(hcnt, szGPGModuleName, "GPGEncryption", enc?0:1); + } + } + } + else + DBWriteContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", enc?0:1); + } void setSrmmIcon(HANDLE hContact); void setClistIcon(HANDLE hContact); setSrmmIcon(hContact); @@ -240,7 +252,7 @@ int OnPreBuildContactMenu(WPARAM w, LPARAM l) { HANDLE hContact = (HANDLE)w; if(isProtoMetaContacts(hContact)) - hContact = getMostOnline(hContact); + hContact = metaGetMostOnline(hContact); CLISTMENUITEM mi = {0}; mi.cbSize=sizeof(mi); mi.flags = CMIM_NAME; -- cgit v1.2.3