summaryrefslogtreecommitdiff
path: root/options.cpp
diff options
context:
space:
mode:
authorGluzskiy Alexandr <sss123next@list.ru>2010-08-14 03:50:31 +0300
committerGluzskiy Alexandr <sss123next@list.ru>2010-08-14 03:50:31 +0300
commitea8554407ed4038aca0eb7835f9d813bdf37c1a9 (patch)
treed481e9ead5e437de80d7eb2454bc5f0ae40b60bb /options.cpp
parenta5ef2e4a080e26fbb91381edf59da9fc9456f9cb (diff)
fixes .... mainly
Diffstat (limited to 'options.cpp')
-rw-r--r--options.cpp119
1 files changed, 118 insertions, 1 deletions
diff --git a/options.cpp b/options.cpp
index 3c0c201..ced2f64 100644
--- a/options.cpp
+++ b/options.cpp
@@ -21,6 +21,22 @@ extern HINSTANCE hInst;
static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
static BOOL CALLBACK DlgProcGpgBinOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
+static BOOL CALLBACK DlgProcGpgMsgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
+
+static BOOL CheckStateLoadDB(HWND hwndDlg, int idCtrl, const char* szSetting, BYTE bDef)
+{
+ BOOL state = DBGetContactSettingByte(NULL, szModuleName, szSetting, bDef);
+ CheckDlgButton(hwndDlg, idCtrl, state);
+ return state;
+}
+
+static BOOL CheckStateStoreDB(HWND hwndDlg, int idCtrl, const char* szSetting)
+{
+ BOOL state = IsDlgButtonChecked(hwndDlg, idCtrl);
+ DBWriteContactSettingByte(NULL, szModuleName, szSetting, (BYTE)state);
+ return state;
+}
+
int GpgOptInit(WPARAM wParam,LPARAM lParam)
{
@@ -47,6 +63,18 @@ int GpgOptInit(WPARAM wParam,LPARAM lParam)
odp.pfnDlgProc = DlgProcGpgBinOpts;
CallService(MS_OPT_ADDPAGE,wParam,(LPARAM)&odp);
+ ZeroMemory(&odp, sizeof(odp));
+
+ odp.cbSize = sizeof(odp);
+ odp.hInstance = hInst;
+ odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_GPG_MESSAGES);
+ odp.pszTitle = szModuleName;
+ odp.pszGroup = "Services";
+ odp.pszTab = "Messages";
+ odp.flags=ODPF_BOLDGROUPS;
+ odp.pfnDlgProc = DlgProcGpgMsgOpts;
+ CallService(MS_OPT_ADDPAGE,wParam,(LPARAM)&odp);
+
return 0;
}
@@ -173,7 +201,10 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA
mir_free(tmp);
break;
}
- MessageBoxA(0, "Key removed from GPG keyring", "info", MB_OK);
+ if(output.find("--delete-secret-keys") != string::npos)
+ MessageBoxA(0, "we have secret key for this public key, do not removing from GPG keyring", "info", MB_OK);
+ else
+ MessageBoxA(0, "Key removed from GPG keyring", "info", MB_OK);
}
mir_free(tmp);
}
@@ -186,6 +217,10 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA
ListView_SetItemText(hwndList, item_num, 2, _T("not set"));
ListView_SetItemText(hwndList, item_num, 1, _T("not set"));
break;
+ case IDC_SELECT_KEY:
+ void ShowFirstRunDialog();
+ ShowFirstRunDialog();
+ break;
default:
break;
case IDC_SAVE_KEY_BUTTON:
@@ -311,6 +346,87 @@ static BOOL CALLBACK DlgProcGpgBinOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LP
return FALSE;
}
+static BOOL CALLBACK DlgProcGpgMsgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ switch (msg)
+ {
+ case WM_INITDIALOG:
+ {
+ TranslateDialogDefault(hwndDlg);
+ CheckStateLoadDB(hwndDlg, IDC_APPEND_TAGS, "bAppendTags", 0);
+ {
+ TCHAR *tmp = UniGetContactSettingUtf(NULL, szModuleName, "szInOpenTag", _T("<GPGdec>"));
+ SetDlgItemText(hwndDlg, IDC_IN_OPEN_TAG, tmp);
+ mir_free(tmp);
+ tmp = UniGetContactSettingUtf(NULL, szModuleName, "szInCloseTag", _T("</GnuPGdec>"));
+ SetDlgItemText(hwndDlg, IDC_IN_CLOSE_TAG, tmp);
+ mir_free(tmp);
+ tmp = UniGetContactSettingUtf(NULL, szModuleName, "szOutOpenTag", _T("<GPGenc>"));
+ SetDlgItemText(hwndDlg, IDC_OUT_OPEN_TAG, tmp);
+ mir_free(tmp);
+ tmp = UniGetContactSettingUtf(NULL, szModuleName, "szOutCloseTag", _T("</GnuPgenc>"));
+ SetDlgItemText(hwndDlg, IDC_OUT_CLOSE_TAG, tmp);
+ mir_free(tmp);
+ }
+ return TRUE;
+ }
+
+
+ case WM_COMMAND:
+ {
+ switch (LOWORD(wParam))
+ {
+ case IDC_APPEND_TAGS:
+ break;
+ default:
+ break;
+ }
+
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ break;
+ }
+
+ case WM_NOTIFY:
+ {
+ switch (((LPNMHDR)lParam)->code)
+ {
+
+ case PSN_APPLY:
+ {
+ bAppendTags = CheckStateStoreDB(hwndDlg, IDC_APPEND_TAGS, "bAppendTags");
+ {
+ TCHAR tmp[128];
+ GetDlgItemText(hwndDlg, IDC_IN_OPEN_TAG, tmp, 128);
+ DBWriteContactSettingTString(NULL, szModuleName, "szInOpenTag", tmp);
+ mir_free(inopentag);
+ inopentag = new TCHAR [_tcslen(tmp)+1];
+ _tcscpy(inopentag, tmp);
+ GetDlgItemText(hwndDlg, IDC_IN_CLOSE_TAG, tmp, 128);
+ DBWriteContactSettingTString(NULL, szModuleName, "szInCloseTag", tmp);
+ mir_free(inclosetag);
+ inclosetag = new TCHAR [_tcslen(tmp)+1];
+ _tcscpy(inclosetag, tmp);
+ GetDlgItemText(hwndDlg, IDC_OUT_OPEN_TAG, tmp, 128);
+ DBWriteContactSettingTString(NULL, szModuleName, "szOutOpenTag", tmp);
+ mir_free(outopentag);
+ outopentag = new TCHAR [_tcslen(tmp)+1];
+ _tcscpy(outopentag, tmp);
+ GetDlgItemText(hwndDlg, IDC_OUT_CLOSE_TAG, tmp, 128);
+ DBWriteContactSettingTString(NULL, szModuleName, "szOutCloseTag", tmp);
+ mir_free(outclosetag);
+ outclosetag = new TCHAR [_tcslen(tmp)+1];
+ _tcscpy(outclosetag, tmp);
+ }
+ return TRUE;
+ }
+ }
+ }
+ break;
+ }
+ return FALSE;
+}
+
+
static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM lParam)
{
HANDLE hContact = user_data[item_num+1];
@@ -379,6 +495,7 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP
}
f<<str.c_str();
f.close();
+ cmd += _T(" --trust-model always ");
cmd += _T(" --import \"");
cmd += tmp2;
cmd += _T("\"");