From 34571247cb430bcc9be56630e9fb0a714b5fd4c8 Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Fri, 1 Apr 2011 05:50:42 +0300 Subject: modified: icons.cpp modified: messages.cpp modified: utilities.cpp --- icons.cpp | 10 +++++++--- messages.cpp | 9 ++++++++- utilities.cpp | 2 -- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/icons.cpp b/icons.cpp index cd32911..882f58b 100644 --- a/icons.cpp +++ b/icons.cpp @@ -82,7 +82,9 @@ void setClistIcon(HANDLE hContact) bool enabled = isContactSecured(hContact); extern HANDLE g_hCLIcon; HANDLE hMC = hContact; - if(metaIsProtoMetaContacts(hContact)) + if(metaIsSubcontact(hContact)) + hMC = metaGetContact(hContact); + else if(metaIsProtoMetaContacts(hContact)) hMC = metaGetContact(hContact); if(g_hCLIcon && enabled) { @@ -107,10 +109,12 @@ void setSrmmIcon(HANDLE hContact) hContact = metaGetMostOnline(hContact); bool enabled = isContactSecured(hContact); HANDLE hMC = hContact; - if(metaIsProtoMetaContacts(hContact)) + if(metaIsSubcontact(hContact)) + hMC = metaGetContact(hContact); + else if(metaIsProtoMetaContacts(hContact)) hMC = metaGetContact(hContact); if(ServiceExists(MS_MSG_MODIFYICON)) - { // обновить иконки в srmm + { StatusIconData sid = {0}; sid.cbSize = sizeof(sid); sid.szModule = szGPGModuleName; diff --git a/messages.cpp b/messages.cpp index f7ea63f..f421e4a 100644 --- a/messages.cpp +++ b/messages.cpp @@ -729,9 +729,12 @@ int SendMsgSvc_func(HANDLE hContact, char *msg, DWORD flags) if(metaIsSubcontact(hContact)) { hcontact_data[metaGetContact(hContact)].msgs_to_pass.push_back(str_event); + debuglog<<(TCHAR*)CallService(MS_CLIST_GETCONTACTDISPLAYNAME, (WPARAM)hContact, GCDNF_TCHAR)<<"is subcontact of"<<(TCHAR*)CallService(MS_CLIST_GETCONTACTDISPLAYNAME, (WPARAM)metaGetContact(hContact), GCDNF_TCHAR)<<"\n"; + debuglog<pBlob)) { hcontact_data[hContact].msgs_to_pass.erase(i); + debuglog<pBlob<<"\" passed event filter, contact "<<(TCHAR*)CallService(MS_CLIST_GETCONTACTDISPLAYNAME, (WPARAM)hContact, GCDNF_TCHAR)<<", message is in allowed list\n"; event_processing_mutex.unlock(); return 0; } @@ -860,7 +864,10 @@ int HookSendMsg(WPARAM w, LPARAM l) return 1; } if(!isContactSecured(hContact)) + { + debuglog<pBlob<<"\" passed event filter, contact "<<(TCHAR*)CallService(MS_CLIST_GETCONTACTDISPLAYNAME, (WPARAM)hContact, GCDNF_TCHAR)<<" is unsecured\n"; return 0; + } if(!(dbei->flags & DBEF_SENT) && metaIsProtoMetaContacts((HANDLE)w)) { char tmp[29]; @@ -869,7 +876,7 @@ int HookSendMsg(WPARAM w, LPARAM l) if(strstr(tmp, "-----BEGIN PGP MESSAGE-----")) return 1; } - return 0; + return 1; } diff --git a/utilities.cpp b/utilities.cpp index d368c56..83407d0 100644 --- a/utilities.cpp +++ b/utilities.cpp @@ -975,8 +975,6 @@ void AddHandlers() bool isContactSecured(HANDLE hContact) { - if(metaIsProtoMetaContacts(hContact)) - hContact = metaGetContact(hContact); BYTE gpg_enc = DBGetContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", 0); if(!gpg_enc) return false; -- cgit v1.2.3 From 21f2c63d296d4cdf534de24a216811b4c4b744fc Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Fri, 1 Apr 2011 06:00:00 +0300 Subject: modified: utilities.cpp --- utilities.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/utilities.cpp b/utilities.cpp index 83407d0..8d33d4b 100644 --- a/utilities.cpp +++ b/utilities.cpp @@ -977,9 +977,12 @@ bool isContactSecured(HANDLE hContact) { BYTE gpg_enc = DBGetContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", 0); if(!gpg_enc) + { + debuglog< Date: Fri, 1 Apr 2011 10:14:07 +0300 Subject: modified: gpg_wrapper.cpp modified: gpg_wrapper.h modified: main.cpp modified: messages.cpp modified: options.cpp modified: utilities.cpp --- gpg_wrapper.cpp | 6 ++++-- gpg_wrapper.h | 1 + main.cpp | 19 +++++++++++++++++++ messages.cpp | 11 +++++++++-- options.cpp | 5 +++++ utilities.cpp | 20 +++++++++++++------- 6 files changed, 51 insertions(+), 11 deletions(-) diff --git a/gpg_wrapper.cpp b/gpg_wrapper.cpp index 3ed7f4a..0a50667 100644 --- a/gpg_wrapper.cpp +++ b/gpg_wrapper.cpp @@ -21,7 +21,7 @@ //boost::mutex gpg_mutex; -pxResult pxExecute(wstring *acommandline, char *ainput, string *aoutput, LPDWORD aexitcode, pxResult *result, HANDLE hProcess) +pxResult pxExecute(wstring *acommandline, char *ainput, string *aoutput, LPDWORD aexitcode, pxResult *result, HANDLE hProcess, PROCESS_INFORMATION *pr) { // gpg_mutex.lock(); if(!gpg_configured) @@ -122,6 +122,8 @@ pxResult pxExecute(wstring *acommandline, char *ainput, string *aoutput, LPDWORD while (TRUE) { + if(!pri.hProcess) + break; success=GetExitCodeProcess(pri.hProcess,aexitcode); if (success && *aexitcode!=STILL_ACTIVE) break; @@ -157,5 +159,5 @@ pxResult pxExecute(wstring *acommandline, char *ainput, string *aoutput, LPDWORD void pxEexcute_thread(void *param) { gpg_execution_params *params = (gpg_execution_params*)param; - pxResult result = pxExecute(params->cmd, params->useless, params->out, params->code, params->result, params->hProcess); + pxResult result = pxExecute(params->cmd, params->useless, params->out, params->code, params->result, params->hProcess, params->proc); } diff --git a/gpg_wrapper.h b/gpg_wrapper.h index f9d6670..77f84f8 100644 --- a/gpg_wrapper.h +++ b/gpg_wrapper.h @@ -25,6 +25,7 @@ struct gpg_execution_params LPDWORD code; pxResult *result; HANDLE hProcess; + PROCESS_INFORMATION *proc; }; void pxEexcute_thread(void *param); diff --git a/main.cpp b/main.cpp index cccb846..f2df7bb 100644 --- a/main.cpp +++ b/main.cpp @@ -95,6 +95,7 @@ static BOOL CALLBACK DlgProcFirstRun(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM { gpg_thread.~thread(); TerminateProcess(params.hProcess, 1); + params.hProcess = NULL; debuglog< Date: Fri, 1 Apr 2011 10:26:04 +0300 Subject: modified: main.cpp --- main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.cpp b/main.cpp index f2df7bb..601ebf1 100644 --- a/main.cpp +++ b/main.cpp @@ -1995,7 +1995,7 @@ void ImportKey() tmp = new char [output.substr(s,s2-s-1).length()+1]; strcpy(tmp, output.substr(s,s2-s-1).c_str()); mir_utf8decode(tmp, 0); - DBWriteContactSettingString(metaGetContact(hContact), szGPGModuleName, "KeyMainName", tmp); + DBWriteContactSettingString(metaGetMostOnline(hContact), szGPGModuleName, "KeyMainName", tmp); mir_free(tmp); if((s = output.find(")", s2)) == string::npos) s = output.find(">", s2); -- cgit v1.2.3 From 659a4240935cca077145fb5b5f9338f824fd7c14 Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Fri, 1 Apr 2011 10:28:13 +0300 Subject: idiot... --- messages.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/messages.cpp b/messages.cpp index 88a9097..2a52bb7 100644 --- a/messages.cpp +++ b/messages.cpp @@ -883,7 +883,7 @@ int HookSendMsg(WPARAM w, LPARAM l) if(strstr(tmp, "-----BEGIN PGP MESSAGE-----")) return 1; } - return 1; + return 0; } -- cgit v1.2.3 From 62bf3df560d4e2a271c587b8bea4ce38a9ac1b2f Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Sat, 2 Apr 2011 04:46:14 +0300 Subject: modified: messages.cpp modified: new_gpg.vcxproj --- messages.cpp | 2 +- new_gpg.vcxproj | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/messages.cpp b/messages.cpp index 2a52bb7..51bd113 100644 --- a/messages.cpp +++ b/messages.cpp @@ -479,7 +479,7 @@ int RecvMsgSvc(WPARAM w, LPARAM l) } if((s2 != wstring::npos) && (s1 != wstring::npos)) { //this is public key - if(metaIsSubcontact(ccs->hContact)) + if(metaIsProtoMetaContacts(ccs->hContact)) { HistoryLog(ccs->hContact, msg, EVENTTYPE_MESSAGE, dbflags); return 0; diff --git a/new_gpg.vcxproj b/new_gpg.vcxproj index 59b9299..c156164 100644 --- a/new_gpg.vcxproj +++ b/new_gpg.vcxproj @@ -527,7 +527,7 @@ Disabled - x:\temp\windows\libs\utf8cpp\include;X:\temp\windows\libs\Boost\include\boost-1_46;x:\install\git\miranda\miranda-im\miranda\include;x:\install\git\miranda\mim_plugs;../../include;%(AdditionalIncludeDirectories) + e:\temp\windows\libs\utf8cpp\include;e:\temp\windows\libs\Boost\include\boost-1_46;e:\install\git\miranda\miranda-im\miranda\include;x:\install\git\miranda\mim_plugs;../../include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;TESTPLUG_EXPORTS;_CRT_SECURE_NO_WARNINGS;_UNICODE;UNICODE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebug @@ -551,7 +551,7 @@ shlwapi.lib;%(AdditionalDependencies) true - X:\temp\windows\libs\Boost\lib-debug-x64;%(AdditionalLibraryDirectories) + e:\temp\windows\libs\Boost\lib-debug-x64;%(AdditionalLibraryDirectories) true true false -- cgit v1.2.3 From 01a38512a17fc0f08fca08e9fb8d4edfd0d061df Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Tue, 5 Apr 2011 07:44:13 +0300 Subject: modified: messages.cpp modified: utilities.cpp modified: utilities.h --- messages.cpp | 55 ++++++++++++++++++++++++------------------------ utilities.cpp | 20 +++++++++++------- utilities.h | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 105 insertions(+), 37 deletions(-) diff --git a/messages.cpp b/messages.cpp index 51bd113..f73223e 100644 --- a/messages.cpp +++ b/messages.cpp @@ -23,7 +23,7 @@ boost::mutex new_key_hcnt_mutex; bool _terminate = false; int returnNoError(HANDLE hContact); -int RecvMsgSvc_func(HANDLE hContact, std::wstring str, char *msg, DWORD flags) +int RecvMsgSvc_func(HANDLE hContact, std::wstring str, char *msg, DWORD flags, DWORD timestamp) { DWORD dbflags = DBEF_UTF; { //check for gpg related data @@ -38,7 +38,7 @@ int RecvMsgSvc_func(HANDLE hContact, std::wstring str, char *msg, DWORD flags) bool isContactHaveKey(HANDLE hContact); if(!isContactSecured(hContact)) { - debuglog<hContact)); setClistIcon(metaGetContact(ccs->hContact)); - HistoryLog(metaGetContact(ccs->hContact), "PGP Encryption turned on by key autoexchange feature", EVENTTYPE_MESSAGE, 0); + HistoryLog(metaGetContact(ccs->hContact), "PGP Encryption turned on by key autoexchange feature"); } - HistoryLog(ccs->hContact, "PGP Encryption turned on by key autoexchange feature", EVENTTYPE_MESSAGE, 0); + HistoryLog(ccs->hContact, "PGP Encryption turned on by key autoexchange feature"); } } return 1; @@ -481,7 +482,7 @@ int RecvMsgSvc(WPARAM w, LPARAM l) { //this is public key if(metaIsProtoMetaContacts(ccs->hContact)) { - HistoryLog(ccs->hContact, msg, EVENTTYPE_MESSAGE, dbflags); + HistoryLog(ccs->hContact, db_event(msg, 0, 0, dbflags)); return 0; } debuglog<hContact, GCDNF_TCHAR)<<"\n"; @@ -507,7 +508,7 @@ int RecvMsgSvc(WPARAM w, LPARAM l) new_key_hcnt_mutex.lock(); new_key_hcnt = ccs->hContact; ShowNewKeyDialog(); - HistoryLog(ccs->hContact, msg, EVENTTYPE_MESSAGE, dbflags); + HistoryLog(ccs->hContact, db_event(msg, 0, 0, dbflags)); return 0; } if(bAutoExchange && strstr(msg, "-----PGP KEY REQUEST-----") && isGPGConfigured()) @@ -568,7 +569,7 @@ int RecvMsgSvc(WPARAM w, LPARAM l) } if(!(strstr(msg, "-----BEGIN PGP MESSAGE-----") && strstr(msg, "-----END PGP MESSAGE-----"))) return CallService(MS_PROTO_CHAINRECV, w, l); - boost::thread *thr = new boost::thread(boost::bind(RecvMsgSvc_func, ccs->hContact, str, msg, ccs->wParam)); + boost::thread *thr = new boost::thread(boost::bind(RecvMsgSvc_func, ccs->hContact, str, msg, ccs->wParam, pre->timestamp)); return returnNoError(ccs->hContact); } @@ -602,7 +603,7 @@ int SendMsgSvc_func(HANDLE hContact, char *msg, DWORD flags) if(!tmp[0]) { mir_free(tmp); - HistoryLog(hContact, "Failed to encrypt message with GPG", EVENTTYPE_MESSAGE, DBEF_SENT); + HistoryLog(hContact, db_event("Failed to encrypt message with GPG", 0,0, DBEF_SENT)); hcontact_data[hContact].msgs_to_pass.push_back("Failed to encrypt message with GPG"); mir_free(msg); return CallContactService(hContact, PSS_MESSAGE, (WPARAM)flags, (LPARAM)msg); @@ -721,7 +722,7 @@ int SendMsgSvc_func(HANDLE hContact, char *msg, DWORD flags) } if(str.empty()) { - HistoryLog(hContact, "Failed to encrypt message with GPG", EVENTTYPE_MESSAGE, DBEF_SENT); + HistoryLog(hContact, db_event("Failed to encrypt message with GPG", 0,0, DBEF_SENT)); hcontact_data[hContact].msgs_to_pass.push_back("Failed to encrypt message with GPG"); debuglog<0); } -void HistoryLog(HANDLE hContact, char *data, int event_type, int flags) +void HistoryLog(HANDLE hContact, db_event evt) { DBEVENTINFO Event = {0}; Event.cbSize = sizeof(Event); Event.szModule = szGPGModuleName; - Event.eventType = event_type; - Event.flags = flags; - Event.timestamp = (DWORD)time(NULL); - Event.cbBlob = strlen(data)+1; - Event.pBlob = (PBYTE)_strdup(data); + Event.eventType = evt.eventType; + Event.flags = evt.flags; + if(!evt.timestamp) + Event.timestamp = (DWORD)time(NULL); + else + Event.timestamp = evt.timestamp; + Event.cbBlob = strlen((char*)evt.pBlob)+1; + Event.pBlob = (PBYTE)_strdup((char*)evt.pBlob); CallService(MS_DB_EVENT_ADD, (WPARAM)(HANDLE)hContact,(LPARAM)&Event); } @@ -1154,7 +1157,8 @@ void send_encrypted_msgs_thread(HANDLE hContact) for(list::iterator p = hcontact_data[hContact].msgs_to_send.begin(); p != end; ++p) { CallContactService(hContact, PSS_MESSAGE, (WPARAM)PREF_UTF, (LPARAM)p->c_str()); - HistoryLog(hContact, (char*)p->c_str(), EVENTTYPE_MESSAGE, DBEF_SENT); + + HistoryLog(hContact, db_event((char*)p->c_str(),0,0, DBEF_SENT)); boost::this_thread::sleep(boost::posix_time::seconds(1)); } return; diff --git a/utilities.h b/utilities.h index bb4b459..5922311 100644 --- a/utilities.h +++ b/utilities.h @@ -24,8 +24,6 @@ void GetFolderPath(TCHAR *WindowTittle, char *szSetting); void storeOutput(HANDLE ahandle, string *output); - -void HistoryLog(HANDLE hContact, char *data, int event_type, int flags); int ComboBoxAddStringUtf(HWND hCombo, const TCHAR *szString, DWORD data); bool isContactSecured(HANDLE hContact); bool isContactHaveKey(HANDLE hContact); @@ -36,4 +34,69 @@ wstring toUTF16(string str); string get_random(int length); string time_str(); +struct db_event : public DBEVENTINFO +{ +public: + db_event(char* msg) + { + eventType = EVENTTYPE_MESSAGE; + flags = 0; + timestamp = 0; + szModule = 0; + cbSize = 0; + cbBlob = strlen(msg)+1; + pBlob = (PBYTE)msg; + } + db_event(char* msg, DWORD time) + { + cbBlob = strlen(msg)+1; + pBlob = (PBYTE)msg; + eventType = EVENTTYPE_MESSAGE; + flags = 0; + timestamp = time; + szModule = 0; + cbSize = 0; + } + db_event(char* msg, DWORD time, int type) + { + cbBlob = strlen(msg)+1; + pBlob = (PBYTE)msg; + if(type) + eventType = type; + else + eventType = EVENTTYPE_MESSAGE; + flags = 0; + timestamp = time; + szModule = 0; + cbSize = 0; + } + db_event(char* msg, int type) + { + cbBlob = strlen(msg)+1; + pBlob = (PBYTE)msg; + flags = 0; + if(type) + eventType = type; + else + eventType = EVENTTYPE_MESSAGE; + timestamp = 0; + szModule = 0; + cbSize = 0; + } + db_event(char* msg, DWORD time, int type, DWORD _flags) + { + cbBlob = strlen(msg)+1; + pBlob = (PBYTE)msg; + if(type) + eventType = type; + else + eventType = EVENTTYPE_MESSAGE; + flags = _flags; + timestamp = time; + szModule = 0; + cbSize = 0; + } +}; +void HistoryLog(HANDLE, db_event); + #endif -- cgit v1.2.3 From eacaecb90d386044d24f47606007a0d348e92ebb Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Sat, 9 Apr 2011 21:53:35 +0300 Subject: Improved translation ability requested on forums --- main.cpp | 25 +++++++++++++------------ new_gpg.rc | 49 ++++++++++++++++++++++++++++++++----------------- new_gpg.vcxproj | 2 +- options.cpp | 18 +++++++++--------- 4 files changed, 55 insertions(+), 39 deletions(-) diff --git a/main.cpp b/main.cpp index 601ebf1..7fdf27c 100644 --- a/main.cpp +++ b/main.cpp @@ -41,31 +41,32 @@ static BOOL CALLBACK DlgProcFirstRun(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM { SetWindowPos(hwndDlg, 0, firstrun_rect.left, firstrun_rect.top, 0, 0, SWP_NOSIZE|SWP_SHOWWINDOW); TranslateDialogDefault(hwndDlg); + SetWindowText(hwndDlg, TranslateW(_T("Set own key"))); col.pszText = _T("Key ID"); col.mask = LVCF_TEXT | LVCF_WIDTH; col.fmt = LVCFMT_LEFT; col.cx = 50; ListView_InsertColumn(hwndList, 0, &col); ZeroMemory(&col,sizeof(col)); - col.pszText = _T("Email"); + col.pszText = TranslateW(_T("Email")); col.mask = LVCF_TEXT | LVCF_WIDTH; col.fmt = LVCFMT_LEFT; col.cx = 30; ListView_InsertColumn(hwndList, 1, &col); ZeroMemory(&col,sizeof(col)); - col.pszText = _T("Name"); + col.pszText = TranslateW(_T("Name")); col.mask = LVCF_TEXT | LVCF_WIDTH; col.fmt = LVCFMT_LEFT; col.cx = 250; ListView_InsertColumn(hwndList, 2, &col); ZeroMemory(&col,sizeof(col)); - col.pszText = _T("Creation date"); + col.pszText = TranslateW(_T("Creation date")); col.mask = LVCF_TEXT | LVCF_WIDTH; col.fmt = LVCFMT_LEFT; col.cx = 30; ListView_InsertColumn(hwndList, 3, &col); ZeroMemory(&col,sizeof(col)); - col.pszText = _T("Key length"); + col.pszText = TranslateW(_T("Key length")); col.mask = LVCF_TEXT | LVCF_WIDTH; col.fmt = LVCFMT_LEFT; col.cx = 30; @@ -1071,6 +1072,7 @@ static BOOL CALLBACK DlgProcKeyGenDialog(HWND hwndDlg, UINT msg, WPARAM wParam, { SetWindowPos(hwndDlg, 0, key_gen_rect.left, key_gen_rect.top, 0, 0, SWP_NOSIZE|SWP_SHOWWINDOW); TranslateDialogDefault(hwndDlg); + SetWindowText(hwndDlg, TranslateW(_T("Key Generation dialog"))); ComboBoxAddStringUtf(GetDlgItem(hwndDlg, IDC_KEY_TYPE), _T("RSA"), 0); ComboBoxAddStringUtf(GetDlgItem(hwndDlg, IDC_KEY_TYPE), _T("DSA"), 1); SendDlgItemMessage(hwndDlg, IDC_KEY_TYPE, CB_SETCURSEL, (WPARAM)1, 0); @@ -1096,7 +1098,7 @@ static BOOL CALLBACK DlgProcKeyGenDialog(HWND hwndDlg, UINT msg, WPARAM wParam, if(_tcslen(tmp) < 3) { mir_free(tmp); - MessageBox(0, _T("You must set encryption algorythm first"), _T("Error"), MB_OK); + MessageBox(0, TranslateW(_T("You must set encryption algorythm first")), TranslateW(_T("Error")), MB_OK); break; } mir_free(tmp); @@ -1106,14 +1108,14 @@ static BOOL CALLBACK DlgProcKeyGenDialog(HWND hwndDlg, UINT msg, WPARAM wParam, mir_free(tmp); if(length < 1024 || length > 4096) { - MessageBox(0, _T("Key length must be of length from 1024 to 4096 bits"), _T("Error"), MB_OK); + MessageBox(0, TranslateW(_T("Key length must be of length from 1024 to 4096 bits")), TranslateW(_T("Error")), MB_OK); break; } tmp = new TCHAR [12]; GetDlgItemText(hwndDlg, IDC_KEY_EXPIRE_DATE, tmp, 12); if(_tcslen(tmp) != 10 && tmp[0] != '0') { - MessageBox(0, _T("Invalid date"), _T("Error"), MB_OK); + MessageBox(0, TranslateW(_T("Invalid date")), TranslateW(_T("Error")), MB_OK); delete [] tmp; break; } @@ -1122,13 +1124,13 @@ static BOOL CALLBACK DlgProcKeyGenDialog(HWND hwndDlg, UINT msg, WPARAM wParam, GetDlgItemText(hwndDlg, IDC_KEY_REAL_NAME, tmp, 128); if(_tcslen(tmp) < 5) { - MessageBox(0, _T("Name must contain at least 5 characters"), _T("Error"), MB_OK); + MessageBox(0, TranslateW(_T("Name must contain at least 5 characters")), TranslateW(_T("Error")), MB_OK); delete [] tmp; break; } else if (_tcschr(tmp, _T('(')) || _tcschr(tmp, _T(')'))) { - MessageBox(0, _T("Name cannot contain '(' or ')'"), _T("Error"), MB_OK); + MessageBox(0, TranslateW(_T("Name cannot contain '(' or ')'")), TranslateW(_T("Error")), MB_OK); delete [] tmp; break; } @@ -1137,7 +1139,7 @@ static BOOL CALLBACK DlgProcKeyGenDialog(HWND hwndDlg, UINT msg, WPARAM wParam, GetDlgItemText(hwndDlg, IDC_KEY_EMAIL, tmp, 128); if((_tcslen(tmp)) < 5 || (!_tcschr(tmp, _T('@'))) || (!_tcschr(tmp, _T('.')))) { - MessageBox(0, _T("Invalid Email"), _T("Error"), MB_OK); + MessageBox(0, TranslateW(_T("Invalid Email")), TranslateW(_T("Error")), MB_OK); delete [] tmp; break; } @@ -1153,7 +1155,7 @@ static BOOL CALLBACK DlgProcKeyGenDialog(HWND hwndDlg, UINT msg, WPARAM wParam, wfstream f(path.c_str(), std::ios::out); if(!f.is_open()) { - MessageBox(0, _T("Failed to open file"), _T("Error"), MB_OK); + MessageBox(0, TranslateW(_T("Failed to open file")), TranslateW(_T("Error")), MB_OK); break; } f<<"Key-Type: "; @@ -1251,7 +1253,6 @@ static BOOL CALLBACK DlgProcKeyGenDialog(HWND hwndDlg, UINT msg, WPARAM wParam, gpg_thread.~thread(); TerminateProcess(params.hProcess, 1); params.hProcess = NULL; - MessageBox(0, _T("GPG execution timed out, aborted"), _T(""), MB_OK); debuglog<0x0809 - shlwapi.lib;%(AdditionalDependencies) libboost_thread-vc100-mt-sgd-1_46_1.lib + shlwapi.lib;%(AdditionalDependencies) libboost_thread-vc100-mt-sgd-1_47.lib true e:\temp\windows\libs\Boost\lib-debug;%(AdditionalLibraryDirectories) true diff --git a/options.cpp b/options.cpp index c9b9de7..7eafe97 100644 --- a/options.cpp +++ b/options.cpp @@ -100,31 +100,31 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA case WM_INITDIALOG: { TranslateDialogDefault(hwndDlg); - col.pszText = _T("Contact"); + col.pszText = TranslateW(_T("Contact")); col.mask = LVCF_TEXT | LVCF_WIDTH; col.fmt = LVCFMT_LEFT; col.cx = 60; ListView_InsertColumn(hwndList, 0, &col); ZeroMemory(&col,sizeof(col)); - col.pszText = _T("Key ID"); + col.pszText = TranslateW(_T("Key ID")); col.mask = LVCF_TEXT | LVCF_WIDTH; col.fmt = LVCFMT_LEFT; col.cx = 50; ListView_InsertColumn(hwndList, 1, &col); ZeroMemory(&col,sizeof(col)); - col.pszText = _T("Name"); + col.pszText = TranslateW(_T("Name")); col.mask = LVCF_TEXT | LVCF_WIDTH; col.fmt = LVCFMT_LEFT; col.cx = 50; ListView_InsertColumn(hwndList, 2, &col); ZeroMemory(&col,sizeof(col)); - col.pszText = _T("Email"); + col.pszText = TranslateW(_T("Email")); col.mask = LVCF_TEXT | LVCF_WIDTH; col.fmt = LVCFMT_LEFT; col.cx = 50; ListView_InsertColumn(hwndList, 3, &col); ZeroMemory(&col,sizeof(col)); - col.pszText = _T("Protocol"); + col.pszText = TranslateW(_T("Protocol")); col.mask = LVCF_TEXT | LVCF_WIDTH; col.fmt = LVCFMT_LEFT; col.cx = 60; @@ -180,7 +180,7 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA EnableWindow(GetDlgItem(hwndDlg, IDC_JABBER_API), bIsMiranda09); EnableWindow(GetDlgItem(hwndDlg, IDC_AUTO_EXCHANGE), (bIsMiranda09 && bJabberAPI)); { - string keyinfo = "Current private key id: "; + string keyinfo = Translate("Current private key id: "); char *keyid = UniGetContactSettingUtf(NULL, szGPGModuleName, "KeyID", ""); keyinfo += (strlen(keyid) > 0)?keyid:"not set"; mir_free(keyid); @@ -651,7 +651,7 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP hcnt = metaGetMostOnline(hcnt); TranslateDialogDefault(hwndDlg); { - string msg = "Load Public GPG Key for "; + string msg = Translate("Load Public GPG Key for "); msg += (char*)CallService(MS_CLIST_GETCONTACTDISPLAYNAME, (WPARAM)hcnt, 0); SetWindowTextA(hwndDlg, msg.c_str()); } @@ -662,10 +662,10 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP EnableWindow(GetDlgItem(hwndDlg, IDC_ENABLE_ENCRYPTION), 0); } if(isContactSecured(hcnt)) - SetDlgItemText(hwndDlg, IDC_ENABLE_ENCRYPTION, _T("Turn off encryption")); + SetDlgItemText(hwndDlg, IDC_ENABLE_ENCRYPTION, TranslateW(_T("Turn off encryption"))); else { - SetDlgItemText(hwndDlg, IDC_ENABLE_ENCRYPTION, _T("Turn on encryption")); + SetDlgItemText(hwndDlg, IDC_ENABLE_ENCRYPTION, TranslateW(_T("Turn on encryption"))); CheckDlgButton(hwndDlg, IDC_ENABLE_ENCRYPTION, 1); } if(hcnt) -- cgit v1.2.3 From 9d5f37e462ccedfc97714731aae38330e113bb26 Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Sat, 9 Apr 2011 23:31:11 +0300 Subject: modified: messages.cpp --- messages.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/messages.cpp b/messages.cpp index f73223e..4b4a686 100644 --- a/messages.cpp +++ b/messages.cpp @@ -310,7 +310,7 @@ int RecvMsgSvc_func(HANDLE hContact, std::wstring str, char *msg, DWORD flags, D return 0; } char *tmp = mir_strdup(toUTF8(str).c_str()); - HistoryLog(hContact, db_event(msg, timestamp, 0, dbflags)); + HistoryLog(hContact, db_event(tmp, timestamp, 0, dbflags)); mir_free(tmp); return 0; } -- cgit v1.2.3 From b7d52ace3133fc96ec7680e11cfcae449057bca7 Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Sun, 10 Apr 2011 04:30:56 +0300 Subject: contorls resize --- new_gpg.rc | 64 +++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 34 insertions(+), 30 deletions(-) diff --git a/new_gpg.rc b/new_gpg.rc index 51c2747..0d8f569 100644 --- a/new_gpg.rc +++ b/new_gpg.rc @@ -58,9 +58,9 @@ BEGIN DEFPUSHBUTTON "ОК",ID_OK,7,169,50,14 PUSHBUTTON "Load from file",ID_LOAD_FROM_FILE,273,169,58,14 EDITTEXT IDC_PUBLIC_KEY_EDIT,7,7,324,134,ES_MULTILINE | WS_VSCROLL,WS_EX_STATICEDGE - PUSHBUTTON "Select existing",IDC_SELECT_EXISTING,136,169,68,14 + PUSHBUTTON "Select existing",IDC_SELECT_EXISTING,113,169,97,14 CONTROL "Turn on encryption",IDC_ENABLE_ENCRYPTION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,143,196,10 - PUSHBUTTON "Import key from keyserver",IDC_IMPORT,205,152,123,14,WS_DISABLED + PUSHBUTTON "Import key from keyserver",IDC_IMPORT,140,152,188,14,WS_DISABLED END IDD_FIRST_RUN DIALOGEX 0, 0, 291, 205 @@ -87,12 +87,12 @@ BEGIN DEFPUSHBUTTON "ОК",ID_OK,7,87,50,14 LTEXT "Home directory:",IDC_STATIC,9,34,325,8 LTEXT "GnuPG binary:",IDC_STATIC,10,7,147,8 - PUSHBUTTON "Browse",IDC_SET_BIN_PATH,293,18,38,14 - PUSHBUTTON "Browse",IDC_SET_HOME_DIR,293,44,38,14 + PUSHBUTTON "Browse",IDC_SET_BIN_PATH,293,18,54,14 + PUSHBUTTON "Browse",IDC_SET_HOME_DIR,293,44,54,14 EDITTEXT IDC_HOME_DIR,7,44,277,14,ES_AUTOHSCROLL EDITTEXT IDC_BIN_PATH,7,17,277,14,ES_AUTOHSCROLL PUSHBUTTON "Generate and use random key",IDC_GENERATE_RANDOM,7,66,118,14 - CONTROL "Turn on key autoexchange",IDC_AUTO_EXCHANGE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,133,68,113,10 + CONTROL "Turn on key autoexchange",IDC_AUTO_EXCHANGE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,133,68,191,10 END IDD_NEW_KEY DIALOGEX 0, 0, 427, 68 @@ -107,31 +107,31 @@ BEGIN CTEXT "Статический",IDC_KEY_FROM,16,12,395,8 END -IDD_KEY_GEN DIALOGEX 0, 0, 209, 166 +IDD_KEY_GEN DIALOGEX 0, 0, 284, 169 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Key Generation dialog" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN - DEFPUSHBUTTON "OK",IDOK,7,145,50,14 - PUSHBUTTON "Cancel",IDCANCEL,152,145,50,14 - COMBOBOX IDC_KEY_TYPE,65,14,48,30,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP - LTEXT "Key type:",IDC_STATIC,8,16,32,8 - LTEXT "Key length:",IDC_STATIC,7,32,38,8 - LTEXT "Key password:",IDC_STATIC,7,49,53,8 - EDITTEXT IDC_KEY_PASSWD,65,46,55,14,ES_AUTOHSCROLL | WS_GROUP - LTEXT "Real name:",IDC_STATIC,7,63,54,8 - LTEXT "Email:",IDC_STATIC,7,79,47,8 - LTEXT "Comment:",IDC_STATIC,7,92,53,8 - LTEXT "Expire date:",IDC_STATIC,7,109,40,8 - EDITTEXT IDC_KEY_EMAIL,65,76,55,14,ES_AUTOHSCROLL | WS_GROUP - EDITTEXT IDC_KEY_REAL_NAME,65,61,55,14,ES_AUTOHSCROLL | WS_GROUP - EDITTEXT IDC_KEY_COMMENT,65,91,55,14,ES_AUTOHSCROLL | WS_GROUP - EDITTEXT IDC_KEY_EXPIRE_DATE,65,106,55,14,ES_AUTOHSCROLL | ES_NUMBER | WS_GROUP - LTEXT "ex.: 2010-08-15",IDC_STATIC,127,108,75,8 - EDITTEXT IDC_KEY_LENGTH,65,30,40,14,ES_AUTOHSCROLL | ES_NUMBER | WS_GROUP - LTEXT "From 1024 to 4096",IDC_STATIC,113,33,89,8 - LTEXT "It can take a long time, be patient",IDC_STATIC,15,132,164,8 - LTEXT "0 - does not expire",IDC_STATIC,67,122,62,8 + DEFPUSHBUTTON "OK",IDOK,7,148,50,14 + PUSHBUTTON "Cancel",IDCANCEL,227,148,50,14 + COMBOBOX IDC_KEY_TYPE,120,14,48,30,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP + LTEXT "Key type:",IDC_STATIC,8,16,96,8 + LTEXT "Key length:",IDC_STATIC,7,32,106,8 + LTEXT "Key password:",IDC_STATIC,7,49,105,8 + EDITTEXT IDC_KEY_PASSWD,120,46,55,14,ES_AUTOHSCROLL | WS_GROUP + LTEXT "Real name:",IDC_STATIC,7,63,105,8 + LTEXT "Email:",IDC_STATIC,7,79,108,8 + LTEXT "Comment:",IDC_STATIC,7,92,107,8 + LTEXT "Expire date:",IDC_STATIC,7,109,111,8 + EDITTEXT IDC_KEY_EMAIL,120,76,55,14,ES_AUTOHSCROLL | WS_GROUP + EDITTEXT IDC_KEY_REAL_NAME,120,61,55,14,ES_AUTOHSCROLL | WS_GROUP + EDITTEXT IDC_KEY_COMMENT,120,91,55,14,ES_AUTOHSCROLL | WS_GROUP + EDITTEXT IDC_KEY_EXPIRE_DATE,120,106,55,14,ES_AUTOHSCROLL | ES_NUMBER | WS_GROUP + LTEXT "ex.: 2010-08-15",IDC_STATIC,182,108,75,8 + EDITTEXT IDC_KEY_LENGTH,120,30,40,14,ES_AUTOHSCROLL | ES_NUMBER | WS_GROUP + LTEXT "From 1024 to 4096",IDC_STATIC,168,33,89,8 + LTEXT "It can take a long time, be patient",IDC_STATIC,15,132,246,8 + LTEXT "0 - does not expire",IDC_STATIC,122,122,141,8 END IDD_LOAD_EXISTING_KEY DIALOGEX 0, 0, 370, 257 @@ -213,9 +213,9 @@ BEGIN IDD_KEY_GEN, DIALOG BEGIN LEFTMARGIN, 7 - RIGHTMARGIN, 202 + RIGHTMARGIN, 277 TOPMARGIN, 7 - BOTTOMMARGIN, 159 + BOTTOMMARGIN, 162 END IDD_LOAD_EXISTING_KEY, DIALOG @@ -331,8 +331,8 @@ IDD_OPT_GPG_BIN DIALOGEX 0, 0, 282, 214 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD FONT 8, "MS Shell Dlg", 400, 0, 0x0 BEGIN - PUSHBUTTON "Browse",IDC_SET_BIN_PATH,216,17,38,14 - PUSHBUTTON "Browse",IDC_SET_HOME_DIR,217,44,38,14 + PUSHBUTTON "Browse",IDC_SET_BIN_PATH,216,17,60,14 + PUSHBUTTON "Browse",IDC_SET_HOME_DIR,217,44,57,14 EDITTEXT IDC_BIN_PATH,7,17,195,14,ES_AUTOHSCROLL EDITTEXT IDC_HOME_DIR,7,44,195,14,ES_AUTOHSCROLL LTEXT "GnuPG binary:",IDC_STATIC,10,7,147,8 @@ -369,6 +369,10 @@ BEGIN IDD_OPT_GPG, DIALOG BEGIN END + + IDD_OPT_GPG_BIN, DIALOG + BEGIN + END END #endif // APSTUDIO_INVOKED -- cgit v1.2.3 From 3d4fe3639635d0496906fb56b8014b14b0fd1ec7 Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Wed, 13 Apr 2011 16:42:37 +0300 Subject: another metacontacts problem fixed --- srmm.cpp | 9 +++++++-- utilities.cpp | 28 ++++++++++++++-------------- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/srmm.cpp b/srmm.cpp index de86611..af21f8f 100644 --- a/srmm.cpp +++ b/srmm.cpp @@ -34,11 +34,13 @@ int __cdecl onWindowEvent(WPARAM wParam, LPARAM lParam) { int __cdecl onIconPressed(WPARAM wParam, LPARAM lParam) { HANDLE hContact = (HANDLE)wParam; + HANDLE hMeta = hContact; if(metaIsProtoMetaContacts(hContact)) hContact = metaGetMostOnline(hContact); // возьмем тот, через который пойдет сообщение - + else if(metaIsSubcontact(hContact)) + hMeta = metaGetContact(hContact); StatusIconClickData *sicd = (StatusIconClickData *)lParam; - if(strcmp(sicd->szModule, szGPGModuleName) != 0) + if(strcmp(sicd->szModule, szGPGModuleName)) return 0; // not our event void setSrmmIcon(HANDLE); @@ -48,6 +50,7 @@ int __cdecl onIconPressed(WPARAM wParam, LPARAM lParam) { if(enc) { DBWriteContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", 0); + DBWriteContactSettingByte(hMeta, szGPGModuleName, "GPGEncryption", 0); setSrmmIcon(hContact); setClistIcon(hContact); } @@ -65,6 +68,7 @@ int __cdecl onIconPressed(WPARAM wParam, LPARAM lParam) { else { DBWriteContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", 1); + DBWriteContactSettingByte(hMeta, szGPGModuleName, "GPGEncryption", 1); setSrmmIcon(hContact); setClistIcon(hContact); return 0; @@ -72,6 +76,7 @@ int __cdecl onIconPressed(WPARAM wParam, LPARAM lParam) { if(isContactHaveKey(hContact)) { DBWriteContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", 1); + DBWriteContactSettingByte(hMeta, szGPGModuleName, "GPGEncryption", 1); setSrmmIcon(hContact); setClistIcon(hContact); } diff --git a/utilities.cpp b/utilities.cpp index 91ea9fb..dbf8786 100644 --- a/utilities.cpp +++ b/utilities.cpp @@ -218,25 +218,23 @@ int ToggleEncryption(WPARAM w, LPARAM l) enc = DBGetContactSettingByte(metaGetMostOnline(hContact), szGPGModuleName, "GPGEncryption", 0); else enc = DBGetContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", 0); + if(metaIsProtoMetaContacts(hContact)) { - if(metaIsProtoMetaContacts(hContact)) + HANDLE hcnt = NULL; + if(MessageBox(0, _T("Do you want to toggle encryption for all subcontacts ?"), _T("Metacontact detected"), MB_YESNO) == IDYES) { - 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++) { - int count = metaGetContactsNum(hContact); - for(int i = 0; i < count; i++) - { - hcnt = metaGetSubcontact(hContact, i); - if(hcnt) - DBWriteContactSettingByte(hcnt, szGPGModuleName, "GPGEncryption", enc?0:1); - } - DBWriteContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", enc?0:1); + hcnt = metaGetSubcontact(hContact, i); + if(hcnt) + DBWriteContactSettingByte(hcnt, szGPGModuleName, "GPGEncryption", enc?0:1); } + DBWriteContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", enc?0:1); } - else - DBWriteContactSettingByte(metaGetMostOnline(hContact), szGPGModuleName, "GPGEncryption", enc?0:1); } + else + DBWriteContactSettingByte(metaGetMostOnline(hContact), szGPGModuleName, "GPGEncryption", enc?0:1); void setSrmmIcon(HANDLE hContact); void setClistIcon(HANDLE hContact); setSrmmIcon(hContact); @@ -984,7 +982,7 @@ bool isContactSecured(HANDLE hContact) BYTE gpg_enc = DBGetContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", 0); if(!gpg_enc) { - debuglog<