From f8e420612fcc94a7a3f2455f357d7d57ff31c62d Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Thu, 16 Sep 2010 09:25:18 +0300 Subject: modified: gpg_wrapper.cpp modified: log.cpp modified: log.h modified: main.cpp modified: new_gpg.rc modified: options.cpp modified: resource.h --- gpg_wrapper.cpp | 5 +++++ log.cpp | 8 ++++++++ log.h | 1 + main.cpp | 46 ++++++++++++++++++++++++++++++++++++++++++++++ new_gpg.rc | 35 +++++++++++++++++++++++++++-------- options.cpp | 7 +++++++ 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) diff --git a/log.cpp b/log.cpp index f842f22..187ce85 100644 --- a/log.cpp +++ b/log.cpp @@ -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() { diff --git a/log.h b/log.h index 202d706..ded4b84 100644 --- a/log.h +++ b/log.h @@ -25,6 +25,7 @@ public: logtofile& operator<<(wstring buf); void init(); ~logtofile(); + logtofile(); private: fstream log; TCHAR *path; diff --git a/main.cpp b/main.cpp index bc42087..6cc6d13 100644 --- a/main.cpp +++ b/main.cpp @@ -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); +} diff --git a/new_gpg.rc b/new_gpg.rc index 4ba62c2..5683857 100644 --- a/new_gpg.rc +++ b/new_gpg.rc @@ -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(); diff --git a/resource.h b/resource.h index ce35553..9aac61f 100644 --- a/resource.h +++ b/resource.h @@ -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 -- cgit v1.2.3