From 41539458d2d114cb714b72315c482e33340a9ee3 Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Wed, 11 Aug 2010 05:22:07 +0300 Subject: modified: init.cpp modified: main.cpp modified: messages.cpp modified: new_gpg.rc modified: options.cpp modified: resource.h modified: utilities.cpp --- options.cpp | 66 ++++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 39 insertions(+), 27 deletions(-) (limited to 'options.cpp') diff --git a/options.cpp b/options.cpp index e1ce214..2afed94 100644 --- a/options.cpp +++ b/options.cpp @@ -62,9 +62,10 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA { HWND hwndList=GetDlgItem(hwndDlg, IDC_USERLIST); hwndList_p = hwndList; - LVCOLUMN col; - LVITEM item; - TCHAR *tmp; + LVCOLUMN col = {0}; + LVITEM item = {0}; + TCHAR *tmp = NULL; + char *tmp2 = NULL; NMLISTVIEW * hdr = (NMLISTVIEW *) lParam; switch (msg) { @@ -77,7 +78,7 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA col.cx = 100; ListView_InsertColumn(hwndList, 0, &col); ZeroMemory(&col,sizeof(col)); - col.pszText = _T("Protocol"); + col.pszText = _T("Fingerprint"); col.mask = LVCF_TEXT | LVCF_WIDTH; col.fmt = LVCFMT_LEFT; col.cx = 30; @@ -88,6 +89,12 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA col.fmt = LVCFMT_LEFT; col.cx = 250; ListView_InsertColumn(hwndList, 2, &col); + ZeroMemory(&col,sizeof(col)); + col.pszText = _T("Protocol"); + col.mask = LVCF_TEXT | LVCF_WIDTH; + col.fmt = LVCFMT_LEFT; + col.cx = 30; + ListView_InsertColumn(hwndList, 3, &col); ListView_SetExtendedListViewStyleEx(hwndList, 0, LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT); int i = 1, iRow = 0; for(HANDLE hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDFIRST, 0, 0); hContact != NULL; hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM)hContact, 0)) @@ -100,10 +107,15 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA iRow = ListView_InsertItem(hwndList, &item); ListView_SetItemText(hwndList, iRow, 0, name); TCHAR *tmp = mir_a2t((char*)CallService(MS_PROTO_GETCONTACTBASEPROTO, (WPARAM)hContact, 0)); - ListView_SetItemText(hwndList, iRow, 1, tmp); + ListView_SetItemText(hwndList, iRow, 3, tmp); mir_free(tmp); tmp = UniGetContactSettingUtf(hContact, szModuleName, "GPGPubKey", _T("not set")); ListView_SetItemText(hwndList, iRow, 2, (_tcslen(tmp) > 1)?tmp:_T("not set")); + mir_free(tmp); + tmp2 = GetContactSettingStringA(hContact, szModuleName, "KeyFingerprint", ""); + tmp = mir_a2t(tmp2); + mir_free(tmp2); + ListView_SetItemText(hwndList, iRow, 1, (_tcslen(tmp) > 1)?tmp:_T("not set")); if(DBGetContactSettingByte(hContact, szModuleName, "GPGEncryption", 0)) ListView_SetItemState(hwndList, iRow, 0x2000, 0xF000); user_data[i] = hContact; @@ -113,6 +125,7 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA ListView_SetColumnWidth(hwndList, 0, LVSCW_AUTOSIZE);// not sure about this ListView_SetColumnWidth(hwndList, 1, LVSCW_AUTOSIZE); ListView_SetColumnWidth(hwndList, 2, LVSCW_AUTOSIZE); + ListView_SetColumnWidth(hwndList, 3, LVSCW_AUTOSIZE); return TRUE; } @@ -125,13 +138,6 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA ShowLoadPublicKeyDialog(); return TRUE; case IDC_DELETE_KEY_BUTTON: - DBDeleteContactSetting(user_data[item_num+1], szModuleName, "GPGPubKey"); - DBDeleteContactSetting(user_data[item_num+1], szModuleName, "KeyFingerprint"); - DBDeleteContactSetting(user_data[item_num+1], szModuleName, "KeyMainName"); - DBDeleteContactSetting(user_data[item_num+1], szModuleName, "KeyType"); - DBDeleteContactSetting(user_data[item_num+1], szModuleName, "KeyMainEmail"); - DBDeleteContactSetting(user_data[item_num+1], szModuleName, "KeyComment"); - ListView_SetItemText(hwndList, item_num, 2, _T("not set")); { //gpg execute block TCHAR cmd[40960] = {0}; TCHAR tmp2[MAX_PATH] = {0}; @@ -153,22 +159,29 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA mir_free(tmp2); } } - if(keep) + if(!keep) { - mir_free(tmp); - break; + string output; + DWORD exitcode; + _tcscat(cmd, _T(" --batch")); + _tcscat(cmd, _T(" --yes")); + _tcscat(cmd, _T(" --delete-key ")); + ptmp = mir_a2t(tmp); + _tcscat(cmd, ptmp); + mir_free(ptmp); + pxExecute(cmd, "", &output,&exitcode); + MessageBoxA(0, "Key removed from GPG keyring", "info", MB_OK); } - string output; - DWORD exitcode; - _tcscat(cmd, _T(" --batch")); - _tcscat(cmd, _T(" --yes")); - _tcscat(cmd, _T(" --delete-key ")); - ptmp = mir_a2t(tmp); - _tcscat(cmd, ptmp); - mir_free(ptmp); - pxResult pxresult=pxExecute(cmd,"",&output,&exitcode); mir_free(tmp); } + DBDeleteContactSetting(user_data[item_num+1], szModuleName, "KeyFingerprint"); + DBDeleteContactSetting(user_data[item_num+1], szModuleName, "GPGPubKey"); + DBDeleteContactSetting(user_data[item_num+1], szModuleName, "KeyMainName"); + DBDeleteContactSetting(user_data[item_num+1], szModuleName, "KeyType"); + DBDeleteContactSetting(user_data[item_num+1], szModuleName, "KeyMainEmail"); + DBDeleteContactSetting(user_data[item_num+1], szModuleName, "KeyComment"); + ListView_SetItemText(hwndList, item_num, 2, _T("not set")); + ListView_SetItemText(hwndList, item_num, 1, _T("not set")); break; default: break; @@ -338,7 +351,7 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP _tcscpy(tmp, key_buf.substr(ws1,ws2-ws1).c_str()); ListView_SetItemText(hwndList_p, item_num, 2, tmp); { //gpg execute block - TCHAR cmd[40960] = {0}; + TCHAR cmd[4096] = {0}; TCHAR tmp2[MAX_PATH] = {0}; TCHAR *ptmp; string output; @@ -365,7 +378,7 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP _tcscat(cmd, tmp2); _tcscat(cmd, _T("\"")); } - pxResult pxresult=pxExecute(cmd,"",&output,&exitcode); + pxExecute(cmd, "", &output, &exitcode); cp866_to_cp1251(&output); { string::size_type s = output.find("gpg: key ") + strlen("gpg: key "); @@ -431,7 +444,6 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP key_buf.clear(); break; } - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); break; } -- cgit v1.2.3