summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gpg_wrapper.cpp5
-rw-r--r--log.cpp8
-rw-r--r--log.h1
-rw-r--r--main.cpp46
-rw-r--r--new_gpg.rc35
-rw-r--r--options.cpp7
-rw-r--r--resource.h5
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