diff options
author | Gluzskiy Alexandr <sss123next@list.ru> | 2010-08-11 05:22:07 +0300 |
---|---|---|
committer | Gluzskiy Alexandr <sss123next@list.ru> | 2010-08-11 05:22:07 +0300 |
commit | 41539458d2d114cb714b72315c482e33340a9ee3 (patch) | |
tree | 0dffe24b1af5cdd47b00ba8e5bb79cc5853f2c02 /options.cpp | |
parent | ff34af8edad99fae99b59def8a3d5cce92085a9c (diff) |
modified: init.cpp
modified: main.cpp
modified: messages.cpp
modified: new_gpg.rc
modified: options.cpp
modified: resource.h
modified: utilities.cpp
Diffstat (limited to 'options.cpp')
-rw-r--r-- | options.cpp | 66 |
1 files changed, 39 insertions, 27 deletions
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;
}
|