summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--icons.cpp2
-rw-r--r--options.cpp9
-rw-r--r--srmm.cpp42
-rw-r--r--utilities.cpp2
4 files changed, 43 insertions, 12 deletions
diff --git a/icons.cpp b/icons.cpp
index 1e70e2d..8df859e 100644
--- a/icons.cpp
+++ b/icons.cpp
@@ -95,7 +95,7 @@ void setClistIcon(HANDLE hContact)
}
else
{
- ExtraIcon_SetIcon(g_hCLIcon, hContact, (HANDLE)0);
+ ExtraIcon_SetIcon(g_hCLIcon, hContact, (HANDLE)0); // is it right ? hmm.., at least working....
if(hMC)
ExtraIcon_SetIcon(g_hCLIcon, hMC, (HANDLE)0);
}
diff --git a/options.cpp b/options.cpp
index 8f64c98..e54eded 100644
--- a/options.cpp
+++ b/options.cpp
@@ -77,8 +77,6 @@ int GpgOptInit(WPARAM wParam,LPARAM lParam)
return 0;
}
-HWND hwndLoadPublicKey = NULL;
-
map<int, HANDLE> user_data;
int item_num = 0;
@@ -680,7 +678,6 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP
DestroyWindow(hwndDlg);
break;
case WM_DESTROY:
- hwndLoadPublicKey = NULL;
break;
}
@@ -692,9 +689,5 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP
void ShowLoadPublicKeyDialog()
{
- if (hwndLoadPublicKey == NULL)
- {
- hwndLoadPublicKey = CreateDialog(hInst, MAKEINTRESOURCE(IDD_LOAD_PUBLIC_KEY), NULL, DlgProcLoadPublicKey);
- }
- SetForegroundWindow(hwndLoadPublicKey);
+ DialogBox(hInst, MAKEINTRESOURCE(IDD_LOAD_PUBLIC_KEY), NULL, DlgProcLoadPublicKey);
}
diff --git a/srmm.cpp b/srmm.cpp
index 6d00040..d5f6061 100644
--- a/srmm.cpp
+++ b/srmm.cpp
@@ -41,7 +41,45 @@ int __cdecl onIconPressed(WPARAM wParam, LPARAM lParam) {
StatusIconClickData *sicd = (StatusIconClickData *)lParam;
if(strcmp(sicd->szModule, szGPGModuleName) != 0)
- return 0; // not our event
-
+ return 0; // not our event
+
+ void setSrmmIcon(HANDLE);
+ void setClistIcon(HANDLE);
+ TCHAR *key = UniGetContactSettingUtf(hContact, szGPGModuleName, "GPGPubKey", _T(""));
+ BYTE enc = DBGetContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", 0);
+ if(enc)
+ {
+ DBWriteContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", 0);
+ setSrmmIcon(hContact);
+ setClistIcon(hContact);
+ }
+ else if(!enc)
+ {
+ if(_tcslen(key) < 1)
+ {
+ void ShowLoadPublicKeyDialog();
+ extern map<int, HANDLE> user_data;
+ extern int item_num;
+ item_num = 0; //black magic here
+ user_data[1] = hContact;
+ ShowLoadPublicKeyDialog();
+ }
+ else
+ {
+ DBWriteContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", 1);
+ setSrmmIcon(hContact);
+ setClistIcon(hContact);
+ mir_free(key);
+ return 0;
+ }
+ mir_free(key);
+ key = UniGetContactSettingUtf(hContact, szGPGModuleName, "GPGPubKey", _T(""));
+ if(_tcslen(key) > 0)
+ {
+ DBWriteContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", 1);
+ setSrmmIcon(hContact);
+ setClistIcon(hContact);
+ }
+ }
return 0;
}
diff --git a/utilities.cpp b/utilities.cpp
index d181c8b..6988fed 100644
--- a/utilities.cpp
+++ b/utilities.cpp
@@ -491,7 +491,7 @@ void AddHandlers()
bool isContactSecured(HANDLE hContact)
{
TCHAR *key = UniGetContactSettingUtf(hContact, szGPGModuleName, "GPGPubKey", _T(""));
- if(DBGetContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", 0) && (_tcslen(key) > 1))
+ if(DBGetContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", 0) && (_tcslen(key) > 0))
{
mir_free(key);
return true;