diff options
-rw-r--r-- | gpg_wrapper.cpp | 5 | ||||
-rw-r--r-- | log.cpp | 8 | ||||
-rw-r--r-- | log.h | 1 | ||||
-rw-r--r-- | main.cpp | 46 | ||||
-rw-r--r-- | new_gpg.rc | 35 | ||||
-rw-r--r-- | options.cpp | 7 | ||||
-rw-r--r-- | resource.h | 5 |
7 files changed, 98 insertions, 9 deletions
diff --git a/gpg_wrapper.cpp b/gpg_wrapper.cpp index dd8a65d..226fd5e 100644 --- a/gpg_wrapper.cpp +++ b/gpg_wrapper.cpp @@ -66,6 +66,11 @@ pxResult pxExecute(wstring *acommandline, char *ainput, string *aoutput, LPDWORD sinfo.hStdError=newstdout; sinfo.hStdInput=newstdin; + char *mir_path = new char [MAX_PATH]; + CallService(MS_UTILS_PATHTOABSOLUTE, (WPARAM)"\\", (LPARAM)mir_path); + SetCurrentDirectoryA(mir_path); + delete [] mir_path; + TCHAR *bin_path = UniGetContactSettingUtf(NULL, szGPGModuleName, "szGpgBinPath", _T("")); { if(_waccess(bin_path, 0) == -1) @@ -72,7 +72,15 @@ void logtofile::init() { extern bool bDebugLog; if(bDebugLog) + { + if(path) + mir_free(path); path = UniGetContactSettingUtf(NULL, szGPGModuleName, "szLogFilePath", _T("C:\\GPGdebug.log")); + } +} +logtofile::logtofile() +{ + path = NULL; } logtofile::~logtofile() { @@ -25,6 +25,7 @@ public: logtofile& operator<<(wstring buf); void init(); ~logtofile(); + logtofile(); private: fstream log; TCHAR *path; @@ -1086,6 +1086,48 @@ static BOOL CALLBACK DlgProcLoadExistingKey(HWND hwndDlg,UINT msg,WPARAM wParam, return FALSE; } +static BOOL CALLBACK DlgProcImportKeyDialog(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) +{ + switch (msg) + { + case WM_INITDIALOG: + { + TranslateDialogDefault(hwndDlg); + return TRUE; + } + + + case WM_COMMAND: + { + switch (LOWORD(wParam)) + { + case IDC_IMPORT: + break; + default: + break; + } + + break; + } + + case WM_NOTIFY: + { + switch (((LPNMHDR)lParam)->code) + { + default: + break; + } + } + break; + case WM_CLOSE: + DestroyWindow(hwndDlg); + break; + case WM_DESTROY: + break; + + } + return FALSE; +} extern HINSTANCE hInst; @@ -1134,6 +1176,10 @@ void ShowSelectExistingKeyDialog() SetForegroundWindow(hwndSelectExistingKey); } +void ShowImportKeyDialog() +{ + CreateDialog(hInst, MAKEINTRESOURCE(IDD_IMPORT_KEY), NULL, DlgProcImportKeyDialog); +} @@ -52,16 +52,17 @@ END // Dialog
//
-IDD_LOAD_PUBLIC_KEY DIALOGEX 0, 0, 338, 174
+IDD_LOAD_PUBLIC_KEY DIALOGEX 0, 0, 338, 190
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Load Public GPG key"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
- DEFPUSHBUTTON "خت",ID_OK,7,153,50,14
- PUSHBUTTON "Load from file",ID_LOAD_FROM_FILE,277,153,54,14
+ DEFPUSHBUTTON "خت",ID_OK,7,169,50,14
+ PUSHBUTTON "Load from file",ID_LOAD_FROM_FILE,277,169,54,14
EDITTEXT IDC_PUBLIC_KEY_EDIT,7,7,324,134,ES_MULTILINE | WS_VSCROLL,WS_EX_STATICEDGE
- PUSHBUTTON "Select existing",IDC_SELECT_EXISTING,146,153,50,14
+ PUSHBUTTON "Select existing",IDC_SELECT_EXISTING,146,169,50,14
CONTROL "Turn on encryption",IDC_ENABLE_ENCRYPTION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,143,196,10
+ PUSHBUTTON "Import key from keyserver",IDC_IMPORT,231,152,97,14,WS_DISABLED
END
IDD_FIRST_RUN DIALOGEX 0, 0, 291, 196
@@ -85,12 +86,12 @@ CAPTION "Set GPG bin path and keyring home dir." FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "خت",ID_OK,7,68,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
- EDITTEXT IDC_BIN_PATH,7,17,277,14,ES_AUTOHSCROLL
EDITTEXT IDC_HOME_DIR,7,44,277,14,ES_AUTOHSCROLL
- LTEXT "GnuPG2 binary:",IDC_STATIC,10,7,147,8
- LTEXT "Home directory:",IDC_STATIC,9,34,325,8
+ EDITTEXT IDC_BIN_PATH,7,17,277,14,ES_AUTOHSCROLL
END
IDD_NEW_KEY DIALOGEX 0, 0, 427, 68
@@ -156,6 +157,16 @@ BEGIN CONTROL "Default password",IDC_DEFAULT_PASSWORD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,67,151,10
END
+IDD_IMPORT_KEY DIALOGEX 0, 0, 161, 81
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Set GPG bin path and keyring home dir."
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ PUSHBUTTON "Import",IDC_IMPORT,15,56,50,14
+ LTEXT "Select keyserver for key search:",IDC_STATIC,16,20,122,8
+ COMBOBOX IDC_LEYSERVER,15,34,125,30,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
+END
+
/////////////////////////////////////////////////////////////////////////////
//
@@ -170,7 +181,7 @@ BEGIN LEFTMARGIN, 7
RIGHTMARGIN, 331
TOPMARGIN, 7
- BOTTOMMARGIN, 167
+ BOTTOMMARGIN, 183
END
IDD_FIRST_RUN, DIALOG
@@ -221,6 +232,14 @@ BEGIN TOPMARGIN, 7
BOTTOMMARGIN, 101
END
+
+ IDD_IMPORT_KEY, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 154
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 74
+ END
END
#endif // APSTUDIO_INVOKED
diff --git a/options.cpp b/options.cpp index ee84efe..b361113 100644 --- a/options.cpp +++ b/options.cpp @@ -386,6 +386,8 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA { extern bool bDebugLog, bJabberAPI; bDebugLog = CheckStateStoreDB(hwndDlg, IDC_DEBUG_LOG, "bDebugLog"); + if(bDebugLog) + debuglog.init(); bJabberAPI = CheckStateStoreDB(hwndDlg, IDC_JABBER_API, "bJabberAPI"); { TCHAR tmp[512]; @@ -683,6 +685,7 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP msg += tmp; msg += " found in prescense.)"; SetWindowTextA(hwndDlg, msg.c_str()); + EnableWindow(GetDlgItem(hwndDlg, IDC_IMPORT), 1); } } mir_free(tmp2); @@ -1157,6 +1160,10 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP key_buf.clear(); } break; + case IDC_IMPORT: + void ShowImportKeyDialog(); + ShowImportKeyDialog(); + break; case IDC_SELECT_EXISTING: void ShowSelectExistingKeyDialog(); ShowSelectExistingKeyDialog(); @@ -13,6 +13,7 @@ #define IDD_LOAD_EXISTING_KEY 110
#define IDD_KEY_PASSWD 111
#define IDI_SECURED 112
+#define IDD_IMPORT_KEY 112
#define IDI_UNSECURED 113
#define IDC_SET_BIN_PATH 1016
#define IDC_SET_HOME_DIR 1017
@@ -55,6 +56,7 @@ #define IDC_BUTTON2 1046
#define IDC_OTHER 1046
#define IDC_LOG_FILE_SET 1046
+#define IDC_IMPORT 1046
#define IDC_SAVE_PASSWORD 1047
#define IDC_DEBUG_LOG 1048
#define IDC_JABBER_API 1049
@@ -64,6 +66,7 @@ #define IDC_KEYID 1053
#define IDC_CURRENT_KEY 1054
#define IDC_DEFAULT_PASSWORD 1055
+#define IDC_LEYSERVER 1058
// Next default values for new objects
//
@@ -71,7 +74,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 114
#define _APS_NEXT_COMMAND_VALUE 40001
-#define _APS_NEXT_CONTROL_VALUE 1056
+#define _APS_NEXT_CONTROL_VALUE 1061
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
|