summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGluzskiy Alexandr <sss@sss.chaoslab.ru>2012-05-20 07:24:29 +0300
committerGluzskiy Alexandr <sss@sss.chaoslab.ru>2012-05-20 07:24:29 +0300
commit093731d35e605ede9798ace4ac73c77a51012a6c (patch)
tree7c62c1e06a031f89d87d4f76931de5c77585a77e
parent9026615fea720ca69d3a3480a69e32e5432db69b (diff)
metacontacts fixes
-rwxr-xr-xicons.cpp4
-rwxr-xr-xmessages.cpp10
-rwxr-xr-xsrmm.cpp8
-rwxr-xr-xutilities.cpp7
4 files changed, 16 insertions, 13 deletions
diff --git a/icons.cpp b/icons.cpp
index 58e93de..58a24c9 100755
--- a/icons.cpp
+++ b/icons.cpp
@@ -104,9 +104,9 @@ void setClistIcon(HANDLE hContact)
}
}
-void setSrmmIcon(HANDLE hContact)
+void setSrmmIcon(HANDLE h)
{
- hContact = metaGetMostOnline(hContact);
+ HANDLE hContact = metaIsProtoMetaContacts(h)?metaGetMostOnline(h):h;
bool enabled = isContactSecured(hContact);
HANDLE hMC = hContact;
if(metaIsSubcontact(hContact))
diff --git a/messages.cpp b/messages.cpp
index 6e69a2a..db4e404 100755
--- a/messages.cpp
+++ b/messages.cpp
@@ -54,13 +54,13 @@ int RecvMsgSvc_func(HANDLE hContact, std::wstring str, char *msg, DWORD flags, D
}
else
{
- DBWriteContactSettingByte(metaGetMostOnline(hContact), szGPGModuleName, "GPGEncryption", 1);
+ DBWriteContactSettingByte(metaIsProtoMetaContacts(hContact)?metaGetMostOnline(hContact):hContact, szGPGModuleName, "GPGEncryption", 1);
setSrmmIcon(hContact);
setClistIcon(hContact);
}
if(isContactHaveKey(hContact))
{
- DBWriteContactSettingByte(metaGetMostOnline(hContact), szGPGModuleName, "GPGEncryption", 1);
+ DBWriteContactSettingByte(metaIsProtoMetaContacts(hContact)?metaGetMostOnline(hContact):hContact, szGPGModuleName, "GPGEncryption", 1);
setSrmmIcon(hContact);
setClistIcon(hContact);
}
@@ -99,7 +99,7 @@ int RecvMsgSvc_func(HANDLE hContact, std::wstring str, char *msg, DWORD flags, D
wstring cmd;
cmd += _T("--batch ");
{
- char *inkeyid = UniGetContactSettingUtf(metaGetMostOnline(hContact), szGPGModuleName, "InKeyID", "");
+ char *inkeyid = UniGetContactSettingUtf(metaIsProtoMetaContacts(hContact)?metaGetMostOnline(hContact):hContact, szGPGModuleName, "InKeyID", "");
TCHAR *pass = NULL;
if(inkeyid[0])
{
@@ -195,7 +195,7 @@ int RecvMsgSvc_func(HANDLE hContact, std::wstring str, char *msg, DWORD flags, D
s = out.find(" ID ", s);
s += strlen(" ID ");
string::size_type s2 = out.find(",",s);
- DBWriteContactSettingString(metaGetMostOnline(hContact), szGPGModuleName, "InKeyID", out.substr(s, s2-s).c_str());
+ DBWriteContactSettingString(metaIsProtoMetaContacts(hContact)?metaGetMostOnline(hContact):hContact, szGPGModuleName, "InKeyID", out.substr(s, s2-s).c_str());
}
void ShowLoadKeyPasswordWindow();
new_key_hcnt_mutex.lock();
@@ -352,7 +352,7 @@ int RecvMsgSvc_func(HANDLE hContact, std::wstring str, char *msg, DWORD flags, D
}
}
}
- if(DBGetContactSettingByte(metaGetMostOnline(hContact), szGPGModuleName, "GPGEncryption", 0))
+ if(DBGetContactSettingByte(metaIsProtoMetaContacts(hContact)?metaGetMostOnline(hContact):hContact, szGPGModuleName, "GPGEncryption", 0))
{
if(metaIsSubcontact(hContact))
{
diff --git a/srmm.cpp b/srmm.cpp
index dd2b9d2..763134a 100755
--- a/srmm.cpp
+++ b/srmm.cpp
@@ -34,7 +34,7 @@ int __cdecl onWindowEvent(WPARAM wParam, LPARAM lParam) {
int __cdecl onIconPressed(WPARAM wParam, LPARAM lParam) {
HANDLE hContact = (HANDLE)wParam;
- HANDLE hMeta = hContact;
+ HANDLE hMeta = NULL;
if(metaIsProtoMetaContacts(hContact))
hContact = metaGetMostOnline(hContact); // возьмем тот, через который пойдет сообщение
else if(metaIsSubcontact(hContact))
@@ -50,7 +50,7 @@ int __cdecl onIconPressed(WPARAM wParam, LPARAM lParam) {
if(enc)
{
DBWriteContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", 0);
- DBWriteContactSettingByte(hMeta, szGPGModuleName, "GPGEncryption", 0);
+ hMeta?DBWriteContactSettingByte(hMeta, szGPGModuleName, "GPGEncryption", 0):0;
setSrmmIcon(hContact);
setClistIcon(hContact);
}
@@ -68,7 +68,7 @@ int __cdecl onIconPressed(WPARAM wParam, LPARAM lParam) {
else
{
DBWriteContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", 1);
- DBWriteContactSettingByte(hMeta, szGPGModuleName, "GPGEncryption", 1);
+ hMeta?DBWriteContactSettingByte(hMeta, szGPGModuleName, "GPGEncryption", 1):0;
setSrmmIcon(hContact);
setClistIcon(hContact);
return 0;
@@ -76,7 +76,7 @@ int __cdecl onIconPressed(WPARAM wParam, LPARAM lParam) {
if(isContactHaveKey(hContact))
{
DBWriteContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", 1);
- DBWriteContactSettingByte(hMeta, szGPGModuleName, "GPGEncryption", 1);
+ hMeta?DBWriteContactSettingByte(hMeta, szGPGModuleName, "GPGEncryption", 1):0;
setSrmmIcon(hContact);
setClistIcon(hContact);
}
diff --git a/utilities.cpp b/utilities.cpp
index 0648c37..67e0238 100755
--- a/utilities.cpp
+++ b/utilities.cpp
@@ -234,7 +234,7 @@ int ToggleEncryption(WPARAM w, LPARAM l)
}
}
else
- DBWriteContactSettingByte(metaGetMostOnline(hContact), szGPGModuleName, "GPGEncryption", enc?0:1);
+ DBWriteContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", enc?0:1);
void setSrmmIcon(HANDLE hContact);
void setClistIcon(HANDLE hContact);
setSrmmIcon(hContact);
@@ -393,7 +393,10 @@ int onProtoAck(WPARAM w, LPARAM l)
s = out.find(" ID ", s);
s += strlen(" ID ");
string::size_type s2 = out.find(",",s);
- DBWriteContactSettingString(metaGetMostOnline(ccs->hContact), szGPGModuleName, "InKeyID", out.substr(s, s2-s).c_str());
+ if(metaIsProtoMetaContacts(ccs->hContact))
+ DBWriteContactSettingString(metaGetMostOnline(ccs->hContact), szGPGModuleName, "InKeyID", out.substr(s, s2-s).c_str());
+ else
+ DBWriteContactSettingString(ccs->hContact, szGPGModuleName, "InKeyID", out.substr(s, s2-s).c_str());
}
void ShowLoadKeyPasswordWindow();
new_key_hcnt_mutex.lock();