[Winpt-commits] r165 - in trunk: . Include PTD Po Src

scm-commit at wald.intevation.org scm-commit at wald.intevation.org
Tue Jan 24 11:10:18 CET 2006


Author: twoaday
Date: 2006-01-24 11:10:15 +0100 (Tue, 24 Jan 2006)
New Revision: 165

Modified:
   trunk/Include/wptFileManager.h
   trunk/Include/wptKeyManager.h
   trunk/NEWS
   trunk/PTD/ChangeLog
   trunk/PTD/PTD.cpp
   trunk/PTD/wptJPG.cpp
   trunk/PTD/wptJPG.h
   trunk/Po/de.po
   trunk/Src/ChangeLog
   trunk/Src/WinPT-en.rc
   trunk/Src/resource.h
   trunk/Src/wptClipImportDlg.cpp
   trunk/Src/wptFileManagerDlg.cpp
   trunk/Src/wptGPGPrefsDlg.cpp
   trunk/Src/wptKeyCache.cpp
   trunk/Src/wptKeyEditDlgs.cpp
   trunk/Src/wptKeyManager.cpp
   trunk/Src/wptKeyManagerDlg.cpp
   trunk/Src/wptKeyPropsDlg.cpp
   trunk/Src/wptKeyserver.cpp
   trunk/Src/wptKeyserverDlg.cpp
   trunk/Src/wptMDSumDlg.cpp
   trunk/Src/wptMainProc.cpp
   trunk/TODO
   trunk/TODO-GPGME-PORT.txt
   trunk/configure.ac
Log:
2006-01-21  Timo Schulz  <twoaday at freakmail.de>
                                                                                
        * wptKeyCache.cpp (keycache_next_key): Handle the case
        that there is a secret key without a public part.
        * wptKeyserver.cpp (kserver_save_conf): Save ports.
        * wptKeyserverDlg.cpp (keyserver_modify_dlg_proc):
        Reset keyserver name.
        * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Just indicate
        an update, do not update the cache.
        * wptFileManagerDlg.cpp (file_import_dlg_proc): Use one
        dialog for both clipboard and file imports.
        * wptKeyManager.cpp (km_file_import, km_clip_import):
        Changes to support new update system.
        (gpg_clip_import): New.
        * wptKeyManagerDlg.cpp (km_gui_import): New.
        (find_keypos): Rewritten.
        (refresh_keylist): Improved error checking.
                                                                                
(for complete list of changes, see PTD/ChangeLog, Src/ChangeLog)



Modified: trunk/Include/wptFileManager.h
===================================================================
--- trunk/Include/wptFileManager.h	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/Include/wptFileManager.h	2006-01-24 10:10:15 UTC (rev 165)
@@ -60,6 +60,7 @@
     int cache_cb;
     gpgme_sig_mode_t sigmode;	/* used signature mode. */
     struct {
+	unsigned int is_clip:1; /* 1=if clipboard operation. */
 	unsigned int revcert:1;
 	unsigned int has_seckey:1;
     } import;

Modified: trunk/Include/wptKeyManager.h
===================================================================
--- trunk/Include/wptKeyManager.h	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/Include/wptKeyManager.h	2006-01-24 10:10:15 UTC (rev 165)
@@ -64,8 +64,9 @@
 int km_file_export( HWND dlg, listview_ctrl_t lv, const char *fname );
 int km_privkey_export(HWND dlg, listview_ctrl_t lv, const char *fname );
 int km_set_implicit_trust (HWND dlg, listview_ctrl_t lv, int pos);
-int km_clip_import (HWND dlg, int *r_newkeys);
-int km_file_import (HWND dlg, const char *fname, int *r_newkeys);
+int km_clip_import (HWND dlg, int *r_newkeys, int *r_newsks);
+int km_file_import (HWND dlg, const char *fname, 
+		    int *r_newkeys, int *r_newsks);
 int km_http_import (HWND dlg, const char * url);
 int km_delete_keys( listview_ctrl_t lv, HWND dlg );
 int km_send_to_keyserver( listview_ctrl_t lv, HWND dlg, const char * host, unsigned short port);

Modified: trunk/NEWS
===================================================================
--- trunk/NEWS	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/NEWS	2006-01-24 10:10:15 UTC (rev 165)
@@ -726,3 +726,12 @@
   in a crash/unexpected behaviour.
 * Fixed checkbox handling in the GPG preferences.
 * Updated GUI update system for the Key Manager.
+
+(0.11.7)
+* The GUI update system in 0.11.6 still had a problem
+  which is fixed now.
+* The keyserver edit dialog now correctly stores the ports.
+* Scale photos to the size of the photo frame window.
+* Correctly store the GPG preferences and reload the Key Manager
+  if they were chaged.
+* Allow to drop files into the Key Manager to import keys.

Modified: trunk/PTD/ChangeLog
===================================================================
--- trunk/PTD/ChangeLog	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/PTD/ChangeLog	2006-01-24 10:10:15 UTC (rev 165)
@@ -1,3 +1,9 @@
+2006-01-24  Timo Schulz  <ts at g10code.de>
+
+	* PTD.cpp (PTD_jpg_show): Scale photo so it fits into the
+	frame window.
+	* wptJPG.cpp (getWeight, getHeight, getWidth): New.
+	
 2005-11-22  Timo Schulz  <ts at g10code.com>
 
 	Store MSVC related files outside the repository.

Modified: trunk/PTD/PTD.cpp
===================================================================
--- trunk/PTD/PTD.cpp	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/PTD/PTD.cpp	2006-01-24 10:10:15 UTC (rev 165)
@@ -23,7 +23,6 @@
 #endif
 
 #include <windows.h>
-#include <windows.h>
 #include <stdio.h>
 #include <ocidl.h>
 #include <olectl.h>
@@ -55,7 +54,6 @@
 #endif
 #undef ATTR_SEC
 
-
 static unsigned *journ_keys = 0;
 static unsigned key_idx = 0;
 static unsigned nkeys = 0;
@@ -108,7 +106,6 @@
     if (cbt_hook == NULL)
         return FALSE;
     
-
     /* Okay, what are we doing here:
      * In the past I used the Spy++ application to find out why the old current 
      * window doesn't work on so much systems. Now we try to use the computer 
@@ -248,7 +245,8 @@
 {
     CJPG jpg;
     HDC hdc;
-    POINT p2;
+    POINT sizewnd;
+    RECT rwnd;
     BOOL rc;
 
     rc = jpg.load (name);
@@ -261,23 +259,23 @@
 	return -2; /* XXX: use real return code. */
     }
 
-    p2.x = jpg.m_Width;
-    p2.y = jpg.m_Height;
-    rc = jpg.show (hdc, p, &p2, 0, 0);
+    GetWindowRect (hwnd, &rwnd);
+    sizewnd.x = rwnd.right - rwnd.left;
+    sizewnd.y = rwnd.bottom - rwnd.top;
+    rc = jpg.show (hdc, p, &sizewnd, 0, 0);
 
     ReleaseDC (hwnd, hdc);
     jpg.freePictureData ();
     return rc;
 }
 
-
 		
 extern "C" int WINAPI 
 DllMain (HINSTANCE hinst, DWORD reason, LPVOID reserv)
 {
     switch (reason)  {
     case DLL_PROCESS_ATTACH: 
-        glob_hinst = hinst; 
+	glob_hinst = hinst;
 	break;
     case DLL_THREAD_ATTACH:  
 	break;
@@ -288,4 +286,3 @@
     }
     return TRUE;
 }
-

Modified: trunk/PTD/wptJPG.cpp
===================================================================
--- trunk/PTD/wptJPG.cpp	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/PTD/wptJPG.cpp	2006-01-24 10:10:15 UTC (rev 165)
@@ -33,7 +33,6 @@
 #endif
 
 #include <windows.h>
-#include <windows.h>
 #include <ocidl.h>
 #include <olectl.h>
 
@@ -183,50 +182,48 @@
 
 /* Draw the loaded picture direct to the client DC */
 BOOL 
-CJPG::show (HDC pDC, POINT *LeftTop, POINT *WidthHeight, 
-	    int MagnifyX, int MagnifyY)
+CJPG::show (HDC pDC, POINT *leftTop, POINT *widthHeight, 
+	    int magnifyX, int magnifyY)
 
 {
-    long Width  = 0;
-    long Height = 0;
+    RECT drawRect;
+    long width  = 0;
+    long height = 0;
+    HRESULT hrP = 0;
 
     if (pDC == NULL || m_IPicture == NULL) 
 	return FALSE;
 
-    m_IPicture->get_Width (&Width);
-    m_IPicture->get_Height (&Height);
+    m_IPicture->get_Width (&width);
+    m_IPicture->get_Height (&height);
 	
-    if (MagnifyX == 0) 
-	MagnifyX = 0;
-    if (MagnifyY == 0) 
-	MagnifyY = 0;
-    MagnifyX = int(MulDiv (Width, GetDeviceCaps(pDC, LOGPIXELSX), HIMETRIC_INCH) * MagnifyX);
-    MagnifyY = int(MulDiv (Height, GetDeviceCaps(pDC, LOGPIXELSY), HIMETRIC_INCH) * MagnifyY);
-    
-    RECT DrawRect;
-    DrawRect.left = LeftTop->x;
-    DrawRect.top = LeftTop->y;
-    DrawRect.right = MagnifyX;
-    DrawRect.bottom = MagnifyY;
+    if (magnifyX == 0) 
+	magnifyX = 0;
+    if (magnifyY == 0) 
+	magnifyY = 0;
+    magnifyX = int(MulDiv (width, GetDeviceCaps(pDC, LOGPIXELSX), HIMETRIC_INCH) * magnifyX);
+    magnifyY = int(MulDiv (height, GetDeviceCaps(pDC, LOGPIXELSY), HIMETRIC_INCH) * magnifyY);
 
-    HRESULT hrP = 0;
+    drawRect.left = leftTop->x;
+    drawRect.top = leftTop->y;
+    drawRect.right = magnifyX;
+    drawRect.bottom = magnifyY;
 
     hrP = m_IPicture->Render (pDC,
-                      LeftTop->x,               // Left
-                      LeftTop->y,               // Top
-                      WidthHeight->x +MagnifyX, // Width
-                      WidthHeight->y +MagnifyY, // Height
+                      leftTop->x,               // Left
+                      leftTop->y,               // Top
+                      widthHeight->x +magnifyX, // Width
+                      widthHeight->y +magnifyY, // Height
                       0,
-                      Height,
-                      Width,
-                      -Height,
-                      &DrawRect);
+                      height,
+                      width,
+                      -height,
+                      &drawRect);
 
     if (SUCCEEDED (hrP)) 
 	return (TRUE);
 
-    out_of_core ();
-}
+    out_of_core ();}
 
 
 /* Get the original picture pixel size (ignore what current DC is using)
@@ -253,3 +250,26 @@
 
     return (TRUE);
 }
+
+/* Return height of the current image. */
+LONG
+CJPG::getHeight (void)
+{
+    return m_Height;
+}
+
+
+/* Return weight of the current image. */
+LONG 
+CJPG::getWeight (void)
+{
+    return m_Weight;
+}
+
+
+/* Return width of the current image. */
+LONG
+CJPG::getWidth (void)
+{
+    return m_Width;
+}

Modified: trunk/PTD/wptJPG.h
===================================================================
--- trunk/PTD/wptJPG.h	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/PTD/wptJPG.h	2006-01-24 10:10:15 UTC (rev 165)
@@ -23,6 +23,13 @@
 
 class CJPG
 {
+private:
+    LONG m_Height; /* height (in pixels ignore what current device context uses) */
+    LONG m_Weight; /* size of the image object in bytes (file OR resource) */
+    LONG m_Width;  /* width (in pixels ignore what current device context uses) */
+
+    IPicture* m_IPicture; /* Same As LPPICTURE (typedef IPicture __RPC_FAR *LPPICTURE)*/
+
 public:
     CJPG ();	
     virtual ~CJPG ();
@@ -30,16 +37,13 @@
     void freePictureData ();
     BOOL load (LPCSTR sFilePathName);
     BOOL loadPictureData (BYTE* pBuffer, int nSize);
-    BOOL show (HDC pDC, POINT *LeftTop, POINT *WidthHeight, 
-	       int MagnifyX, int MagnifyY);
+    BOOL show (HDC pDC, POINT *leftTop, POINT *widthHeight, 
+	       int magnifyX, int magnifyY);
     BOOL updateSizeOnDC (HDC pDC);
 
-    LONG m_Height; /* height (in pixels ignore what current device context uses) */
-    LONG m_Weight; /* size of the image object in bytes (file OR resource) */
-    LONG m_Width;  /* width (in pixels ignore what current device context uses) */
-
-private:
-    IPicture* m_IPicture; /* Same As LPPICTURE (typedef IPicture __RPC_FAR *LPPICTURE)*/
+    LONG getHeight (void);
+    LONG getWeight (void);
+    LONG getWidth (void);
 };
 
 #endif /*WPT_JPG_H*/

Modified: trunk/Po/de.po
===================================================================
--- trunk/Po/de.po	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/Po/de.po	2006-01-24 10:10:15 UTC (rev 165)
@@ -12,9 +12,9 @@
 # BUG: GetOpenFileName needs \0\0. gettext does not support it.
 msgid ""
 msgstr ""
-"Project-Id-Version: WinPT 0.11.5\n"
+"Project-Id-Version: WinPT 0.11.6\n"
 "Report-Msgid-Bugs-To: winpt at freakmail.de\n"
-"POT-Creation-Date: 2006-01-20 09:39+0100\n"
+"POT-Creation-Date: 2006-01-24 09:58+0100\n"
 "PO-Revision-Date: 2005-12-28 16:10+0100\n"
 "Last-Translator: Timo Schulz <ts at g10code.de>\n"
 "Language-Team: DE <twoaday at freakmail.de>\n"
@@ -63,11 +63,11 @@
 #: Src/wptKeyserverDlg.cpp:204 Src/wptKeyserverDlg.cpp:220
 #: Src/wptKeyserverDlg.cpp:378 Src/wptKeyserverDlg.cpp:384
 #: Src/wptKeyserverDlg.cpp:493 Src/wptKeyserverDlg.cpp:553
-#: Src/wptKeyserverDlg.cpp:558 Src/wptKeyserverDlg.cpp:668
-#: Src/wptKeyserverDlg.cpp:676 Src/wptKeyserverDlg.cpp:683
-#: Src/wptKeyserverDlg.cpp:699 Src/wptKeyserverDlg.cpp:715
-#: Src/wptKeyserverDlg.cpp:720 Src/wptKeyserverDlg.cpp:726
-#: Src/wptKeyserverDlg.cpp:732
+#: Src/wptKeyserverDlg.cpp:558 Src/wptKeyserverDlg.cpp:670
+#: Src/wptKeyserverDlg.cpp:678 Src/wptKeyserverDlg.cpp:685
+#: Src/wptKeyserverDlg.cpp:701 Src/wptKeyserverDlg.cpp:717
+#: Src/wptKeyserverDlg.cpp:722 Src/wptKeyserverDlg.cpp:728
+#: Src/wptKeyserverDlg.cpp:734
 msgid "Keyserver"
 msgstr "Schlüsselserver"
 
@@ -134,8 +134,8 @@
 # c:\oss\winpt-gpgme\src\WinPT.cpp:376
 # c:\oss\winpt-gpgme\src\wptFileManagerDlg.cpp:426
 # c:\oss\winpt-gpgme\src\wptFileManagerDlg.cpp:711
-#: Src/WinPT.cpp:511 Src/wptFileManagerDlg.cpp:479
-#: Src/wptFileManagerDlg.cpp:793
+#: Src/WinPT.cpp:511 Src/wptFileManagerDlg.cpp:487
+#: Src/wptFileManagerDlg.cpp:801
 msgid "Wipe Free Space"
 msgstr "Freien Speicher Löschen"
 
@@ -185,7 +185,7 @@
 msgid "About GnuPG"
 msgstr "Über GnuPG"
 
-#: Src/wptAboutDlgs.cpp:97 Src/wptKeyManagerDlg.cpp:1697
+#: Src/wptAboutDlgs.cpp:97 Src/wptKeyManagerDlg.cpp:1735
 #: Src/wptMainProc.cpp:576
 msgid "About WinPT"
 msgstr "Über WinPT"
@@ -235,7 +235,7 @@
 msgstr "Über &GPG"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:700
-#: Src/wptAboutDlgs.cpp:116 Src/wptKeyEditDlgs.cpp:1829
+#: Src/wptAboutDlgs.cpp:116 Src/wptKeyEditDlgs.cpp:1859
 #: Src/wptKeyManagerDlg.cpp:953
 msgid "&Help"
 msgstr "&Hilfe"
@@ -353,7 +353,7 @@
 msgid "Make off-card backup of encryption key"
 msgstr "Externes Backup des Verschlüsselungs-Schlüssel"
 
-#: Src/wptCardDlg.cpp:608 Src/wptKeyManagerDlg.cpp:1586
+#: Src/wptCardDlg.cpp:608 Src/wptKeyManagerDlg.cpp:1629
 msgid "Card Key Generation"
 msgstr "Karten-Schlüsselerzeugung"
 
@@ -382,7 +382,7 @@
 msgid "Please use plain ASCII charset for the fields."
 msgstr "Bitte nur den 7-bit ASCII Zeichensatz verwenden."
 
-#: Src/wptCardDlg.cpp:683 Src/wptKeyEditDlgs.cpp:1314
+#: Src/wptCardDlg.cpp:683 Src/wptKeyEditDlgs.cpp:1336
 msgid "The date you have chosen lies in the past."
 msgstr "Das gewählte Datum ist in der Vergangenheit."
 
@@ -481,7 +481,7 @@
 #: Src/wptClipDecryptDlg.cpp:164 Src/wptClipEncryptDlg.cpp:206
 #: Src/wptClipSignDlg.cpp:119 Src/wptClipSignDlg.cpp:229
 #: Src/wptClipSignEncDlg.cpp:197 Src/wptKeyManager.cpp:329
-#: Src/wptKeyManager.cpp:709 Src/wptKeyManager.cpp:904 Src/wptSymEnc.cpp:90
+#: Src/wptKeyManager.cpp:777 Src/wptKeyManager.cpp:977 Src/wptSymEnc.cpp:90
 msgid "GnuPG Status: Finished"
 msgstr "GnuPG-Status: Abgeschlossen"
 
@@ -522,9 +522,9 @@
 #: Src/wptClipEditDlg.cpp:58 Src/wptClipEditDlg.cpp:111
 #: Src/wptClipEditDlg.cpp:119 Src/wptClipEditDlg.cpp:158
 #: Src/wptClipEditDlg.cpp:167 Src/wptClipEditDlg.cpp:245
-#: Src/wptClipEditDlg.cpp:250 Src/wptMainProc.cpp:159 Src/wptMainProc.cpp:227
-#: Src/wptMainProc.cpp:270 Src/wptMainProc.cpp:428 Src/wptMainProc.cpp:509
-#: Src/wptMainProc.cpp:513
+#: Src/wptClipEditDlg.cpp:250 Src/wptFileManagerDlg.cpp:211
+#: Src/wptMainProc.cpp:159 Src/wptMainProc.cpp:227 Src/wptMainProc.cpp:270
+#: Src/wptMainProc.cpp:428 Src/wptMainProc.cpp:509 Src/wptMainProc.cpp:513
 msgid "Clipboard"
 msgstr "Zwischenablage"
 
@@ -585,8 +585,8 @@
 msgid "Add quotes"
 msgstr "'>' hinzufügen"
 
-#: Src/wptClipEditDlg.cpp:202 Src/wptKeyEditDlgs.cpp:1828
-#: Src/wptKeyserverDlg.cpp:608 Src/wptMDSumDlg.cpp:104
+#: Src/wptClipEditDlg.cpp:202 Src/wptKeyEditDlgs.cpp:1858
+#: Src/wptKeyserverDlg.cpp:610 Src/wptMDSumDlg.cpp:104
 #: Src/wptOwnertrustDlg.cpp:103
 msgid "&Close"
 msgstr "&Schliessen"
@@ -609,7 +609,7 @@
 
 #: Src/wptClipEncryptDlg.cpp:142 Src/wptClipSignEncDlg.cpp:112
 #: Src/wptCommonDlg.cpp:68 Src/wptFileManagerDlg.cpp:84
-#: Src/wptFileManagerDlg.cpp:215 Src/wptFileManagerDlg.cpp:277
+#: Src/wptFileManagerDlg.cpp:217 Src/wptFileManagerDlg.cpp:285
 #: Src/wptFileSaveDlg.cpp:58 Src/wptFirstRunDlg.cpp:51
 #: Src/wptKeyEditDlgs.cpp:310 Src/wptKeyEditDlgs.cpp:410
 #: Src/wptKeyEditDlgs.cpp:485 Src/wptKeyEditDlgs.cpp:621
@@ -632,52 +632,10 @@
 msgid "No recipient found with '%s'"
 msgstr "Keine Empfaenger mit '%s' gefunden"
 
-#: Src/wptClipImportDlg.cpp:70 Src/wptKeyImportStatusDlg.cpp:77
+#: Src/wptClipImportDlg.cpp:53 Src/wptKeyImportStatusDlg.cpp:77
 msgid "Key Import Statistics"
 msgstr "Schlüsselimport-Statistiken"
 
-#: Src/wptClipImportDlg.cpp:98 Src/wptFileManagerDlg.cpp:201
-#: Src/wptFileManagerDlg.cpp:214 Src/wptKeyManager.cpp:468
-msgid "Key Import"
-msgstr "Schlüsselimport"
-
-#: Src/wptClipImportDlg.cpp:99 Src/wptFileManagerDlg.cpp:469
-msgid "&Import"
-msgstr "&Importieren"
-
-#: Src/wptClipImportDlg.cpp:129
-msgid ""
-"Some of the imported keys are secret keys.\n"
-"\n"
-"The ownertrust values of these keys must be\n"
-"set manually via the Key Properties dialog."
-msgstr ""
-"Einige der importierten Schlüssel sind geheime Schlüssel.\n"
-"\n"
-"Die Vertrauensstellungen dieser Schlüssel müssen Sie\n"
-"manuell in den Schlüsseleigenschaften setzen."
-
-#: Src/wptClipImportDlg.cpp:132 Src/wptClipImportDlg.cpp:142
-#: Src/wptClipImportDlg.cpp:153 Src/wptFileManager.cpp:1653
-#: Src/wptFileManager.cpp:1664 Src/wptImportList.cpp:414
-#: Src/wptImportList.cpp:421 Src/wptImportList.cpp:430
-#: Src/wptImportList.cpp:438 Src/wptImportList.cpp:447
-#: Src/wptKeyManager.cpp:583 Src/wptKeyserverDlg.cpp:229
-msgid "Import"
-msgstr "Importieren"
-
-#: Src/wptClipImportDlg.cpp:150
-msgid ""
-"Key without a self signature was dectected!\n"
-"(This key is NOT usable for encryption, etc)\n"
-"\n"
-"Cannot import these key(s)."
-msgstr ""
-"Schlüssel ohne Eigensignatur erkannt!\n"
-"(Dieser Schlüssel ist für Verschlüsselung, etc. NICHT verwendbar)\n"
-"\n"
-"Kann diese(n) Schlüssel nicht importieren."
-
 #: Src/wptClipSignDlg.cpp:104 Src/wptClipSignDlg.cpp:185
 #: Src/wptClipSignEncDlg.cpp:176
 msgid "Could not get default key."
@@ -729,7 +687,7 @@
 #: Src/wptClipVerifyDlg.cpp:186 Src/wptClipVerifyDlg.cpp:193
 #: Src/wptClipVerifyDlg.cpp:225 Src/wptClipVerifyDlg.cpp:236
 #: Src/wptFileManager.cpp:1551 Src/wptFileManager.cpp:1606
-#: Src/wptFileManagerDlg.cpp:542 Src/wptFileVerifyDlg.cpp:81
+#: Src/wptFileManagerDlg.cpp:550 Src/wptFileVerifyDlg.cpp:81
 #: Src/wptFileVerifyDlg.cpp:145 Src/wptMainProc.cpp:179
 #: Src/wptMainProc.cpp:245 Src/wptMainProc.cpp:257 Src/wptMainProc.cpp:265
 #: Src/wptMainProc.cpp:416
@@ -782,28 +740,28 @@
 
 #: Src/wptCommonDlg.cpp:124 Src/wptKeyEditDlgs.cpp:732
 #: Src/wptKeyEditDlgs.cpp:790 Src/wptKeyEditDlgs.cpp:828
-#: Src/wptKeyEditDlgs.cpp:840 Src/wptKeyEditDlgs.cpp:909
-#: Src/wptKeyEditDlgs.cpp:916 Src/wptKeyEditDlgs.cpp:934
-#: Src/wptKeyEditDlgs.cpp:981 Src/wptKeyEditDlgs.cpp:988
-#: Src/wptKeyEditDlgs.cpp:1079 Src/wptKeyEditDlgs.cpp:1085
-#: Src/wptKeyEditDlgs.cpp:1237 Src/wptKeyEditDlgs.cpp:1241
-#: Src/wptKeyEditDlgs.cpp:1245 Src/wptKeyEditDlgs.cpp:1250
-#: Src/wptKeyEditDlgs.cpp:1286 Src/wptKeyEditDlgs.cpp:1290
-#: Src/wptKeyEditDlgs.cpp:1300 Src/wptKeyEditDlgs.cpp:1315
-#: Src/wptKeyEditDlgs.cpp:1319 Src/wptKeyEditDlgs.cpp:1359
-#: Src/wptKeyEditDlgs.cpp:1364 Src/wptKeyEditDlgs.cpp:1371
-#: Src/wptKeyEditDlgs.cpp:1377 Src/wptKeyEditDlgs.cpp:1382
-#: Src/wptKeyEditDlgs.cpp:1425 Src/wptKeyEditDlgs.cpp:1430
-#: Src/wptKeyEditDlgs.cpp:1437 Src/wptKeyEditDlgs.cpp:1444
-#: Src/wptKeyEditDlgs.cpp:1447 Src/wptKeyEditDlgs.cpp:1485
-#: Src/wptKeyEditDlgs.cpp:1493 Src/wptKeyEditDlgs.cpp:1527
-#: Src/wptKeyEditDlgs.cpp:1535 Src/wptKeyEditDlgs.cpp:1634
-#: Src/wptKeyEditDlgs.cpp:1667 Src/wptKeyEditDlgs.cpp:1694
-#: Src/wptKeyEditDlgs.cpp:1698 Src/wptKeyEditDlgs.cpp:1707
-#: Src/wptKeyEditDlgs.cpp:1809 Src/wptKeyEditDlgs.cpp:1819
-#: Src/wptKeyEditDlgs.cpp:1830 Src/wptKeyEditDlgs.cpp:1859
-#: Src/wptKeyEditDlgs.cpp:1865 Src/wptKeyManagerDlg.cpp:981
-#: Src/wptKeyManagerDlg.cpp:1732
+#: Src/wptKeyEditDlgs.cpp:840 Src/wptKeyEditDlgs.cpp:927
+#: Src/wptKeyEditDlgs.cpp:934 Src/wptKeyEditDlgs.cpp:952
+#: Src/wptKeyEditDlgs.cpp:1001 Src/wptKeyEditDlgs.cpp:1008
+#: Src/wptKeyEditDlgs.cpp:1099 Src/wptKeyEditDlgs.cpp:1105
+#: Src/wptKeyEditDlgs.cpp:1259 Src/wptKeyEditDlgs.cpp:1263
+#: Src/wptKeyEditDlgs.cpp:1267 Src/wptKeyEditDlgs.cpp:1272
+#: Src/wptKeyEditDlgs.cpp:1308 Src/wptKeyEditDlgs.cpp:1312
+#: Src/wptKeyEditDlgs.cpp:1322 Src/wptKeyEditDlgs.cpp:1337
+#: Src/wptKeyEditDlgs.cpp:1341 Src/wptKeyEditDlgs.cpp:1381
+#: Src/wptKeyEditDlgs.cpp:1386 Src/wptKeyEditDlgs.cpp:1393
+#: Src/wptKeyEditDlgs.cpp:1399 Src/wptKeyEditDlgs.cpp:1404
+#: Src/wptKeyEditDlgs.cpp:1447 Src/wptKeyEditDlgs.cpp:1452
+#: Src/wptKeyEditDlgs.cpp:1459 Src/wptKeyEditDlgs.cpp:1466
+#: Src/wptKeyEditDlgs.cpp:1469 Src/wptKeyEditDlgs.cpp:1507
+#: Src/wptKeyEditDlgs.cpp:1515 Src/wptKeyEditDlgs.cpp:1549
+#: Src/wptKeyEditDlgs.cpp:1557 Src/wptKeyEditDlgs.cpp:1656
+#: Src/wptKeyEditDlgs.cpp:1689 Src/wptKeyEditDlgs.cpp:1716
+#: Src/wptKeyEditDlgs.cpp:1720 Src/wptKeyEditDlgs.cpp:1729
+#: Src/wptKeyEditDlgs.cpp:1839 Src/wptKeyEditDlgs.cpp:1849
+#: Src/wptKeyEditDlgs.cpp:1860 Src/wptKeyEditDlgs.cpp:1889
+#: Src/wptKeyEditDlgs.cpp:1894 Src/wptKeyManagerDlg.cpp:981
+#: Src/wptKeyManagerDlg.cpp:1770
 msgid "Key Edit"
 msgstr "Schlüssel bearbeiten"
 
@@ -821,7 +779,7 @@
 msgstr "&Nein"
 
 #: Src/wptCommonDlg.cpp:215 Src/wptKeyEditDlgs.cpp:210
-#: Src/wptKeyEditDlgs.cpp:1045
+#: Src/wptKeyEditDlgs.cpp:1065
 msgid "OK"
 msgstr "OK"
 
@@ -1106,8 +1064,8 @@
 #: Src/wptFileManager.cpp:813 Src/wptFileManager.cpp:927
 #: Src/wptFileManager.cpp:1456 Src/wptFileManager.cpp:1483
 #: Src/wptFileManager.cpp:1502 Src/wptFileManager.cpp:1760
-#: Src/wptFileManager.cpp:1822 Src/wptFileManagerDlg.cpp:489
-#: Src/wptFileStatDlg.cpp:137 Src/wptMainProc.cpp:397 Src/wptMDSumDlg.cpp:148
+#: Src/wptFileManager.cpp:1822 Src/wptFileManagerDlg.cpp:497
+#: Src/wptFileStatDlg.cpp:137 Src/wptMainProc.cpp:397 Src/wptMDSumDlg.cpp:152
 msgid "File Manager"
 msgstr "Dateimanager"
 
@@ -1138,12 +1096,12 @@
 "\n"
 "Möchten Sie die Kompression ausschalten?"
 
-#: Src/wptFileManager.cpp:383 Src/wptKeyEditDlgs.cpp:968
+#: Src/wptFileManager.cpp:383 Src/wptKeyEditDlgs.cpp:988
 #: Src/wptVerifyList.cpp:98 Src/wptVerifyList.cpp:106
 msgid "Status"
 msgstr "Status"
 
-#: Src/wptFileManager.cpp:384 Src/wptKeyEditDlgs.cpp:1071
+#: Src/wptFileManager.cpp:384 Src/wptKeyEditDlgs.cpp:1091
 #: Src/wptKeyRevokersDlg.cpp:57 Src/wptMDSumDlg.cpp:73
 #: Src/wptVerifyList.cpp:97
 msgid "Name"
@@ -1185,12 +1143,12 @@
 msgstr "Konnte den geheimen Standardschlüssel nicht finden."
 
 #: Src/wptFileManager.cpp:1117 Src/wptFileManager.cpp:1401
-#: Src/wptFileManagerDlg.cpp:540 Src/wptMainProc.cpp:197
+#: Src/wptFileManagerDlg.cpp:548 Src/wptMainProc.cpp:197
 #: Src/wptMainProc.cpp:413 Src/wptMainProc.cpp:420
 msgid "Sign"
 msgstr "Signieren"
 
-#: Src/wptFileManager.cpp:1130 Src/wptFileManagerDlg.cpp:538
+#: Src/wptFileManager.cpp:1130 Src/wptFileManagerDlg.cpp:546
 #: Src/wptMainProc.cpp:412 Src/wptMainProc.cpp:417
 msgid "Encrypt"
 msgstr "Verschlüsseln"
@@ -1233,7 +1191,7 @@
 msgid "Please enter filename for plaintext file"
 msgstr "Wählen Sie einen Namen für die Klartext-Datei"
 
-#: Src/wptFileManager.cpp:1330 Src/wptFileManagerDlg.cpp:539
+#: Src/wptFileManager.cpp:1330 Src/wptFileManagerDlg.cpp:547
 msgid "Decrypt"
 msgstr "Entschlüsseln"
 
@@ -1271,7 +1229,16 @@
 msgid "Invalid file name. Exit"
 msgstr "Ungültiger Dateiname. Abbruch"
 
-#: Src/wptFileManager.cpp:1661 Src/wptKeyManager.cpp:580
+#: Src/wptFileManager.cpp:1653 Src/wptFileManager.cpp:1664
+#: Src/wptFileManagerDlg.cpp:242 Src/wptImportList.cpp:414
+#: Src/wptImportList.cpp:421 Src/wptImportList.cpp:430
+#: Src/wptImportList.cpp:438 Src/wptImportList.cpp:447
+#: Src/wptKeyManager.cpp:501 Src/wptKeyManager.cpp:512
+#: Src/wptKeyManager.cpp:647 Src/wptKeyserverDlg.cpp:229
+msgid "Import"
+msgstr "Importieren"
+
+#: Src/wptFileManager.cpp:1661
 msgid ""
 "Key without a self signature was dectected!\n"
 "(This key is NOT usable for encryption, etc)\n"
@@ -1293,13 +1260,13 @@
 msgid "Export"
 msgstr "Exportieren"
 
-#: Src/wptFileManager.cpp:1695 Src/wptKeyManagerDlg.cpp:1655
-#: Src/wptKeyManagerDlg.cpp:1689
+#: Src/wptFileManager.cpp:1695 Src/wptKeyManagerDlg.cpp:1693
+#: Src/wptKeyManagerDlg.cpp:1727
 msgid "Choose Name for Key File"
 msgstr "Den Namen der Schlüsseldatei wählen"
 
-#: Src/wptFileManager.cpp:1714 Src/wptKeyEditDlgs.cpp:949
-#: Src/wptKeyEditDlgs.cpp:1267 Src/wptKeyEditDlgs.cpp:1338
+#: Src/wptFileManager.cpp:1714 Src/wptKeyEditDlgs.cpp:967
+#: Src/wptKeyEditDlgs.cpp:1289 Src/wptKeyEditDlgs.cpp:1360
 #: Src/wptKeyserverDlg.cpp:106
 msgid "GnuPG status"
 msgstr "GnuPG Status"
@@ -1342,7 +1309,7 @@
 msgid "File Encrypt"
 msgstr "Datei verschlüsseln"
 
-#: Src/wptFileManagerDlg.cpp:80 Src/wptFileManagerDlg.cpp:271
+#: Src/wptFileManagerDlg.cpp:80 Src/wptFileManagerDlg.cpp:279
 msgid "&Text Output"
 msgstr "&Textausgabe"
 
@@ -1362,194 +1329,215 @@
 msgid "Please select at least one recipient."
 msgstr "Bitte wählen Sie wenigstens einen Empfänger"
 
-#: Src/wptFileManagerDlg.cpp:201 Src/wptFileStatDlg.cpp:266
-#: Src/wptKeyManager.cpp:446
+#: Src/wptFileManagerDlg.cpp:202 Src/wptFileStatDlg.cpp:266
+#: Src/wptKeyManager.cpp:465
 msgid "No valid OpenPGP data found."
 msgstr "Keine gültigen OpenPGP-Daten gefunden."
 
-#: Src/wptFileManagerDlg.cpp:206
+#: Src/wptFileManagerDlg.cpp:202 Src/wptFileManagerDlg.cpp:216
+#: Src/wptKeyManager.cpp:490
+msgid "Key Import"
+msgstr "Schlüsselimport"
+
+#: Src/wptFileManagerDlg.cpp:207
 #, c-format
-msgid "File contain(s) %d key(s)."
-msgstr "Datei enthält %d Schlüssel."
+msgid "%s contain(s) %d key(s)."
+msgstr "%s enthält %d Schlüssel."
 
-#: Src/wptFileManagerDlg.cpp:270 Src/wptFileManagerDlg.cpp:322
+#: Src/wptFileManagerDlg.cpp:211 Src/wptFileManagerDlg.cpp:466
+#: Src/wptKeyManagerDlg.cpp:918 Src/wptOwnertrustDlg.cpp:98
+msgid "File"
+msgstr "Datei"
+
+#: Src/wptFileManagerDlg.cpp:239
+msgid ""
+"Some of the imported keys are secret keys.\n"
+"\n"
+"The ownertrust values of these keys must be\n"
+"set manually via the Key Properties dialog."
+msgstr ""
+"Einige der importierten Schlüssel sind geheime Schlüssel.\n"
+"\n"
+"Die Vertrauensstellungen dieser Schlüssel müssen Sie\n"
+"manuell in den Schlüsseleigenschaften setzen."
+
+#: Src/wptFileManagerDlg.cpp:278 Src/wptFileManagerDlg.cpp:330
 msgid "File Sign"
 msgstr "Datei signieren"
 
-#: Src/wptFileManagerDlg.cpp:272
+#: Src/wptFileManagerDlg.cpp:280
 msgid "&Normal Signature"
 msgstr "&Normale Signatur"
 
-#: Src/wptFileManagerDlg.cpp:273
+#: Src/wptFileManagerDlg.cpp:281
 msgid "&Detached Signature"
 msgstr "&Angehängte Signatur"
 
-#: Src/wptFileManagerDlg.cpp:274
+#: Src/wptFileManagerDlg.cpp:282
 msgid "&Cleartext Signature"
 msgstr "&Klartextsignatur"
 
-#: Src/wptFileManagerDlg.cpp:275
+#: Src/wptFileManagerDlg.cpp:283
 msgid "Signature mode"
 msgstr "Signaturmodus"
 
-#: Src/wptFileManagerDlg.cpp:276 Src/wptKeyManagerDlg.cpp:945
+#: Src/wptFileManagerDlg.cpp:284 Src/wptKeyManagerDlg.cpp:945
 msgid "Options"
 msgstr "Optionen"
 
-#: Src/wptFileManagerDlg.cpp:322 Src/wptKeyEditDlgs.cpp:1241
-#: Src/wptKeyEditDlgs.cpp:1290 Src/wptKeyEditDlgs.cpp:1364
-#: Src/wptKeyManager.cpp:627 Src/wptKeyManager.cpp:728
-#: Src/wptKeyManager.cpp:765 Src/wptKeyManagerDlg.cpp:1419
-#: Src/wptKeyManagerDlg.cpp:1439 Src/wptKeyManagerDlg.cpp:1473
-#: Src/wptKeyManagerDlg.cpp:1492 Src/wptKeyManagerDlg.cpp:1512
-#: Src/wptKeyManagerDlg.cpp:1645 Src/wptKeyManagerDlg.cpp:1664
+#: Src/wptFileManagerDlg.cpp:330 Src/wptKeyEditDlgs.cpp:1263
+#: Src/wptKeyEditDlgs.cpp:1312 Src/wptKeyEditDlgs.cpp:1386
+#: Src/wptKeyManager.cpp:695 Src/wptKeyManager.cpp:796
+#: Src/wptKeyManager.cpp:833 Src/wptKeyManagerDlg.cpp:1474
+#: Src/wptKeyManagerDlg.cpp:1494 Src/wptKeyManagerDlg.cpp:1528
+#: Src/wptKeyManagerDlg.cpp:1547 Src/wptKeyManagerDlg.cpp:1567
+#: Src/wptKeyManagerDlg.cpp:1683 Src/wptKeyManagerDlg.cpp:1702
 #: Src/wptKeyserverSearchDlg.cpp:132
 msgid "Please select a key."
 msgstr "Bitte Schlüssel wählen."
 
-#: Src/wptFileManagerDlg.cpp:382
+#: Src/wptFileManagerDlg.cpp:390
 msgid "0 Objects marked"
 msgstr "0 Objekte markiert"
 
-#: Src/wptFileManagerDlg.cpp:386
+#: Src/wptFileManagerDlg.cpp:394
 #, c-format
 msgid "%d Object(s) marked"
 msgstr "%d Objekt(e) markiert"
 
-#: Src/wptFileManagerDlg.cpp:456 Src/wptMainProc.cpp:540
+#: Src/wptFileManagerDlg.cpp:464 Src/wptMainProc.cpp:540
 msgid "File Manager (use drag & drop to add files)"
 msgstr "Dateimanager (Drag & Drop möglich)"
 
-#: Src/wptFileManagerDlg.cpp:458 Src/wptKeyManagerDlg.cpp:918
-#: Src/wptOwnertrustDlg.cpp:98
-msgid "File"
-msgstr "Datei"
-
-#: Src/wptFileManagerDlg.cpp:459 Src/wptKeyManagerDlg.cpp:919
+#: Src/wptFileManagerDlg.cpp:467 Src/wptKeyManagerDlg.cpp:919
 #: Src/wptKeyManagerDlg.cpp:924 Src/wptKeyManagerDlg.cpp:935
 msgid "Edit"
 msgstr "Bearbeiten"
 
-#: Src/wptFileManagerDlg.cpp:460 Src/wptKeyManagerDlg.cpp:920
+#: Src/wptFileManagerDlg.cpp:468 Src/wptKeyManagerDlg.cpp:920
 msgid "View"
 msgstr "Ansicht"
 
-#: Src/wptFileManagerDlg.cpp:461
+#: Src/wptFileManagerDlg.cpp:469
 msgid "&Open..."
 msgstr "Ö&ffnen.."
 
-#: Src/wptFileManagerDlg.cpp:462
+#: Src/wptFileManagerDlg.cpp:470
 msgid "&Encrypt"
 msgstr "&Verschlüsseln"
 
-#: Src/wptFileManagerDlg.cpp:463 Src/wptFileManagerDlg.cpp:537
+#: Src/wptFileManagerDlg.cpp:471 Src/wptFileManagerDlg.cpp:545
 msgid "Encrypt into ZIP"
 msgstr "Verschlüsseln in ZIP"
 
-#: Src/wptFileManagerDlg.cpp:464
+#: Src/wptFileManagerDlg.cpp:472
 msgid "&Decrypt"
 msgstr "&Entschlüsseln"
 
-#: Src/wptFileManagerDlg.cpp:465 Src/wptKeyManagerDlg.cpp:936
+#: Src/wptFileManagerDlg.cpp:473 Src/wptKeyManagerDlg.cpp:936
 #: Src/wptKeyManagerDlg.cpp:984
 msgid "&Sign"
 msgstr "&Signieren"
 
-#: Src/wptFileManagerDlg.cpp:466 Src/wptFileManagerDlg.cpp:541
+#: Src/wptFileManagerDlg.cpp:474 Src/wptFileManagerDlg.cpp:549
 #: Src/wptMainProc.cpp:414 Src/wptMainProc.cpp:418
 msgid "Sign && Encrypt"
 msgstr "Signieren && Verschlüsseln"
 
-#: Src/wptFileManagerDlg.cpp:467
+#: Src/wptFileManagerDlg.cpp:475
 msgid "&Verify"
 msgstr "Über&prüfen"
 
-#: Src/wptFileManagerDlg.cpp:468
+#: Src/wptFileManagerDlg.cpp:476
 msgid "S&ymmetric"
 msgstr "S&ymmetrisch"
 
-#: Src/wptFileManagerDlg.cpp:470
+#: Src/wptFileManagerDlg.cpp:477
+msgid "&Import"
+msgstr "&Importieren"
+
+#: Src/wptFileManagerDlg.cpp:478
 msgid "E&xport"
 msgstr "E&xportieren"
 
 # msgid "Executable Files (*.exe)"
 # msgstr "Ausführbare Dateien (*.exe)"
-#: Src/wptFileManagerDlg.cpp:471 Src/wptMainProc.cpp:410
+#: Src/wptFileManagerDlg.cpp:479 Src/wptMainProc.cpp:410
 msgid "Exit"
 msgstr "Beenden"
 
-#: Src/wptFileManagerDlg.cpp:472
+#: Src/wptFileManagerDlg.cpp:480
 msgid "&Reset"
 msgstr "&Reset"
 
 # c:\oss\winpt-gpgme\src\wptFileManagerDlg.cpp:421
-#: Src/wptFileManagerDlg.cpp:473
+#: Src/wptFileManagerDlg.cpp:481
 msgid "Always on Top"
 msgstr "Immer im Vordergrund"
 
 # c:\oss\winpt-gpgme\src\wptFileManagerDlg.cpp:422
-#: Src/wptFileManagerDlg.cpp:474
+#: Src/wptFileManagerDlg.cpp:482
 msgid "&Paste"
 msgstr "&Einfügen"
 
 # c:\oss\winpt-gpgme\src\wptFileManagerDlg.cpp:423
-#: Src/wptFileManagerDlg.cpp:475
+#: Src/wptFileManagerDlg.cpp:483
 msgid "&Select All"
 msgstr "Alles &markieren"
 
-#: Src/wptFileManagerDlg.cpp:476
+#: Src/wptFileManagerDlg.cpp:484
 msgid "&Preferences"
 msgstr "&Einstellungen"
 
 # c:\oss\winpt-gpgme\src\wptFileManagerDlg.cpp:478
-#: Src/wptFileManagerDlg.cpp:477 Src/wptFileManagerDlg.cpp:544
+#: Src/wptFileManagerDlg.cpp:485 Src/wptFileManagerDlg.cpp:552
 msgid "Send as Mail"
 msgstr "Als Mail versenden"
 
 # c:\oss\winpt-gpgme\src\wptFileManagerDlg.cpp:425
-#: Src/wptFileManagerDlg.cpp:478
+#: Src/wptFileManagerDlg.cpp:486
 msgid "&List Packets"
 msgstr "Pakete an&zeigen"
 
-#: Src/wptFileManagerDlg.cpp:480
+#: Src/wptFileManagerDlg.cpp:488
 msgid "&Wipe"
 msgstr "&Löschen"
 
-#: Src/wptFileManagerDlg.cpp:543
+#: Src/wptFileManagerDlg.cpp:551
 msgid "Wipe"
 msgstr "Löschen"
 
-#: Src/wptFileManagerDlg.cpp:545
+#: Src/wptFileManagerDlg.cpp:553
 msgid "List Packets"
 msgstr "Pakete anzeigen"
 
 # c:\oss\winpt-gpgme\src\wptFileManagerDlg.cpp:429
-#: Src/wptFileManagerDlg.cpp:590
+#: Src/wptFileManagerDlg.cpp:598
 msgid "&Calc Digest"
 msgstr "Digest &berechnen"
 
 # c:\oss\winpt-gpgme\src\wptFileManagerDlg.cpp:671
-#: Src/wptFileManagerDlg.cpp:745
+#: Src/wptFileManagerDlg.cpp:753
 msgid "Are you sure you want to secure delete these files?"
 msgstr "Sollen diese Dateien wirklich sicher gelöscht werden?"
 
-#: Src/wptFileManagerDlg.cpp:746 Src/wptMainProc.cpp:97
+#: Src/wptFileManagerDlg.cpp:754 Src/wptMainProc.cpp:97
 msgid "&Yes"
 msgstr "&Ja"
 
-#: Src/wptFileManagerDlg.cpp:747 Src/wptMainProc.cpp:98
+#: Src/wptFileManagerDlg.cpp:755 Src/wptMainProc.cpp:98
 msgid "&No"
 msgstr "&Nein"
 
-#: Src/wptFileManagerDlg.cpp:790
+#: Src/wptFileManagerDlg.cpp:798
 msgid "Operation Status: Error"
 msgstr "Prozess-Status: Fehler"
 
-#: Src/wptFileManagerDlg.cpp:791
+#: Src/wptFileManagerDlg.cpp:799
 msgid "Operation Status: Done."
 msgstr "Prozess-Status: Fertig"
 
-#: Src/wptFileManagerDlg.cpp:834
+#: Src/wptFileManagerDlg.cpp:842
 #, c-format
 msgid ""
 "Total Capacity: %12sk\n"
@@ -1645,11 +1633,11 @@
 msgid "GPG Warning"
 msgstr "GPG Warnung"
 
-#: Src/wptGPG.cpp:887 Src/wptGPGPrefsDlg.cpp:206 Src/wptGPGPrefsDlg.cpp:212
-#: Src/wptGPGPrefsDlg.cpp:218 Src/wptGPGPrefsDlg.cpp:224
-#: Src/wptGPGPrefsDlg.cpp:229 Src/wptGPGPrefsDlg.cpp:234
-#: Src/wptGPGPrefsDlg.cpp:239 Src/wptGPGPrefsDlg.cpp:253
-#: Src/wptKeyEditDlgs.cpp:1641 Src/wptKeyManagerDlg.cpp:946
+#: Src/wptGPG.cpp:887 Src/wptGPGPrefsDlg.cpp:210 Src/wptGPGPrefsDlg.cpp:216
+#: Src/wptGPGPrefsDlg.cpp:222 Src/wptGPGPrefsDlg.cpp:228
+#: Src/wptGPGPrefsDlg.cpp:233 Src/wptGPGPrefsDlg.cpp:238
+#: Src/wptGPGPrefsDlg.cpp:244 Src/wptGPGPrefsDlg.cpp:258
+#: Src/wptKeyEditDlgs.cpp:1663 Src/wptKeyManagerDlg.cpp:946
 #: Src/wptMainProc.cpp:430 Src/wptPreferencesDlg.cpp:209
 #: Src/wptPreferencesDlg.cpp:252 Src/wptPreferencesDlg.cpp:263
 #: Src/wptPreferencesDlg.cpp:275 Src/wptPreferencesDlg.cpp:308
@@ -1788,7 +1776,7 @@
 "Aktuelle Daten gehen verloren\n"
 "Sind Sie sicher?"
 
-#: Src/wptGPGPrefsDlg.cpp:141 Src/wptKeyManagerDlg.cpp:1611
+#: Src/wptGPGPrefsDlg.cpp:141 Src/wptKeyManagerDlg.cpp:1655
 #: Src/wptMainProc.cpp:588
 msgid "GnuPG Preferences"
 msgstr "GnuPG-Einstellungen"
@@ -1831,43 +1819,43 @@
 msgid "&Overwrite default settings"
 msgstr "&Überschreibe Voreinstellungen"
 
-#: Src/wptGPGPrefsDlg.cpp:205
+#: Src/wptGPGPrefsDlg.cpp:209
 msgid "Please enter the GnuPG home directory."
 msgstr "Bitte GnuPG-HOME-Verzeichnis eingeben."
 
-#: Src/wptGPGPrefsDlg.cpp:217
+#: Src/wptGPGPrefsDlg.cpp:221
 msgid "Could not save 'HomeDir' in the registry."
 msgstr "Konnte 'HomeDir' nicht in Registry schreiben"
 
-#: Src/wptGPGPrefsDlg.cpp:223
+#: Src/wptGPGPrefsDlg.cpp:227
 msgid "Please enter where GPG.exe is located."
 msgstr "Bitte Pfad zu GPG.EXE eingeben."
 
-#: Src/wptGPGPrefsDlg.cpp:228
+#: Src/wptGPGPrefsDlg.cpp:232
 msgid "Could not find the GPG program in this directory."
 msgstr "Konnte GPG-Programm nicht in diesem Verzeichnis finden."
 
-#: Src/wptGPGPrefsDlg.cpp:233
+#: Src/wptGPGPrefsDlg.cpp:237
 msgid "Could not save 'gpgProgram' in the registry"
 msgstr "Konnte 'gpgProgram' nicht in Registry schreiben"
 
-#: Src/wptGPGPrefsDlg.cpp:252
+#: Src/wptGPGPrefsDlg.cpp:257
 msgid "Could not get GPG config file"
 msgstr "Konnte Konfigurationsdatei nicht öffnen"
 
-#: Src/wptGPGPrefsDlg.cpp:285
+#: Src/wptGPGPrefsDlg.cpp:291
 msgid "Choose GPG home directory"
 msgstr "Wählen Sie das GPG HOME-Verzeichnis"
 
-#: Src/wptGPGPrefsDlg.cpp:304
+#: Src/wptGPGPrefsDlg.cpp:311
 msgid "Choose locale directory"
 msgstr "Verzeichnis für Sprachdateien auswählen"
 
-#: Src/wptGPGPrefsDlg.cpp:310
+#: Src/wptGPGPrefsDlg.cpp:317
 msgid "Choose GPG binary"
 msgstr "Wählen Sie GPG.EXE Datei"
 
-#: Src/wptGPGPrefsDlg.cpp:311
+#: Src/wptGPGPrefsDlg.cpp:318
 msgid "Executable Files (*.exe)"
 msgstr ""
 
@@ -1925,27 +1913,27 @@
 #: Src/wptKeyManager.cpp:354 Src/wptKeyManager.cpp:361
 #: Src/wptKeyManager.cpp:363 Src/wptKeyManager.cpp:384
 #: Src/wptKeyManager.cpp:393 Src/wptKeyManager.cpp:397
-#: Src/wptKeyManager.cpp:417 Src/wptKeyManager.cpp:439
-#: Src/wptKeyManager.cpp:444 Src/wptKeyManager.cpp:447
-#: Src/wptKeyManager.cpp:452 Src/wptKeyManager.cpp:458
-#: Src/wptKeyManager.cpp:463 Src/wptKeyManager.cpp:553
-#: Src/wptKeyManager.cpp:561 Src/wptKeyManager.cpp:627
-#: Src/wptKeyManager.cpp:656 Src/wptKeyManager.cpp:666
-#: Src/wptKeyManager.cpp:677 Src/wptKeyManager.cpp:703
-#: Src/wptKeyManager.cpp:728 Src/wptKeyManager.cpp:735
-#: Src/wptKeyManager.cpp:760 Src/wptKeyManager.cpp:765
-#: Src/wptKeyManager.cpp:793 Src/wptKeyManager.cpp:835
-#: Src/wptKeyManager.cpp:842 Src/wptKeyManager.cpp:902
-#: Src/wptKeyManager.cpp:932 Src/wptKeyManagerDlg.cpp:1101
-#: Src/wptKeyManagerDlg.cpp:1118 Src/wptKeyManagerDlg.cpp:1398
-#: Src/wptKeyManagerDlg.cpp:1420 Src/wptKeyManagerDlg.cpp:1439
-#: Src/wptKeyManagerDlg.cpp:1447 Src/wptKeyManagerDlg.cpp:1457
-#: Src/wptKeyManagerDlg.cpp:1473 Src/wptKeyManagerDlg.cpp:1479
-#: Src/wptKeyManagerDlg.cpp:1492 Src/wptKeyManagerDlg.cpp:1512
-#: Src/wptKeyManagerDlg.cpp:1544 Src/wptKeyManagerDlg.cpp:1582
-#: Src/wptKeyManagerDlg.cpp:1646 Src/wptKeyManagerDlg.cpp:1664
-#: Src/wptKeyManagerDlg.cpp:1669 Src/wptKeyManagerDlg.cpp:1674
-#: Src/wptKeyManagerDlg.cpp:1766 Src/wptKeyManagerDlg.cpp:1945
+#: Src/wptKeyManager.cpp:417 Src/wptKeyManager.cpp:458
+#: Src/wptKeyManager.cpp:463 Src/wptKeyManager.cpp:466
+#: Src/wptKeyManager.cpp:471 Src/wptKeyManager.cpp:477
+#: Src/wptKeyManager.cpp:482 Src/wptKeyManager.cpp:617
+#: Src/wptKeyManager.cpp:625 Src/wptKeyManager.cpp:695
+#: Src/wptKeyManager.cpp:724 Src/wptKeyManager.cpp:734
+#: Src/wptKeyManager.cpp:745 Src/wptKeyManager.cpp:771
+#: Src/wptKeyManager.cpp:796 Src/wptKeyManager.cpp:803
+#: Src/wptKeyManager.cpp:828 Src/wptKeyManager.cpp:833
+#: Src/wptKeyManager.cpp:861 Src/wptKeyManager.cpp:908
+#: Src/wptKeyManager.cpp:915 Src/wptKeyManager.cpp:975
+#: Src/wptKeyManager.cpp:1005 Src/wptKeyManagerDlg.cpp:1155
+#: Src/wptKeyManagerDlg.cpp:1172 Src/wptKeyManagerDlg.cpp:1453
+#: Src/wptKeyManagerDlg.cpp:1475 Src/wptKeyManagerDlg.cpp:1494
+#: Src/wptKeyManagerDlg.cpp:1502 Src/wptKeyManagerDlg.cpp:1512
+#: Src/wptKeyManagerDlg.cpp:1528 Src/wptKeyManagerDlg.cpp:1534
+#: Src/wptKeyManagerDlg.cpp:1547 Src/wptKeyManagerDlg.cpp:1567
+#: Src/wptKeyManagerDlg.cpp:1596 Src/wptKeyManagerDlg.cpp:1625
+#: Src/wptKeyManagerDlg.cpp:1684 Src/wptKeyManagerDlg.cpp:1702
+#: Src/wptKeyManagerDlg.cpp:1707 Src/wptKeyManagerDlg.cpp:1712
+#: Src/wptKeyManagerDlg.cpp:1799 Src/wptKeyManagerDlg.cpp:1982
 #: Src/wptKeysigDlg.cpp:93 Src/wptKeysigDlg.cpp:105 Src/wptKeysigDlg.cpp:277
 #: Src/wptKeysigDlg.cpp:354 Src/wptKeysigDlg.cpp:363 Src/wptKeysigDlg.cpp:407
 #: Src/wptMainProc.cpp:398 Src/wptMainProc.cpp:551 Src/wptMainProc.cpp:559
@@ -1953,16 +1941,16 @@
 msgstr "Schlüsselverwaltung"
 
 #: Src/wptImportList.cpp:264 Src/wptKeyEditDlgs.cpp:206
-#: Src/wptKeyEditDlgs.cpp:1043 Src/wptKeyEditDlgs.cpp:1104
-#: Src/wptKeyEditDlgs.cpp:1376 Src/wptKeyEditDlgs.cpp:1396
-#: Src/wptKeyEditDlgs.cpp:1435 Src/wptKeyEditDlgs.cpp:1466
+#: Src/wptKeyEditDlgs.cpp:1063 Src/wptKeyEditDlgs.cpp:1124
+#: Src/wptKeyEditDlgs.cpp:1398 Src/wptKeyEditDlgs.cpp:1418
+#: Src/wptKeyEditDlgs.cpp:1457 Src/wptKeyEditDlgs.cpp:1488
 #: Src/wptKeylist.cpp:392 Src/wptKeyPropsDlg.cpp:161 Src/wptKeysigDlg.cpp:143
 #: Src/wptKeysigDlg.cpp:208
 msgid "Revoked"
 msgstr "Widerrufen"
 
 #: Src/wptImportList.cpp:266 Src/wptKeyEditDlgs.cpp:208
-#: Src/wptKeyEditDlgs.cpp:1041 Src/wptKeyEditDlgs.cpp:1297
+#: Src/wptKeyEditDlgs.cpp:1061 Src/wptKeyEditDlgs.cpp:1319
 #: Src/wptKeylist.cpp:394 Src/wptKeyPropsDlg.cpp:158 Src/wptKeysigDlg.cpp:142
 #: Src/wptKeysigDlg.cpp:209
 msgid "Expired"
@@ -1976,7 +1964,7 @@
 msgid "public key"
 msgstr "öffentlicher Schlüssel"
 
-#: Src/wptImportList.cpp:303 Src/wptKeyEditDlgs.cpp:1121
+#: Src/wptImportList.cpp:303 Src/wptKeyEditDlgs.cpp:1141
 msgid "Invalid user ID"
 msgstr "Ungültige Benutzerkennung"
 
@@ -1992,7 +1980,7 @@
 msgid "Size"
 msgstr "Größe"
 
-#: Src/wptImportList.cpp:354 Src/wptKeyEditDlgs.cpp:965 Src/wptKeylist.cpp:540
+#: Src/wptImportList.cpp:354 Src/wptKeyEditDlgs.cpp:985 Src/wptKeylist.cpp:540
 #: Src/wptKeylist.cpp:548 Src/wptKeyManagerDlg.cpp:865
 #: Src/wptKeyManagerDlg.cpp:955 Src/wptKeyRevokersDlg.cpp:58
 #: Src/wptKeyserverSearchDlg.cpp:52 Src/wptSigList.cpp:55
@@ -2000,8 +1988,8 @@
 msgid "Key ID"
 msgstr "Schlüssel-ID"
 
-#: Src/wptImportList.cpp:355 Src/wptKeyEditDlgs.cpp:966
-#: Src/wptKeyEditDlgs.cpp:1073 Src/wptKeylist.cpp:554
+#: Src/wptImportList.cpp:355 Src/wptKeyEditDlgs.cpp:986
+#: Src/wptKeyEditDlgs.cpp:1093 Src/wptKeylist.cpp:554
 #: Src/wptKeyManagerDlg.cpp:871 Src/wptKeyManagerDlg.cpp:958
 #: Src/wptKeyserverSearchDlg.cpp:53 Src/wptSigList.cpp:54
 msgid "Creation"
@@ -2042,7 +2030,7 @@
 msgid "Ultimate"
 msgstr "Absolut"
 
-#: Src/wptKeyEditDlgs.cpp:194 Src/wptKeyEditDlgs.cpp:1038
+#: Src/wptKeyEditDlgs.cpp:194 Src/wptKeyEditDlgs.cpp:1058
 #: Src/wptKeylist.cpp:235 Src/wptKeylist.cpp:354
 msgid "Never"
 msgstr "Niemals"
@@ -2130,10 +2118,10 @@
 
 #: Src/wptKeyEditDlgs.cpp:371 Src/wptKeyEditDlgs.cpp:450
 #: Src/wptKeyEditDlgs.cpp:532 Src/wptKeyEditDlgs.cpp:699
-#: Src/wptKeyEditDlgs.cpp:1398 Src/wptKeyEditDlgs.cpp:1468
-#: Src/wptKeyEditDlgs.cpp:1548 Src/wptKeyEditDlgs.cpp:1726
+#: Src/wptKeyEditDlgs.cpp:1420 Src/wptKeyEditDlgs.cpp:1490
+#: Src/wptKeyEditDlgs.cpp:1570 Src/wptKeyEditDlgs.cpp:1748
 #: Src/wptKeygenDlg.cpp:496 Src/wptKeygenDlg.cpp:612
-#: Src/wptKeyPropsDlg.cpp:356 Src/wptOwnertrustDlg.cpp:124
+#: Src/wptKeyPropsDlg.cpp:355 Src/wptOwnertrustDlg.cpp:124
 #: Src/wptOwnertrustDlg.cpp:136
 msgid "GnuPG Status"
 msgstr "GnuPG-Status"
@@ -2155,9 +2143,9 @@
 msgid "Add Revoker"
 msgstr "\"Revoker\" hinzufügen"
 
-#: Src/wptKeyEditDlgs.cpp:427 Src/wptKeyEditDlgs.cpp:1430
-#: Src/wptKeyEditDlgs.cpp:1485 Src/wptKeyEditDlgs.cpp:1527
-#: Src/wptKeyEditDlgs.cpp:1667 Src/wptKeyEditDlgs.cpp:1698
+#: Src/wptKeyEditDlgs.cpp:427 Src/wptKeyEditDlgs.cpp:1452
+#: Src/wptKeyEditDlgs.cpp:1507 Src/wptKeyEditDlgs.cpp:1549
+#: Src/wptKeyEditDlgs.cpp:1689 Src/wptKeyEditDlgs.cpp:1720
 msgid "Please select a user ID."
 msgstr "Bitte eine Benutzerkennung wählen."
 
@@ -2245,9 +2233,9 @@
 
 #: Src/wptKeyEditDlgs.cpp:727 Src/wptKeyEditDlgs.cpp:786
 #: Src/wptKeyEditDlgs.cpp:855 Src/wptKeyEditDlgs.cpp:868
-#: Src/wptKeyEditDlgs.cpp:909 Src/wptKeyEditDlgs.cpp:1286
-#: Src/wptKeyEditDlgs.cpp:1359 Src/wptKeyEditDlgs.cpp:1419
-#: Src/wptKeyManagerDlg.cpp:1446
+#: Src/wptKeyEditDlgs.cpp:927 Src/wptKeyEditDlgs.cpp:1308
+#: Src/wptKeyEditDlgs.cpp:1381 Src/wptKeyEditDlgs.cpp:1441
+#: Src/wptKeyManagerDlg.cpp:1501
 msgid "There is no secret key available!"
 msgstr "Kein geheimer Schlüssel vorhanden!"
 
@@ -2259,7 +2247,12 @@
 msgid "Preferred keyserver successfully set."
 msgstr "Bevorzugter Keyserver wurde erfolgreich gesetzt."
 
-#: Src/wptKeyEditDlgs.cpp:914
+#: Src/wptKeyEditDlgs.cpp:887 Src/wptKeyEditOwnertrustDlg.cpp:55
+#: Src/wptKeyPropsDlg.cpp:347
+msgid "Change Ownertrust"
+msgstr "Besitzervertrauen ändern"
+
+#: Src/wptKeyEditDlgs.cpp:932
 msgid ""
 "Cannot change passphrase because the key\n"
 "is protected with the IDEA encryption algorithm."
@@ -2267,15 +2260,15 @@
 "Kann das Passwort das Schlüssels nicht ändern, da der \n"
 "Schlüssel mit dem IDEA Verschlüsselungs-Algorithmus gesichert ist."
 
-#: Src/wptKeyEditDlgs.cpp:921
+#: Src/wptKeyEditDlgs.cpp:939
 msgid "Current (old) Passphrase"
 msgstr "Aktuelles (altes) Passwort"
 
-#: Src/wptKeyEditDlgs.cpp:925
+#: Src/wptKeyEditDlgs.cpp:943
 msgid "New Passphrase"
 msgstr "Neues Passwort"
 
-#: Src/wptKeyEditDlgs.cpp:932 Src/wptPassphraseDlg.cpp:174
+#: Src/wptKeyEditDlgs.cpp:950 Src/wptPassphraseDlg.cpp:174
 msgid ""
 "The passphrase contains 8-bit characters.\n"
 "It is not suggested to use charset specific characters."
@@ -2283,44 +2276,44 @@
 "Das Passwort enthält 8-bit Zeichen.\n"
 "Es ist nicht zu empfehlen zeichensatzspezifische Zeichen zu benutzen."
 
-#: Src/wptKeyEditDlgs.cpp:947
+#: Src/wptKeyEditDlgs.cpp:965
 msgid "Change Passwd"
 msgstr "Passwort ändern"
 
-#: Src/wptKeyEditDlgs.cpp:949
+#: Src/wptKeyEditDlgs.cpp:967
 msgid "Passphrase successfully changed."
 msgstr "Passwort erfolgreich geändert."
 
-#: Src/wptKeyEditDlgs.cpp:964
+#: Src/wptKeyEditDlgs.cpp:984
 msgid "Description"
 msgstr "Beschreibung"
 
-#: Src/wptKeyEditDlgs.cpp:967
+#: Src/wptKeyEditDlgs.cpp:987
 msgid "Expires"
 msgstr "Verfällt"
 
-#: Src/wptKeyEditDlgs.cpp:981 Src/wptKeyEditDlgs.cpp:1079
+#: Src/wptKeyEditDlgs.cpp:1001 Src/wptKeyEditDlgs.cpp:1099
 msgid "Could not find key."
 msgstr "Konnte Schlüssel nicht finden"
 
-#: Src/wptKeyEditDlgs.cpp:988
+#: Src/wptKeyEditDlgs.cpp:1008
 msgid "No subkey(s) found."
 msgstr "Kein(e) Unterschlüssel gefunden."
 
-#: Src/wptKeyEditDlgs.cpp:1070 Src/wptKeylist.cpp:543 Src/wptKeylist.cpp:552
+#: Src/wptKeyEditDlgs.cpp:1090 Src/wptKeylist.cpp:543 Src/wptKeylist.cpp:552
 #: Src/wptKeyManagerDlg.cpp:869
 msgid "Validity"
 msgstr "Gültigkeit"
 
-#: Src/wptKeyEditDlgs.cpp:1072
+#: Src/wptKeyEditDlgs.cpp:1092
 msgid "Email"
 msgstr "Email"
 
-#: Src/wptKeyEditDlgs.cpp:1085
+#: Src/wptKeyEditDlgs.cpp:1105
 msgid "No user ID(s) found."
 msgstr "Keine Benutzerkennung(en) gefunden."
 
-#: Src/wptKeyEditDlgs.cpp:1200
+#: Src/wptKeyEditDlgs.cpp:1222
 msgid ""
 "ADDUID   \t\tadd a user ID\r\n"
 "ADDPHOTO  \t\tadd a photo ID\r\n"
@@ -2355,19 +2348,19 @@
 "ENABLE    \t\tSchlüssel aktivieren\r\n"
 "SHOWPHOTO \t\tFoto ID anzeigen\r\n"
 
-#: Src/wptKeyEditDlgs.cpp:1221
+#: Src/wptKeyEditDlgs.cpp:1243
 msgid "Key Edit Help"
 msgstr "Hilfe zum Schlüssel bearbeiten"
 
-#: Src/wptKeyEditDlgs.cpp:1237
+#: Src/wptKeyEditDlgs.cpp:1259
 msgid "Primary key can not be deleted!"
 msgstr "Primärer Schlüssel kann nicht gelöscht werden!"
 
-#: Src/wptKeyEditDlgs.cpp:1245
+#: Src/wptKeyEditDlgs.cpp:1267
 msgid "Primary subkey can not be deleted!"
 msgstr "Primärer Unterschlüssel kann nicht gelöscht werden!"
 
-#: Src/wptKeyEditDlgs.cpp:1251
+#: Src/wptKeyEditDlgs.cpp:1273
 #, c-format
 msgid ""
 "\"Subkey %s.\"\n"
@@ -2384,15 +2377,15 @@
 "\n"
 "Möchten Sie diesen Unterschlüssel wirklich löschen?"
 
-#: Src/wptKeyEditDlgs.cpp:1263
+#: Src/wptKeyEditDlgs.cpp:1285
 msgid "Delete Subkey"
 msgstr "Unterschlüssel löschen"
 
-#: Src/wptKeyEditDlgs.cpp:1267
+#: Src/wptKeyEditDlgs.cpp:1289
 msgid "Subkey successfully deleted."
 msgstr "Unterschlüssel erfolgreich gelöscht."
 
-#: Src/wptKeyEditDlgs.cpp:1298
+#: Src/wptKeyEditDlgs.cpp:1320
 msgid ""
 "Key already expired.\n"
 "\n"
@@ -2402,19 +2395,19 @@
 "\n"
 "Wollen Sie das Ablaufdatum ändern?"
 
-#: Src/wptKeyEditDlgs.cpp:1307 Src/wptKeyEditDlgs.cpp:1310
+#: Src/wptKeyEditDlgs.cpp:1329 Src/wptKeyEditDlgs.cpp:1332
 msgid "Key Expiration Date"
 msgstr "Ablaufdatum"
 
-#: Src/wptKeyEditDlgs.cpp:1331
+#: Src/wptKeyEditDlgs.cpp:1353
 msgid "Expire Subkey"
 msgstr "Untschlüssel Ablauf"
 
-#: Src/wptKeyEditDlgs.cpp:1337
+#: Src/wptKeyEditDlgs.cpp:1359
 msgid "Subkey expire date successfully set."
 msgstr "Unterschlüsselablaufdatum erfolgreich hinzugefügt."
 
-#: Src/wptKeyEditDlgs.cpp:1368
+#: Src/wptKeyEditDlgs.cpp:1390
 msgid ""
 "No subkeys were found, if you want to revoke the\n"
 "whole key, please use the Key Manager command directly.\n"
@@ -2426,31 +2419,31 @@
 "\n"
 "Diese Funktion ist nur für das Widerrufen einzelner Unterschlüssel gedacht."
 
-#: Src/wptKeyEditDlgs.cpp:1377
+#: Src/wptKeyEditDlgs.cpp:1399
 msgid "Key already revoked."
 msgstr "Der Schlüssel ist bereits widerrufen."
 
-#: Src/wptKeyEditDlgs.cpp:1394
+#: Src/wptKeyEditDlgs.cpp:1416
 msgid "Revoke Subkey"
 msgstr "Unterschlüssel widerrufen"
 
-#: Src/wptKeyEditDlgs.cpp:1398
+#: Src/wptKeyEditDlgs.cpp:1420
 msgid "Subkey successfully revoked."
 msgstr "Unterschlüssel erfolgreich widerrufen."
 
-#: Src/wptKeyEditDlgs.cpp:1420
+#: Src/wptKeyEditDlgs.cpp:1442
 msgid "Revoke user ID"
 msgstr "Benutzerkennung widerrufen"
 
-#: Src/wptKeyEditDlgs.cpp:1425
+#: Src/wptKeyEditDlgs.cpp:1447
 msgid "Key has only one user ID."
 msgstr "Schlüssel hat nur eine Benutzerkennung."
 
-#: Src/wptKeyEditDlgs.cpp:1436
+#: Src/wptKeyEditDlgs.cpp:1458
 msgid "This user ID has been already revoked."
 msgstr "Diese Benutzerkennung wurde bereits widerrufen."
 
-#: Src/wptKeyEditDlgs.cpp:1442
+#: Src/wptKeyEditDlgs.cpp:1464
 #, c-format
 msgid ""
 "user ID \"%s\".\n"
@@ -2460,39 +2453,39 @@
 "Benutzerkennung %s.\r\n"
 "Diese Benutzerkennung wirklich widerrufen?"
 
-#: Src/wptKeyEditDlgs.cpp:1464
+#: Src/wptKeyEditDlgs.cpp:1486
 msgid "Revoke User ID"
 msgstr "Benutzerkennung widerrufen"
 
-#: Src/wptKeyEditDlgs.cpp:1468
+#: Src/wptKeyEditDlgs.cpp:1490
 msgid "User ID successfully revoked"
 msgstr "Benutzerkennung erfolgreich widerrufen"
 
-#: Src/wptKeyEditDlgs.cpp:1545
+#: Src/wptKeyEditDlgs.cpp:1567
 msgid "Primary"
 msgstr "Primär"
 
-#: Src/wptKeyEditDlgs.cpp:1548
+#: Src/wptKeyEditDlgs.cpp:1570
 msgid "User ID successfully flagged"
 msgstr "Benutzerkennung erfolgreich gekennzeichnet"
 
-#: Src/wptKeyEditDlgs.cpp:1634
+#: Src/wptKeyEditDlgs.cpp:1656
 msgid "No preferences available."
 msgstr "Keine Präferenzen verfübar."
 
-#: Src/wptKeyEditDlgs.cpp:1640
+#: Src/wptKeyEditDlgs.cpp:1662
 msgid "MDC feature"
 msgstr "Unterstützt MDC"
 
-#: Src/wptKeyEditDlgs.cpp:1642 Src/wptKeyeditSetPrefDlg.cpp:116
+#: Src/wptKeyEditDlgs.cpp:1664 Src/wptKeyeditSetPrefDlg.cpp:116
 msgid "Key Preferences"
 msgstr "Schlüsseleinstellungen"
 
-#: Src/wptKeyEditDlgs.cpp:1693
+#: Src/wptKeyEditDlgs.cpp:1715
 msgid "Primary user ID can not be deleted!"
 msgstr "Primäre Benutzerkennung kann nicht gelöscht werden!"
 
-#: Src/wptKeyEditDlgs.cpp:1704
+#: Src/wptKeyEditDlgs.cpp:1726
 #, c-format
 msgid ""
 "user ID \"%s\".\n"
@@ -2502,39 +2495,35 @@
 "Benutzerkennung %s.\r\n"
 "Diese Benutzerkennung wirklich löschen?"
 
-#: Src/wptKeyEditDlgs.cpp:1722
+#: Src/wptKeyEditDlgs.cpp:1744
 msgid "Delete user ID"
 msgstr "Benutzerkennung löschen"
 
-#: Src/wptKeyEditDlgs.cpp:1726
+#: Src/wptKeyEditDlgs.cpp:1748
 msgid "User ID successfully deleted"
 msgstr "Benutzerkennung erfolgreich gelöscht"
 
-#: Src/wptKeyEditDlgs.cpp:1809
+#: Src/wptKeyEditDlgs.cpp:1839
 msgid "Could not set subkey window procedure."
 msgstr "Konnte \"subkey window procedure\" nicht setzen."
 
-#: Src/wptKeyEditDlgs.cpp:1819
+#: Src/wptKeyEditDlgs.cpp:1849
 msgid "Could not set user ID window procedure."
 msgstr "Konnte \"userID window procedure\" nicht setzen."
 
 # c:\oss\winpt-gpgme\src\wptKeyEditDlgs.cpp:1739
-#: Src/wptKeyEditDlgs.cpp:1827
+#: Src/wptKeyEditDlgs.cpp:1857
 msgid "Command>"
 msgstr "Kommando>"
 
-#: Src/wptKeyEditDlgs.cpp:1859
+#: Src/wptKeyEditDlgs.cpp:1889
 msgid "Please select a command."
 msgstr "Bitte einen Befehl auswählen."
 
-#: Src/wptKeyEditDlgs.cpp:1864
+#: Src/wptKeyEditDlgs.cpp:1893
 msgid "This command cannot be used with PGP 2 (v3) keys.\n"
 msgstr "Dieser Befehl kann mit PGP2 (v3) Schlüsseln nicht verwendet werden.\n"
 
-#: Src/wptKeyEditOwnertrustDlg.cpp:55 Src/wptKeyPropsDlg.cpp:346
-msgid "Change Ownertrust"
-msgstr "Besitzervertrauen ändern"
-
 #: Src/wptKeyEditOwnertrustDlg.cpp:57 Src/wptKeyPropsDlg.cpp:60
 msgid "Don't know"
 msgstr "Ich weiss nicht"
@@ -2571,7 +2560,7 @@
 
 #: Src/wptKeyEditOwnertrustDlg.cpp:88 Src/wptKeyEditOwnertrustDlg.cpp:95
 #: Src/wptKeyEditOwnertrustDlg.cpp:104 Src/wptKeyManagerDlg.cpp:926
-#: Src/wptKeyManagerDlg.cpp:1713 Src/wptKeyPropsDlg.cpp:291
+#: Src/wptKeyManagerDlg.cpp:1751 Src/wptKeyPropsDlg.cpp:291
 #: Src/wptOwnertrustDlg.cpp:97 Src/wptOwnertrustDlg.cpp:121
 #: Src/wptOwnertrustDlg.cpp:133
 msgid "Ownertrust"
@@ -2594,7 +2583,7 @@
 #: Src/wptKeygenDlg.cpp:421 Src/wptKeygenDlg.cpp:426 Src/wptKeygenDlg.cpp:432
 #: Src/wptKeygenDlg.cpp:439 Src/wptKeygenDlg.cpp:451 Src/wptKeygenDlg.cpp:458
 #: Src/wptKeygenDlg.cpp:493 Src/wptKeygenDlg.cpp:586
-#: Src/wptKeyManagerDlg.cpp:1573 Src/wptPassphraseDlg.cpp:94
+#: Src/wptKeyManagerDlg.cpp:1616 Src/wptPassphraseDlg.cpp:94
 msgid "Key Generation"
 msgstr "Schlüsselerzeugung"
 
@@ -2748,7 +2737,7 @@
 
 #: Src/wptKeygenDlg.cpp:545 Src/wptKeygenDlg.cpp:567 Src/wptKeygenDlg.cpp:572
 #: Src/wptKeygenDlg.cpp:578 Src/wptKeygenDlg.cpp:583 Src/wptKeygenDlg.cpp:607
-#: Src/wptKeyManagerDlg.cpp:1596
+#: Src/wptKeyManagerDlg.cpp:1639
 msgid "Key Generation Wizard"
 msgstr "Schlüsselerzeugungs-Assistent"
 
@@ -2918,11 +2907,11 @@
 msgid "Key(s) successfully saved in '%s'."
 msgstr "Schlüssel erfolgreich in '%s' gespeichert."
 
-#: Src/wptKeyManager.cpp:451
+#: Src/wptKeyManager.cpp:470
 msgid "No valid OpenPGP keys found."
 msgstr "Keine gültigen OpenPGP-Schlüssel gefunden."
 
-#: Src/wptKeyManager.cpp:456
+#: Src/wptKeyManager.cpp:475
 msgid ""
 "The key you want to import is dash escacped.\n"
 "Do you want to extract the key?"
@@ -2930,38 +2919,50 @@
 "Der Import-Schlüssel ist beschädigt.\n"
 "Möchten Sie den Schlüssel extrahieren?"
 
-#: Src/wptKeyManager.cpp:462
+#: Src/wptKeyManager.cpp:481
 msgid "Cannot import dash escaped OpenPGP keys."
 msgstr "Kann keine beschädigten OpenPGP-Schlüssel importieren."
 
-#: Src/wptKeyManager.cpp:489 Src/wptKeyManager.cpp:500
-#: Src/wptKeyManager.cpp:514
+#: Src/wptKeyManager.cpp:510 Src/wptKeyManager.cpp:645
+msgid ""
+"Key without a self signature was dectected!\n"
+"(This key is NOT usable for encryption, etc)\n"
+msgstr ""
+"Schlüssel ohne Eigensignatur erkannt!\n"
+"(Dieser Schlüssel ist für Verschlüsselung, etc. NICHT verwendbar)\n"
+
+#: Src/wptKeyManager.cpp:541 Src/wptKeyManager.cpp:552
+#: Src/wptKeyManager.cpp:566
 msgid "Key Import HTTP"
 msgstr "Schlüssel Import HTTP"
 
 # c:\oss\winpt-gpgme\src\wptKeyManager.cpp:448
-#: Src/wptKeyManager.cpp:489
+#: Src/wptKeyManager.cpp:541
 #, c-format
 msgid "Invalid HTTP URL: %s"
 msgstr "Ungültige HTTP URL: %s"
 
-#: Src/wptKeyManager.cpp:541
+#: Src/wptKeyManager.cpp:592
+msgid "Choose Name of the Key File"
+msgstr "Den Namen der Schlüsseldatei wählen"
+
+#: Src/wptKeyManager.cpp:605
 msgid "File Import"
 msgstr "Dateiimport"
 
-#: Src/wptKeyManager.cpp:552
+#: Src/wptKeyManager.cpp:616
 msgid "Could not read key-data from file."
 msgstr "Konnte Schlüsseldaten nicht aus Datei lesen."
 
-#: Src/wptKeyManager.cpp:632
+#: Src/wptKeyManager.cpp:700
 msgid "Do you really want to confirm each key?"
 msgstr "Wollen Sie wirklich jeden Schlüssel bestätigen?"
 
-#: Src/wptKeyManager.cpp:633
+#: Src/wptKeyManager.cpp:701
 msgid "Delete Confirmation"
 msgstr "Löschen Bestätigen"
 
-#: Src/wptKeyManager.cpp:657
+#: Src/wptKeyManager.cpp:725
 #, c-format
 msgid ""
 "Do you really want to delete this key?\n"
@@ -2973,7 +2974,7 @@
 "%s"
 
 # c:\oss\winpt-gpgme\src\wptKeyManager.cpp:605
-#: Src/wptKeyManager.cpp:667
+#: Src/wptKeyManager.cpp:735
 #, c-format
 msgid ""
 "Do you really want to delete this KEY PAIR?\n"
@@ -2990,7 +2991,7 @@
 "\n"
 "%s"
 
-#: Src/wptKeyManager.cpp:674
+#: Src/wptKeyManager.cpp:742
 msgid ""
 "The actual secret key is stored on a smartcard.\n"
 "Only the public key and the secret key \n"
@@ -3000,34 +3001,34 @@
 "Nur der öffentliche Schlüssel und der Zeiger auf den geheimen\n"
 "Schlüssel werden gelöscht.\n"
 
-#: Src/wptKeyManager.cpp:736
+#: Src/wptKeyManager.cpp:804
 #, c-format
 msgid "Do you really want to send '%s' to keyserver %s?"
 msgstr "Wollen Sie '%s' wirklich zum Schlüsselserver %s senden?"
 
-#: Src/wptKeyManager.cpp:759
+#: Src/wptKeyManager.cpp:827
 msgid "Please only select one key."
 msgstr "Bitte nur einen Schlüssel auswählen."
 
-#: Src/wptKeyManager.cpp:834
+#: Src/wptKeyManager.cpp:907
 msgid "Could not connect to keyserver, abort procedure."
 msgstr ""
 "Verbindung zum Keyserver fehlgeschlagen; Die Prozedur wird abgebrochen."
 
-#: Src/wptKeyManager.cpp:841
+#: Src/wptKeyManager.cpp:914
 msgid "Do you really want to refresh all keys in the keyring?"
 msgstr "Wirklich alle Schlüssel im Schlüsselbund neu laden?"
 
-#: Src/wptKeyManager.cpp:916
+#: Src/wptKeyManager.cpp:989
 msgid "Search"
 msgstr "Suchen"
 
-#: Src/wptKeyManager.cpp:916
+#: Src/wptKeyManager.cpp:989
 msgid "Search for:"
 msgstr "Suche nach:"
 
 # c:\oss\winpt-gpgme\src\wptKeyManager.cpp:896
-#: Src/wptKeyManager.cpp:927
+#: Src/wptKeyManager.cpp:1000
 #, c-format
 msgid "String pattern \"%s\" not found."
 msgstr "Zeichenkette \"%s\" nicht gefunden."
@@ -3061,7 +3062,7 @@
 msgid "Key"
 msgstr "Schlüssel"
 
-#: Src/wptKeyManagerDlg.cpp:922 Src/wptKeyManagerDlg.cpp:1132
+#: Src/wptKeyManagerDlg.cpp:922 Src/wptKeyManagerDlg.cpp:1186
 msgid "Groups"
 msgstr "Gruppen"
 
@@ -3115,7 +3116,7 @@
 msgid "&List Signatures"
 msgstr "Signaturen anzeigen"
 
-#: Src/wptKeyManagerDlg.cpp:941 Src/wptKeyManagerDlg.cpp:1487
+#: Src/wptKeyManagerDlg.cpp:941 Src/wptKeyManagerDlg.cpp:1542
 #: Src/wptKeyTrustPathDlg.cpp:130
 msgid "List Trust Path"
 msgstr "Zeige Vertrauenspfad"
@@ -3242,89 +3243,89 @@
 msgid "Send to Keyserver"
 msgstr "Sende an Keyserver"
 
-#: Src/wptKeyManagerDlg.cpp:1117
+#: Src/wptKeyManagerDlg.cpp:1171
 msgid "Could not set keylist window procedure."
 msgstr "Konnte \"keylist window procedure\" nicht setzen."
 
 # c:\oss\winpt-gpgme\src\wptFirstRunDlg.cpp:42
-#: Src/wptKeyManagerDlg.cpp:1234
+#: Src/wptKeyManagerDlg.cpp:1289
 msgid "Generate new key pair"
 msgstr "Neues Schlüsselpaar erzeugen"
 
-#: Src/wptKeyManagerDlg.cpp:1238
+#: Src/wptKeyManagerDlg.cpp:1293
 msgid "Search for a specific key"
 msgstr "Suche nach einem bestimmten Schlüssel"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:842
-#: Src/wptKeyManagerDlg.cpp:1242
+#: Src/wptKeyManagerDlg.cpp:1297
 msgid "Delete key from keyring"
 msgstr "Schlüssel aus Keyring löschen"
 
-#: Src/wptKeyManagerDlg.cpp:1246
+#: Src/wptKeyManagerDlg.cpp:1301
 msgid "Show key properties"
 msgstr "Schlüsseleigenschaften anzeigen"
 
-#: Src/wptKeyManagerDlg.cpp:1250
+#: Src/wptKeyManagerDlg.cpp:1305
 msgid "Sign key"
 msgstr "Signiere Schlüssel"
 
-#: Src/wptKeyManagerDlg.cpp:1254
+#: Src/wptKeyManagerDlg.cpp:1309
 msgid "Copy key to clipboard"
 msgstr "Kopiere Schlüssel in Ablage"
 
-#: Src/wptKeyManagerDlg.cpp:1258
+#: Src/wptKeyManagerDlg.cpp:1313
 msgid "Paste key from clipboard"
 msgstr "Schlüssel aus Ablage einfügen"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:854
-#: Src/wptKeyManagerDlg.cpp:1262
+#: Src/wptKeyManagerDlg.cpp:1317
 msgid "Import key to keyring"
 msgstr "In Schlüsselbund importieren"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:858
-#: Src/wptKeyManagerDlg.cpp:1266
+#: Src/wptKeyManagerDlg.cpp:1321
 msgid "Export key to a file"
 msgstr "Schlüssel in Datei exportieren"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:499
-#: Src/wptKeyManagerDlg.cpp:1385
+#: Src/wptKeyManagerDlg.cpp:1440
 msgid "New"
 msgstr "Neu"
 
-#: Src/wptKeyManagerDlg.cpp:1397
+#: Src/wptKeyManagerDlg.cpp:1452
 msgid "Could not access public keyring"
 msgstr "Konnte nicht auf öffentlichen Schlüsselbund zugreifen"
 
-#: Src/wptKeyManagerDlg.cpp:1432 Src/wptKeysignDlg.cpp:230
+#: Src/wptKeyManagerDlg.cpp:1487 Src/wptKeysignDlg.cpp:230
 #: Src/wptKeysignDlg.cpp:249 Src/wptKeysignDlg.cpp:326
 #: Src/wptKeysignDlg.cpp:343 Src/wptKeysignDlg.cpp:348
 msgid "Key Signing"
 msgstr "Schlüsselsignierung"
 
-#: Src/wptKeyManagerDlg.cpp:1456
+#: Src/wptKeyManagerDlg.cpp:1511
 msgid "Key already revoked!"
 msgstr "Schlüssel ist bereits widerrufen!"
 
-#: Src/wptKeyManagerDlg.cpp:1468 Src/wptKeyRevokeDlg.cpp:72
+#: Src/wptKeyManagerDlg.cpp:1523 Src/wptKeyRevokeDlg.cpp:72
 #: Src/wptKeyRevokeDlg.cpp:100 Src/wptKeyRevokeDlg.cpp:138
 #: Src/wptKeyRevokeDlg.cpp:143 Src/wptKeyRevokeDlg.cpp:151
 #: Src/wptKeyRevokeDlg.cpp:167 Src/wptKeyRevokeDlg.cpp:173
 msgid "Key Revocation Cert"
 msgstr "Schlüsselwiderruf Zertifikat"
 
-#: Src/wptKeyManagerDlg.cpp:1478
+#: Src/wptKeyManagerDlg.cpp:1533
 msgid "It does not make any sense with a key pair!"
 msgstr "Diese Aktion macht keinen Sinn mit einem Schlüsselpaar!"
 
-#: Src/wptKeyManagerDlg.cpp:1505
+#: Src/wptKeyManagerDlg.cpp:1560
 msgid "Key Signature List"
 msgstr "Schlüssel-Signatur-Liste"
 
-#: Src/wptKeyManagerDlg.cpp:1526 Src/wptKeyPropsDlg.cpp:287
+#: Src/wptKeyManagerDlg.cpp:1582 Src/wptKeyPropsDlg.cpp:287
 msgid "Key Properties"
 msgstr "Schlüsseleigenschaften"
 
-#: Src/wptKeyManagerDlg.cpp:1541
+#: Src/wptKeyManagerDlg.cpp:1593
 msgid ""
 "This is only useful when the keyring has been modified (sign a key...).\n"
 "Do you really want to reload the keycache?"
@@ -3333,31 +3334,27 @@
 "Signierung etc.)\n"
 "Möchten Sie den Zwischenspeicher reinitialisieren?"
 
-#: Src/wptKeyManagerDlg.cpp:1581
+#: Src/wptKeyManagerDlg.cpp:1624
 msgid "Smart Card support is not available."
 msgstr "SmartCard-Unterstützung ist nicht verfügbar."
 
-#: Src/wptKeyManagerDlg.cpp:1604 Src/wptKeyserverDlg.cpp:599
+#: Src/wptKeyManagerDlg.cpp:1647 Src/wptKeyserverDlg.cpp:601
 msgid "Keyserver Access"
 msgstr "Schlüsselserver-Zugriff"
 
-#: Src/wptKeyManagerDlg.cpp:1617
+#: Src/wptKeyManagerDlg.cpp:1664
 msgid "GnuPG Options"
 msgstr "GnuPG Optionen"
 
-#: Src/wptKeyManagerDlg.cpp:1622
-msgid "Choose Name of the Key File"
-msgstr "Den Namen der Schlüsseldatei wählen"
-
-#: Src/wptKeyManagerDlg.cpp:1668
+#: Src/wptKeyManagerDlg.cpp:1706
 msgid "There is no corresponding secret key for this key."
 msgstr "Für diesen Schlüssel ist kein geheimer Schlüssel vorhanden."
 
-#: Src/wptKeyManagerDlg.cpp:1673
+#: Src/wptKeyManagerDlg.cpp:1711
 msgid "You can only export one secret key."
 msgstr "Sie können nur einen geheimen Schlüssel exportieren."
 
-#: Src/wptKeyManagerDlg.cpp:1678
+#: Src/wptKeyManagerDlg.cpp:1716
 msgid ""
 "This operation will export your *SECRET* key!\n"
 "\n"
@@ -3375,11 +3372,11 @@
 "\n"
 "Wirklich den Schlüssel exportieren?"
 
-#: Src/wptKeyManagerDlg.cpp:1683
+#: Src/wptKeyManagerDlg.cpp:1721
 msgid "WARNING"
 msgstr "WARNUNG"
 
-#: Src/wptKeyManagerDlg.cpp:1765
+#: Src/wptKeyManagerDlg.cpp:1798
 msgid "No key was selected, select all by default."
 msgstr "Kein Schlüssel ausgewählt, es wurden alle ausgewählt."
 
@@ -3462,11 +3459,11 @@
 "Das Vertrauen solcher Schlüssel zu ändern hat keinerlei Effekt.\n"
 "Trotzdem fortfahren?"
 
-#: Src/wptKeyPropsDlg.cpp:355
+#: Src/wptKeyPropsDlg.cpp:354
 msgid "Ownertrust successfully changed."
 msgstr "Besitzervertrauen erfolgreich geändert."
 
-#: Src/wptKeyPropsDlg.cpp:369 Src/wptKeyRevokersDlg.cpp:146
+#: Src/wptKeyPropsDlg.cpp:367 Src/wptKeyRevokersDlg.cpp:146
 msgid "Key Revokers"
 msgstr "Schlüsselwiderrufer"
 
@@ -3679,13 +3676,13 @@
 msgid "Finger Keyserver"
 msgstr "Finger Keyserver"
 
-#: Src/wptKeyserverDlg.cpp:540 Src/wptKeyserverDlg.cpp:753
-#: Src/wptKeyserverDlg.cpp:773
+#: Src/wptKeyserverDlg.cpp:540 Src/wptKeyserverDlg.cpp:755
+#: Src/wptKeyserverDlg.cpp:775
 msgid "Edit Keyserver"
 msgstr "Editiere Keyserver"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:707
-#: Src/wptKeyserverDlg.cpp:541 Src/wptKeyserverDlg.cpp:631
+#: Src/wptKeyserverDlg.cpp:541 Src/wptKeyserverDlg.cpp:633
 msgid "&Add"
 msgstr "&Hinzufügen"
 
@@ -3709,66 +3706,66 @@
 msgid "Invalid port, valid numbers are < 65535"
 msgstr "Ungültiger Port, gültige Nummer sind < 65535"
 
-#: Src/wptKeyserverDlg.cpp:600 Src/wptKeyserverSearchDlg.cpp:67
+#: Src/wptKeyserverDlg.cpp:602 Src/wptKeyserverSearchDlg.cpp:67
 msgid "&Receive"
 msgstr "&Empfangen"
 
-#: Src/wptKeyserverDlg.cpp:602
+#: Src/wptKeyserverDlg.cpp:604
 msgid "Send key (default is receiving)"
 msgstr "Schlüssel senden (sonst empfangen)"
 
-#: Src/wptKeyserverDlg.cpp:604
+#: Src/wptKeyserverDlg.cpp:606
 msgid "Please enter the key ID or email address you search for"
 msgstr "Bitte die key ID oder E-Mail-Adresse angeben die gesucht wird"
 
-#: Src/wptKeyserverDlg.cpp:605
+#: Src/wptKeyserverDlg.cpp:607
 msgid "&Search"
 msgstr "&Suchen"
 
-#: Src/wptKeyserverDlg.cpp:606
+#: Src/wptKeyserverDlg.cpp:608
 msgid "C&hange"
 msgstr "Ä&ndern"
 
-#: Src/wptKeyserverDlg.cpp:607
+#: Src/wptKeyserverDlg.cpp:609
 msgid "Set &default"
 msgstr "Als &Standard"
 
-#: Src/wptKeyserverDlg.cpp:632
+#: Src/wptKeyserverDlg.cpp:634
 msgid "&Remove"
 msgstr "&Entfernen"
 
-#: Src/wptKeyserverDlg.cpp:633
+#: Src/wptKeyserverDlg.cpp:635
 msgid "&Edit"
 msgstr "&Edtieren"
 
-#: Src/wptKeyserverDlg.cpp:659 Src/wptProxySettingsDlg.cpp:66
+#: Src/wptKeyserverDlg.cpp:661 Src/wptProxySettingsDlg.cpp:66
 #: Src/wptProxySettingsDlg.cpp:75 Src/wptProxySettingsDlg.cpp:82
 #: Src/wptProxySettingsDlg.cpp:87 Src/wptProxySettingsDlg.cpp:92
 #: Src/wptProxySettingsDlg.cpp:138 Src/wptProxySettingsDlg.cpp:169
 msgid "Proxy Settings"
 msgstr "Proxy Einstellungen"
 
-#: Src/wptKeyserverDlg.cpp:667 Src/wptKeyserverDlg.cpp:698
+#: Src/wptKeyserverDlg.cpp:669 Src/wptKeyserverDlg.cpp:700
 msgid "Please select one of the keyservers."
 msgstr "Bitte einen Keyserver auswählen."
 
-#: Src/wptKeyserverDlg.cpp:675
+#: Src/wptKeyserverDlg.cpp:677
 msgid "This is not implemented yet!"
 msgstr "Das ist (leider) noch nicht implementiert!"
 
-#: Src/wptKeyserverDlg.cpp:682 Src/wptKeyserverDlg.cpp:714
+#: Src/wptKeyserverDlg.cpp:684 Src/wptKeyserverDlg.cpp:716
 msgid "Please enter the search pattern."
 msgstr "Bitte Suchmuster eingeben."
 
-#: Src/wptKeyserverDlg.cpp:719
+#: Src/wptKeyserverDlg.cpp:721
 msgid "Only keyids are allowed."
 msgstr "Nur Schlüssel-IDs zulässig"
 
-#: Src/wptKeyserverDlg.cpp:725
+#: Src/wptKeyserverDlg.cpp:727
 msgid "Only enter the name of the user."
 msgstr "Nur den Namen des Benutzers eingeben."
 
-#: Src/wptKeyserverDlg.cpp:731
+#: Src/wptKeyserverDlg.cpp:733
 msgid "Only email addresses or keyids are allowed."
 msgstr "Es sind nur E-Mail-Adressen oder Schlüssel-IDs zulässig"
 
@@ -4079,11 +4076,11 @@
 msgstr "Ausgabe Prüfsummen"
 
 # c:\oss\winpt-gpgme\src\wptMDSumDlg.cpp:114
-#: Src/wptMDSumDlg.cpp:144
+#: Src/wptMDSumDlg.cpp:148
 msgid "Select file to save checksums"
 msgstr "Datei auswählen zum Speichern der Prüfsummen"
 
-#: Src/wptMDSumDlg.cpp:149
+#: Src/wptMDSumDlg.cpp:153
 #, c-format
 msgid "Checksums successfully saved in '%s'"
 msgstr "Checksummen erfolgreich in '%s' gespeichert."

Modified: trunk/Src/ChangeLog
===================================================================
--- trunk/Src/ChangeLog	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/Src/ChangeLog	2006-01-24 10:10:15 UTC (rev 165)
@@ -1,3 +1,32 @@
+2006-01-23  Timo Schulz  <ts at g10code.de>
+
+	* wptMDSumDlg.cpp (mdsum_dlg_proc): Allow to send output
+	to the clipboard.
+	* wptKeyEditDlgs.cpp (keyedit_change_ownertrust): New.
+	(do_editkey_enable_disable): New.
+	* wptKeyPropsDlg.cpp (keyprops_dlg_proc): Usability fix. Do not
+	close the dialog if the user cancelled the ownertrust dialog.
+	* wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Return TRUE to indicate
+	an update of any value.
+	
+2006-01-21  Timo Schulz  <twoaday at freakmail.de>
+
+	* wptKeyCache.cpp (keycache_next_key): Handle the case
+	that there is a secret key without a public part.
+	* wptKeyserver.cpp (kserver_save_conf): Save ports.
+	* wptKeyserverDlg.cpp (keyserver_modify_dlg_proc):
+	Reset keyserver name.
+	* wptKeyPropsDlg.cpp (keyprops_dlg_proc): Just indicate
+	an update, do not update the cache.
+	* wptFileManagerDlg.cpp (file_import_dlg_proc): Use one
+	dialog for both clipboard and file imports.
+	* wptKeyManager.cpp (km_file_import, km_clip_import):
+	Changes to support new update system.
+	(gpg_clip_import): New.
+	* wptKeyManagerDlg.cpp (km_gui_import): New.
+	(find_keypos): Rewritten.
+	(refresh_keylist): Improved error checking.
+	
 2006-01-20  Timo Schulz  <ts at g10code.com>
 
 	* wptKeyCache.cpp (w32_tmpfile): New.

Modified: trunk/Src/WinPT-en.rc
===================================================================
--- trunk/Src/WinPT-en.rc	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/Src/WinPT-en.rc	2006-01-24 10:10:15 UTC (rev 165)
@@ -1092,6 +1092,8 @@
                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP,7,5,287,79
     PUSHBUTTON      "&Save...",IDC_MDSUM_COPY,192,86,50,14
     DEFPUSHBUTTON   "&Close",IDOK,245,86,50,14
+    CONTROL         "Save to clipboard",IDC_MDSUM_TOCLIP,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,7,86,94,10
 END
 
 IDD_WINPT_KEYEDIT DIALOG DISCARDABLE  0, 0, 298, 183
@@ -1926,14 +1928,14 @@
             VALUE "Comments", "This is free software under the terms of the GNU GPL v2\0"
             VALUE "CompanyName", "\0"
             VALUE "FileDescription", "Windows Privacy Tray (WinPT)\0"
-            VALUE "FileVersion", "0.11.5\0"
+            VALUE "FileVersion", "0.11.7\0"
             VALUE "InternalName", "WinPT\0"
-            VALUE "LegalCopyright", " Copyright (C) 2006 Timo Schulz\0"
+            VALUE "LegalCopyright", " Copyright (C) 2005 Timo Schulz\0"
             VALUE "LegalTrademarks", "\0"
             VALUE "OriginalFilename", "WinPT.exe\0"
             VALUE "PrivateBuild", "\0"
             VALUE "ProductName", "Windows Privacy Tray\0"
-            VALUE "ProductVersion", "0.11.5\0"
+            VALUE "ProductVersion", "0.11.7\0"
             VALUE "SpecialBuild", "\0"
         END
     END

Modified: trunk/Src/resource.h
===================================================================
--- trunk/Src/resource.h	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/Src/resource.h	2006-01-24 10:10:15 UTC (rev 165)
@@ -631,6 +631,7 @@
 #define IDC_KSERVADD_PORTINF            1508
 #define IDC_KSERVADD_PORT               1509
 #define IDC_GPGPREFS_OVRDEFAULT         1510
+#define IDC_MDSUM_TOCLIP                1511
 #define ID_GPG_ENCRYPT                  40003
 #define ID_GPG_DECRYPT                  40004
 #define ID_GPG_SIGN                     40005
@@ -810,7 +811,7 @@
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_NEXT_RESOURCE_VALUE        240
 #define _APS_NEXT_COMMAND_VALUE         40185
-#define _APS_NEXT_CONTROL_VALUE         1511
+#define _APS_NEXT_CONTROL_VALUE         1512
 #define _APS_NEXT_SYMED_VALUE           101
 #endif
 #endif

Modified: trunk/Src/wptClipImportDlg.cpp
===================================================================
--- trunk/Src/wptClipImportDlg.cpp	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/Src/wptClipImportDlg.cpp	2006-01-24 10:10:15 UTC (rev 165)
@@ -40,23 +40,6 @@
 #include "wptKeyManager.h"
 
 
-/* Import the PGP key data from the clipboard.
-   Return value: 0 on success. */
-gpgme_error_t
-gpgme_op_clip_import (gpgme_ctx_t ctx)
-{
-    gpgme_error_t err = 0;
-    gpgme_data_t keydata = NULL;
-    
-    err = gpg_data_new_from_clipboard (&keydata, 0);
-    if (!err)
-	err = gpgme_op_import (ctx, keydata);
-
-    gpgme_data_release (keydata);
-    return err;
-}
-
-
 /* Load the import statistics dialog with the results from @res. */   
 int
 print_import_status (gpgme_import_result_t res)
@@ -79,85 +62,3 @@
     }
     return !(res->unchanged == res->considered);
 }
-
-
-/* Dialog procedure for importing key clipboard data. */
-BOOL CALLBACK
-clip_import_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
-{
-    static listview_ctrl_t lv = NULL;
-    static int is_revcert;
-    static int has_seckeys;
-    int rc = 0, upd = 0;
-    gpgme_error_t err;
-    gpgme_ctx_t ctx;
-    gpgme_import_result_t res;
-    
-    switch (msg) {
-    case WM_INITDIALOG:
-        SetWindowText (dlg, _("Key Import"));
-        SetDlgItemText (dlg, IDC_IMPORT_DOIT, _("&Import"));
-
-	rc = implist_build (&lv, GetDlgItem (dlg, IDC_IMPORT_KEYLIST));
-	if (rc)
-	    BUG (NULL);
-	SetForegroundWindow (dlg);
-	center_window (dlg, NULL);
-	rc = implist_load (lv, NULL, &is_revcert, &has_seckeys);
-        return TRUE;
-        
-    case WM_DESTROY:
-        if( lv ) {
-            implist_delete(lv);
-            lv = NULL;
-        }
-        return FALSE;
-        
-    case WM_SYSCOMMAND:
-        if (LOWORD (wparam) == SC_CLOSE)
-            EndDialog (dlg, FALSE);
-        return FALSE;
-        
-    case WM_COMMAND:
-        switch (LOWORD(wparam)) {
-        case IDCANCEL:
-            EndDialog (dlg, FALSE);
-            return TRUE;
-            
-        case IDC_IMPORT_DOIT:
-            if (has_seckeys > 0) {
-		msg_box (dlg, _("Some of the imported keys are secret keys.\n\n"
-				"The ownertrust values of these keys must be\n"
-				"set manually via the Key Properties dialog."),
-			 _("Import"), MB_INFO);
-            }
-	    SetForegroundWindow (dlg);
-	    center_window (dlg, NULL);
-
-	    err = gpgme_new (&ctx);
-	    if (err)
-		BUG (NULL);
-            err = gpgme_op_clip_import (ctx);
-            if (err) {
-		msg_box (dlg, gpgme_strerror (err), _("Import"), MB_ERR);
-		gpgme_release (ctx);
-                return FALSE;
-            }
-	    res = gpgme_op_import_result (ctx);
-	    print_import_status (res);
-	    upd = res->considered - res->unchanged;
-	    if (res->no_user_id > 0) {            
-                msg_box (dlg, _("Key without a self signature was dectected!\n"
-				"(This key is NOT usable for encryption, etc)\n"
-				"\n"
-				"Cannot import these key(s)."), _("Import"), MB_INFO);
-            }
-	    gpgme_release (ctx);
-            EndDialog (dlg, upd);
-            return TRUE;
-        }
-        break;
-    }
-    
-    return FALSE;
-}

Modified: trunk/Src/wptFileManagerDlg.cpp
===================================================================
--- trunk/Src/wptFileManagerDlg.cpp	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/Src/wptFileManagerDlg.cpp	2006-01-24 10:10:15 UTC (rev 165)
@@ -196,18 +196,20 @@
             dlg_fatal_error( dlg, "Could not get dialog param!" );
         ShowWindow (GetDlgItem( dlg, IDC_IMPORT_KEYMNGT ), WS_DISABLED);
         implist_build (&lv, GetDlgItem (dlg, IDC_IMPORT_KEYLIST));
-        implist_load (lv, c->opaque, &is_revcert, &has_seckeys);
+        implist_load (lv, c->import.is_clip? NULL: c->opaque, 
+		      &is_revcert, &has_seckeys);
 	if (!listview_count_items (lv, 0)) {
 	    msg_box (dlg, _("No valid OpenPGP data found."), _("Key Import"), MB_ERR);
 	    c->cancel = 1;
 	    EndDialog (dlg, FALSE);
 	}
 	else {
-	    const char *s = _("File contain(s) %d key(s).");
+	    const char *s = _("%s contain(s) %d key(s).");
 	    char *p = new char[strlen (s) + 32];
 	    if (!p)
 		BUG (NULL);
-	    sprintf (p, s, listview_count_items (lv, 0));
+	    sprintf (p, s, c->import.is_clip? _("Clipboard") : _("File"),
+		     listview_count_items (lv, 0));
 	    SetDlgItemText (dlg, IDC_IMPORT_INFO, p);
 	    free_if_alloc (p);
 	}
@@ -233,6 +235,12 @@
     case WM_COMMAND:
         switch (LOWORD (wparam)) {
         case IDC_IMPORT_DOIT:
+	    if (has_seckeys > 0) {
+		msg_box (dlg, _("Some of the imported keys are secret keys.\n\n"
+				"The ownertrust values of these keys must be\n"
+				"set manually via the Key Properties dialog."),
+			 _("Import"), MB_INFO);
+            }
             c->cancel = 0;
 	    c->import.revcert = is_revcert? 1 : 0;
 	    c->import.has_seckey = has_seckeys? 1 : 0;

Modified: trunk/Src/wptGPGPrefsDlg.cpp
===================================================================
--- trunk/Src/wptGPGPrefsDlg.cpp	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/Src/wptGPGPrefsDlg.cpp	2006-01-24 10:10:15 UTC (rev 165)
@@ -185,16 +185,20 @@
 
     case WM_SYSCOMMAND:
         if (LOWORD (wparam) == SC_CLOSE)
-            EndDialog (dlg, TRUE);
+            EndDialog (dlg, FALSE);
         return FALSE;
         
     case WM_COMMAND:
 	if (HIWORD (wparam) == BN_CLICKED &&
 	    LOWORD (wparam) == IDC_GPGPREFS_OVRDEFAULT) {
-	    if (IsDlgButtonChecked (dlg, LOWORD (wparam)))
+	    if (IsDlgButtonChecked (dlg, LOWORD (wparam))) {
 		enable_disable_items (dlg, TRUE);
-	    else
+		gpg4win = false;
+	    }
+	    else {
 		enable_disable_items (dlg, FALSE);
+		gpg4win = true;
+	    }
 	    break;
 	}
 
@@ -202,12 +206,12 @@
         case IDC_GPGPREFS_SAVE:
             if (!GetDlgItemText (dlg, IDC_GPGPREFS_HOMEDIR, 
 				 homedir, sizeof (homedir) -1)) {
-                msg_box (dlg, _("Please enter the GnuPG home directory."), 
+                msg_box (dlg, _("Please enter the GnuPG home directory."),
 			 _("Preferences"), MB_ERR);
                 return FALSE;
             }
             if (dir_exist_check (homedir)) {
-		_snprintf (t, sizeof (t) - 1, "%s: %s", homedir, 
+		_snprintf (t, sizeof (t) - 1, "%s: %s", homedir,
 			   winpt_strerror (WPTERR_DIR_OPEN));
                 msg_box (dlg, t, _("Preferences"), MB_ERR);
                 return FALSE;
@@ -225,16 +229,17 @@
                 return FALSE;
             }
             if (file_exist_check (exedir)) {
-                msg_box (dlg, _("Could not find the GPG program in this directory."), 
+                msg_box (dlg, _("Could not find the GPG program in this directory."),
 			 _("Preferences"), MB_ERR);
                 return FALSE;
             }
             if (!gpg4win && set_reg_entry_gpg ("gpgProgram", exedir)) {
-                msg_box (dlg, _("Could not save 'gpgProgram' in the registry"), 
+                msg_box (dlg, _("Could not save 'gpgProgram' in the registry"),
 			 _("Preferences"), MB_ERR);
                 return FALSE;
             }
-            if (GetDlgItemText (dlg, IDC_GPGPREFS_LOCALE, locale_dir, sizeof (locale_dir) -1)) {
+            if (GetDlgItemText (dlg, IDC_GPGPREFS_LOCALE, 
+				locale_dir, sizeof (locale_dir) -1) > 0) {
                 if (dir_exist_check (locale_dir)) {
 		    log_box ( _("Preferences"), MB_ERR, "%s: %s", locale_dir, 
 			     winpt_strerror (WPTERR_DIR_OPEN));
@@ -255,26 +260,27 @@
 	    }
 	    parse_gpg_options (p, &opt);
 
-	    if( IsDlgButtonChecked( dlg, IDC_GPGPREFS_ASKLEVEL ) ) {
-		modify_entry( opt, ENTRY_SINGLE, "ask-cert-level", NULL );
+	    if (IsDlgButtonChecked (dlg, IDC_GPGPREFS_ASKLEVEL)) {
+		modify_entry (opt, ENTRY_SINGLE, "ask-cert-level", NULL);
 		reg_prefs.gpg.ask_cert_level = 1;
 	    }
 	    else {
 		delete_option (opt, "ask-cert-level");
 		reg_prefs.gpg.ask_cert_level = 0;
 	    }
-
-            if( (n = GetDlgItemText(dlg, IDC_GPGPREFS_COMMENT, t, sizeof t - 1 ) ))
-		modify_entry( opt, ENTRY_MULTI, "comment", t );
-	    else if( n == 0 )
-		modify_entry( opt, ENTRY_MULTI, "comment", "\"\"" );
+	    n = GetDlgItemText(dlg, IDC_GPGPREFS_COMMENT, t, sizeof t - 1);
+            if (n > 0)
+		modify_entry (opt, ENTRY_MULTI, "comment", t);
+	    else if (n == 0)
+		modify_entry (opt, ENTRY_MULTI, "comment", "\"\"");
 	    else
-		delete_option( opt, "comment" );
+		delete_option (opt, "comment");
 
-            if( (n=GetDlgItemText( dlg, IDC_GPGPREFS_ENCTO, t, sizeof t -1 ) ) )
-		modify_entry( opt, ENTRY_MULTI, "encrypt-to", t );
+	    n = GetDlgItemText (dlg, IDC_GPGPREFS_ENCTO, t, sizeof t -1);
+            if (n > 0)
+		modify_entry (opt, ENTRY_MULTI, "encrypt-to", t);
             else
-		delete_option( opt, "encrypt-to" );
+		delete_option (opt, "encrypt-to");
 
 	    commit_gpg_options (p, opt);
 	    release_gpg_options (opt);
@@ -287,7 +293,8 @@
 		char *name;
 
 		SetDlgItemText (dlg, IDC_GPGPREFS_HOMEDIR, folder);
-		if (GetDlgItemText (dlg, IDC_GPGPREFS_EXEDIR, exedir, DIM (exedir)-1) > 0)
+		if (GetDlgItemText (dlg, IDC_GPGPREFS_EXEDIR, 
+				    exedir, DIM (exedir)-1) > 0)
 		    break;
 		name = make_filename (folder, "gpg", "exe");
 		if (file_exist_check (name) == 0)

Modified: trunk/Src/wptKeyCache.cpp
===================================================================
--- trunk/Src/wptKeyCache.cpp	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/Src/wptKeyCache.cpp	2006-01-24 10:10:15 UTC (rev 165)
@@ -768,6 +768,9 @@
     }
     if (ctx->tmp->flags != 0)
 	ctx->tmp->flags = 0; /* reset the 'updated' status. */
+    /* it might be possible there is no public key. */
+    if (flags && ctx->tmp->pubpart == NULL)
+	flags = 0;
     *r_key = flags? ctx->tmp->pubpart->key : ctx->tmp->key;
     *c = ctx->tmp = ctx->tmp->next;
     ctx->pos++;

Modified: trunk/Src/wptKeyEditDlgs.cpp
===================================================================
--- trunk/Src/wptKeyEditDlgs.cpp	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/Src/wptKeyEditDlgs.cpp	2006-01-24 10:10:15 UTC (rev 165)
@@ -50,7 +50,7 @@
     /*CMD_FPR,*/
     CMD_DELUID,
     CMD_DELKEY,
-    CMD_DELPHOTO,
+    /*CMD_DELPHOTO,*/
     /*CMD_DELSIG,*/
     CMD_EXPIRE,
     /*CMD_PREF,*/
@@ -874,6 +874,24 @@
 }
 
 
+/* Change ownertrust of the given key @key.
+   Return TRUE if the ownertrust was changed. */
+BOOL
+keyedit_change_ownertrust (winpt_key_t key, HWND dlg)
+{
+    int rc;
+
+    rc = dialog_box_param (glob_hinst, 
+			     (LPCSTR)IDD_WINPT_KEYEDIT_OWNERTRUST,
+			     dlg, keyedit_ownertrust_dlg_proc,
+			     (LPARAM)key, _("Change Ownertrust"),
+			     IDS_WINPT_KEYEDIT_OWNERTRUST);
+    if (rc == TRUE)
+	key->update = 1;
+    return rc;
+}
+
+
 static int
 is_idea_protect_algo (const char * keyid)
 {
@@ -954,8 +972,10 @@
 }
 
 
+/* Initialize sub key list from key @k and return
+   the new listview control. */
 listview_ctrl_t
-subkey_list_init( HWND dlg, winpt_key_t k )
+subkey_list_init (HWND dlg, winpt_key_t k)
 {
     LV_ITEM lvi;
     gpgme_key_t key;
@@ -985,7 +1005,7 @@
 	k->ctx = key;
     nkeys = count_subkeys (key);
     if( !nkeys ) {
-        msg_box( dlg, _("No subkey(s) found."), _("Key Edit"), MB_ERR );
+        msg_box (dlg, _("No subkey(s) found."), _("Key Edit"), MB_ERR);
 	return NULL;
     }
         
@@ -1002,7 +1022,7 @@
 	listview_add_sub_item( lv, 0, 1, "" );
 	memset( &lvi, 0, sizeof lvi );
 	lvi.mask = LVIF_PARAM;	
-	lvi.lParam = (LPARAM )key;
+	lvi.lParam = (LPARAM)key;
 	if( ListView_SetItem( lv->ctrl, &lvi ) == FALSE )
 	    return NULL;
     }
@@ -1146,7 +1166,7 @@
 	/*"FPR",*/
 	"DELUID",
 	"DELKEY",
-	"DELPHOTO",
+	/*"DELPHOTO",*/
 	/*"DELSIG",*/
 	"EXPIRE",
 	/*"PREF",*/
@@ -1160,7 +1180,7 @@
 	"REVKEY",
 	"DISABLE",
 	"ENABLE",
-	"SHOWPHOTO",
+	/*"SHOWPHOTO",*/
 	NULL
     };
     const char * s;
@@ -1174,28 +1194,30 @@
 } /* do_init_cmdlist */
 
 
+/* Return 1 if the requested command is RFC2440. */
 static int
-is_cmd_openpgp( int cmdid )
+is_cmd_openpgp (int cmdid)
 {
-    switch( cmdid ) {
+    switch (cmdid) {
     case CMD_ADDKEY:
     case CMD_ADDPHOTO:
     case CMD_ADDREVOKER:
-    case CMD_DELPHOTO:
+    /*case CMD_DELPHOTO:*/
     /*case CMD_SHOWPHOTO:*/
     /*case CMD_SETPREF:*/
 	return 1;
     }
     return 0;
-} /* is_cmd_openpgp */
+}
 
 
+/* Display a message box with a short description of the commands. */
 static void
-do_show_help( HWND dlg )
+do_show_help (HWND dlg)
 {
     char helptext[2048];
 
-    _snprintf( helptext, sizeof helptext-1,
+    _snprintf (helptext, sizeof (helptext)-1,
 	_(/*"FPR	    \t\tshow fingerprint\r\n"*/
 	 "ADDUID   \t\tadd a user ID\r\n"
 	 "ADDPHOTO  \t\tadd a photo ID\r\n"
@@ -1218,8 +1240,8 @@
 	 "DISABLE   \t\tdisable a key\r\n"
 	 "ENABLE    \t\tenable a key\r\n"
 	 /*"SHOWPHOTO \t\tshow photo ID\r\n"*/) );
-    msg_box( dlg, helptext, _("Key Edit Help"), MB_OK );
-} /* do_show_help */
+    msg_box (dlg, helptext, _("Key Edit Help"), MB_OK);
+}
 
 
 static int
@@ -1779,13 +1801,21 @@
 } /* uid_subclass_proc */
 
 
+static void
+do_editkey_enable_disable (winpt_key_t k, HWND dlg, listview_ctrl_t lv, int enable)
+{
+    km_enable_disable_key (lv, dlg, 0, enable);
+    k->update = 1;
+}
+
+
 /* Dialog box procedure for the edit key dialog. */
 BOOL CALLBACK
 keyedit_main_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
 {
     static winpt_key_t k;
     static listview_ctrl_t lvsub = NULL, lvuid = NULL;
-    int cmd, idxsub = 0;
+    int cmd;
     HWND item;
 
     switch( msg ) {
@@ -1859,7 +1889,6 @@
 		msg_box( dlg, _("Please select a command."), _("Key Edit"), MB_INFO );
 		return FALSE;
 	    }
-	    idxsub = listview_get_curr_pos (lvsub);
 	    if (k->is_v3 && is_cmd_openpgp (cmd)) {
 		msg_box (dlg, _("This command cannot be used with PGP 2 (v3) keys.\n"),
 				_("Key Edit"), MB_ERR);
@@ -1879,8 +1908,9 @@
 	    case CMD_DELUID: do_editkey_deluid( k, dlg, lvuid ); break;
 	    case CMD_PASSWD: keyedit_change_passwd( k, dlg ); break;
 	    case CMD_PRIMARY: do_editkey_primary( k, dlg, lvuid ); break;
-	    case CMD_ENABLE: km_enable_disable_key( lvsub, dlg, idxsub, 1 ); break;
-	    case CMD_DISABLE: km_enable_disable_key( lvsub, dlg, idxsub, 0 ); break;
+	    case CMD_ENABLE: do_editkey_enable_disable (k, dlg, lvsub, 1); break;
+	    case CMD_DISABLE: do_editkey_enable_disable (k, dlg, lvsub, 0); break;
+	    case CMD_TRUST: keyedit_change_ownertrust (k, dlg); break;
 	    }
 	    break;
 

Modified: trunk/Src/wptKeyManager.cpp
===================================================================
--- trunk/Src/wptKeyManager.cpp	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/Src/wptKeyManager.cpp	2006-01-24 10:10:15 UTC (rev 165)
@@ -425,15 +425,34 @@
 }
 
 
+/* Import the PGP key data from the clipboard.
+   Return value: 0 on success. */
+static gpgme_error_t
+gpg_op_clip_import (gpgme_ctx_t ctx)
+{
+    gpgme_error_t err = 0;
+    gpgme_data_t keydata = NULL;
+    
+    err = gpg_data_new_from_clipboard (&keydata, 0);
+    if (!err)
+	err = gpgme_op_import (ctx, keydata);
+
+    gpgme_data_release (keydata);
+    return err;
+}
+
 /* Import keys from the clipboard. */
 int
-km_clip_import (HWND dlg, int *r_newkeys)
+km_clip_import (HWND dlg, int *r_newkeys, int *r_newsks)
 {
     gpgme_error_t err;
+    gpgme_ctx_t ctx = NULL;
+    gpgme_import_result_t res;
+    fm_state_s fm_stat;
     int pgptype;
-    int id;
-    int new_keys = 0, has_data = 0;
-    
+    int id, has_data = 0;
+    int new_keys = 0, new_sks = 0;
+
     if (!gpg_clip_istext_avail (&has_data) && !has_data) {
         msg_box (dlg, winpt_strerror (WPTERR_CLIP_ISEMPTY), 
 		 _("Key Manager"), MB_ERR);
@@ -463,14 +482,47 @@
 		     _("Key Manager"), MB_INFO);
     }
 
-    new_keys = dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_IMPORT, dlg,
-				 clip_import_dlg_proc, 0,
+    memset (&fm_stat, 0, sizeof (fm_stat));
+    fm_stat.opaque = m_strdup ("Clipboard");
+    fm_stat.import.is_clip = 1;
+    has_data = dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_IMPORT, dlg,
+				 file_import_dlg_proc, (LPARAM)&fm_stat,
 				 _("Key Import"), IDS_WINPT_IMPORT);
+    if (!has_data)
+	goto leave;
+
+    err = gpgme_new (&ctx);	    
+    if (err)
+	BUG (NULL);
+    op_begin ();
+    err = gpg_op_clip_import (ctx);
+    op_end ();
+    if (err) {
+	msg_box (dlg, gpgme_strerror (err), _("Import"), MB_ERR);
+	goto leave;
+    }
+
+    res = gpgme_op_import_result (ctx);
+    print_import_status (res);
+    new_keys = res->considered - res->unchanged;
+    new_sks = res->secret_imported - res->secret_unchanged;
+    if (res->no_user_id > 0) {
+	msg_box (dlg, _("Key without a self signature was dectected!\n"
+			"(This key is NOT usable for encryption, etc)\n"),
+			_("Import"), MB_WARN);
+    }
+
+leave:
+    if (ctx)
+	gpgme_release (ctx);
+    free_if_alloc (fm_stat.opaque);
     if (r_newkeys)
 	*r_newkeys = new_keys;
-    if (!new_keys)
+    if (r_newsks)
+	*r_newsks = new_sks;
+    if (!new_keys || !has_data)
 	return WPTERR_NODATA;
-    return 0;
+    return (int)err;
 }
 
 
@@ -514,27 +566,39 @@
 	msg_box (dlg, winpt_strerror (rc), _("Key Import HTTP"), MB_ERR);
 	rc = WPTERR_GENERAL;
     }
-    km_file_import (dlg, p, NULL);
+    km_file_import (dlg, p, NULL, NULL);
     remove (p);
     free_if_alloc (p);
     return rc;
 }
 
 
-/* Import a key from the given file @fname.
+/* Import a key from the given file @fname, if @fname is
+   NULL use the common 'file open' dialog.
    On success an import statistics dialog is shown. */
 int
-km_file_import (HWND dlg, const char *fname, int *r_newkeys)
+km_file_import (HWND dlg, const char *fname, int *r_newkeys, int *r_newsks)
 {
     gpgme_data_t keydata = NULL;
     gpgme_ctx_t ctx;
     gpgme_error_t err;    
     fm_state_s fm_stat;
     gpgme_import_result_t res;
+    const char *name;
     int no_data = 0;
-    
+    int new_keys = 0, new_sks = 0;
+
+    if (!fname) {
+	name = get_fileopen_dlg (dlg, _("Choose Name of the Key File"),
+				 NULL, NULL);
+	if (!name)
+	    return WPTERR_GENERAL;
+    }
+    else
+	name = fname;
+
     memset (&fm_stat, 0, sizeof (fm_stat));
-    fm_stat.opaque = m_strdup (fname);
+    fm_stat.opaque = m_strdup (name);
     
     dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_IMPORT, dlg,
                       file_import_dlg_proc, (LPARAM)&fm_stat,
@@ -547,7 +611,7 @@
     err = gpgme_new (&ctx);
     if (err)
 	BUG (NULL);
-    err = gpgme_data_new_from_file (&keydata, fname, 1);
+    err = gpgme_data_new_from_file (&keydata, name, 1);
     if (err) {
         msg_box (dlg, _("Could not read key-data from file."), 
 		 _("Key Manager"), MB_ERR);
@@ -563,10 +627,11 @@
     }    
 
     res = gpgme_op_import_result (ctx);
-    if (res->unchanged == res->considered)
+    if (res->unchanged == res->considered &&
+	res->secret_unchanged == res->secret_imported)
 	no_data = 1;
-    if (r_newkeys)
-	*r_newkeys = res->considered - res->unchanged;
+    new_keys = res->considered - res->unchanged;
+    new_sks = res->secret_imported - res->secret_unchanged;
     if (res->new_revocations == 0 && fm_stat.import.revcert == 1)
 	res->new_revocations = 1;
     if (res->secret_imported == 0 && fm_stat.import.has_seckey == 1)
@@ -578,15 +643,18 @@
     print_import_status (res);
     if (res->no_user_id > 0) {
 	msg_box (dlg, _("Key without a self signature was dectected!\n"
-			"(This key is NOT usable for encryption, etc)\n"
-			"\n"	
-			"Cannot import these key(s)!"), _("Import"), MB_INFO);
+			"(This key is NOT usable for encryption, etc)\n"),
+			_("Import"), MB_WARN);
     }
 
 leave:
     gpgme_data_release (keydata);
     gpgme_release (ctx);
     free_if_alloc (fm_stat.opaque);
+    if (r_newkeys)
+	*r_newkeys = new_keys;
+    if (r_newsks)
+	*r_newsks = new_sks;
     if (no_data)
 	return WPTERR_NODATA;
     return (int)err;
@@ -808,7 +876,8 @@
 km_refresh_one_key (listview_ctrl_t lv, HWND dlg, int pos, int flags)
 {
     gpgme_key_t key;
-    int idx;
+    char keyid[16+1];
+    int idx, err = 0;
 
     if (pos != 0)
 	idx = pos;
@@ -818,8 +887,12 @@
 	key = (gpgme_key_t)listview_get_item2 (lv, idx);
 	if (!key)
 	    BUG (0);
-	hkp_recv_key (dlg, default_keyserver, default_keyserver_port, 
-		      key->subkeys->keyid+8, 0, flags);
+	_snprintf (keyid, sizeof (keyid)-1, "%s", key->subkeys->keyid+8);
+	err = hkp_recv_key (dlg, default_keyserver, default_keyserver_port, 
+			    keyid, 0, flags);
+	/* if we receive just a single key (no refresh mode), update it. */
+	if (!flags && !err)
+	    keycache_update (0, keyid);
     }
 }
 

Modified: trunk/Src/wptKeyManagerDlg.cpp
===================================================================
--- trunk/Src/wptKeyManagerDlg.cpp	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/Src/wptKeyManagerDlg.cpp	2006-01-24 10:10:15 UTC (rev 165)
@@ -1020,12 +1020,12 @@
 static int
 find_keypos (listview_ctrl_t lv, gpgme_key_t key)
 {
-    gpgme_key_t src;
+    char keyid[16+1];
     int i;
 
     for (i=0; i < listview_count_items (lv, 0); i++) {
-	src = (gpgme_key_t)listview_get_item2 (lv, i);
-	if (src && src->subkeys->keyid == key->subkeys->keyid)
+	listview_get_item_text (lv, i, KM_COL_KEYID, keyid, sizeof (keyid)-1);
+	if (!strcmp (key->subkeys->keyid+8, keyid+2))
 	    return i;
     }
     return -1;
@@ -1039,15 +1039,17 @@
 {
     struct keycache_s *ctx;
     gpg_keycache_t kc;
-    int status=0;
+    int status=0, pos;
 
     kc = keycache_get_ctx (1);
     while (!gpg_keycache_next_updated_key (kc, &ctx, &status)) {
 	if (status == KC_FLAG_ADD)
 	    keylist_add_key (kmi->lv, KEYLIST_LIST, ctx->key);
-	else
-	    keylist_upd_key (kmi->lv, find_keypos (kmi->lv, ctx->key), ctx->key);
-	/*log_box ("debug", 0, "(%d) %s", status, ctx->key->uids->name);*/
+	else {
+	    pos = find_keypos (kmi->lv, ctx->key);
+	    if (pos != -1)
+		keylist_upd_key (kmi->lv, pos, ctx->key);
+	}
     }
     keylist_sort (kmi->lv, KEY_SORT_USERID);
     update_status_bar (kmi->statbar, kmi->lv);
@@ -1061,9 +1063,62 @@
     keycache_reload (kmi->dlg);
     keylist_reload (kmi->lv, keycache_get_ctx (1), 
 		    KEYLIST_LIST, KEY_SORT_USERID);
+    update_status_bar (kmi->statbar, kmi->lv);
+    keyring_check_last_access ();
 }
 
 
+/* Reload the entire key cache and update the listview. */
+static void
+reload_keycache (struct km_info_s *kmi)
+{
+    refresh_cache_s rcs = {0};
+    gpg_keycache_t c;
+
+    rcs.kr_reload = rcs.kr_update = 1;
+    rcs.tr_update = 0;
+    DialogBoxParam (glob_hinst, (LPCSTR)IDD_WINPT_KEYCACHE, kmi->dlg,
+		    keycache_dlg_proc, (LPARAM)&rcs);
+    c = keycache_get_ctx (1);
+    if (!c)
+	BUG (0);
+    keylist_reload (kmi->lv, c, KEYLIST_LIST, KEY_SORT_USERID);
+    update_status_bar (kmi->statbar, kmi->lv);
+    SetForegroundWindow (kmi->dlg);
+}
+
+
+/* Handle all import request. */
+static void
+km_gui_import (struct km_info_s *kmi, int cmd_id)
+{
+    int newkeys=0, newsks=0;
+    int err = 0;
+
+    switch (cmd_id) {
+    case ID_KEYMISC_PASTE:
+	err = km_clip_import (kmi->dlg, &newkeys, &newsks);
+	break;
+
+    case ID_KEYMISC_IMPORT:
+	err = km_file_import (kmi->dlg, NULL, &newkeys, &newsks);
+	break;
+
+    default:
+	err = 1;
+	break;
+    }
+
+    if (!err && !newsks && (newkeys > 0 && newkeys < KM_PRELOAD_KEYS))
+	refresh_keylist (kmi);
+    else if (!err) /* avoid to spawn too much processes. */
+	reload_keylist (kmi);
+
+    SetForegroundWindow (kmi->dlg);
+    center_window (kmi->dlg, NULL);
+}
+
+
 /* Dialog box procedure for the Key Manager. */
 BOOL CALLBACK
 keymanager_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
@@ -1077,7 +1132,6 @@
     struct genkey_s genkey;
     struct winpt_key_s k = {0};
     struct URL_ctx_s *url;
-    refresh_cache_s rcs = {0};
     char type[32], *name;
     const char *t, *host;
     WORD port = 0;
@@ -1148,6 +1202,7 @@
 	set_reg_entry (HKEY_CURRENT_USER, "Software\\WinPT", "KM_Pos_X", type);
 	ltoa (kmi->pos_y, type, 10);
 	set_reg_entry (HKEY_CURRENT_USER, "Software\\WinPT", "KM_Pos_Y", type);
+	/* XXX: store window size. */
 	
 	/* Remove runtime information. This should be the last action taken here. */
 	delete kmi; kmi = NULL;
@@ -1509,27 +1564,24 @@
             
         case ID_KEYMISC_PROPS:	    
             if (kmi->lv_idx == -1) {
-                msg_box( dlg, _("Please select a key."), _("Key Manager"), MB_ERR );
+                msg_box (dlg, _("Please select a key."), _("Key Manager"), MB_ERR);
                 return TRUE;
             }
 	    key = (gpgme_key_t)listview_get_item2 (kmi->lv, kmi->lv_idx);
 	    if (!key)
 		BUG (NULL);
 	    memset (&k, 0, sizeof (k));
+	    strncpy (k.tmp_keyid, key->subkeys->keyid+8, 8);
+	    k.keyid = k.tmp_keyid;
             k.key_pair = km_check_for_seckey (kmi->lv, kmi->lv_idx, NULL)? 1 : 0;
-            k.keyid = key->subkeys->keyid+8;
 	    k.callback.ctl = kmi->lv;
 	    k.callback.idx = kmi->lv_idx;
 	    k.is_v3 = km_key_is_v3 (kmi->lv, kmi->lv_idx);
-            dialog_box_param( glob_hinst, (LPCSTR)IDD_WINPT_KEYPROPS, dlg,
+            dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_KEYPROPS, dlg,
                               keyprops_dlg_proc, (LPARAM)&k,
-                              _("Key Properties"), IDS_WINPT_KEYPROPS );
-	    if (k.callback.new_val != 0) {
-		t = get_key_trust_str (k.callback.new_val);
-		listview_add_sub_item (kmi->lv, kmi->lv_idx, 6, t);
-	    }
+                              _("Key Properties"), IDS_WINPT_KEYPROPS);
 	    if (k.update)
-		refresh_keylist (kmi);
+		update_key (kmi->lv, kmi->lv_idx, k.tmp_keyid, k.key_pair);
             return TRUE;
             
         case ID_KEYMISC_RECACHE:
@@ -1543,17 +1595,8 @@
                              "Do you really want to reload the keycache?"));
                 l_idx = msg_box (dlg, inf, _("Key Manager"), MB_YESNO);
             }
-            if (l_idx == IDYES) {
-                rcs.kr_reload = rcs.kr_update = 1;
-                rcs.tr_update = 0;
-                DialogBoxParam (glob_hinst, (LPCSTR)IDD_WINPT_KEYCACHE, dlg,
-                                keycache_dlg_proc, (LPARAM)&rcs);
-                c = keycache_get_ctx (1);
-		if (!c)
-		    BUG (dlg);
-                keylist_reload (kmi->lv, c, KEYLIST_LIST, KEY_SORT_USERID);
-            }
-	    SetForegroundWindow (dlg);
+            if (l_idx == IDYES)
+                reload_keycache (kmi);
             return TRUE;
             
         case ID_KEYMISC_REBUILD:
@@ -1607,9 +1650,13 @@
             return TRUE;
             
         case ID_KEYMISC_GPGPREFS:
-            dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_GPGPREFS, dlg,
-                              gpgprefs_dlg_proc, 0, _("GnuPG Preferences"),
-			      IDS_WINPT_GPGPREFS);
+            rc = dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_GPGPREFS, 
+				   dlg, gpgprefs_dlg_proc, 0, 
+				   _("GnuPG Preferences"), IDS_WINPT_GPGPREFS);
+	    if (rc == TRUE) {
+		/* XXX: TRUE should indicate a value changed. */
+		reload_keycache (kmi);
+	    }
             return TRUE;
             
         case ID_KEYMISC_GPGOPT:
@@ -1619,16 +1666,7 @@
             return TRUE;
             
         case ID_KEYMISC_IMPORT:
-            t = get_fileopen_dlg (dlg, _("Choose Name of the Key File"), 
-				  NULL, NULL);
-	    if (!t)
-		break;
-	    if (!km_file_import (dlg, t, &i)) {
-		if (i < KM_PRELOAD_KEYS)
-		    refresh_keylist (kmi);
-		else /* avoid to spawn too much processes. */
-		    reload_keylist (kmi);
-	    }
+            km_gui_import (kmi, LOWORD (wparam));
             return TRUE;
 
 	case ID_KEYMISC_IMPORT_HTTP:
@@ -1743,12 +1781,7 @@
 	    break;
 
         case ID_KEYMISC_PASTE:
-            if (!km_clip_import (dlg, &i)) {
-		if (i < KM_PRELOAD_KEYS)
-		    refresh_keylist (kmi);
-		else
-		    reload_keylist (kmi);
-	    }
+	    km_gui_import (kmi, LOWORD (wparam));
             break;
             
 	case ID_KEYCTX_SETPREFKS:
@@ -1873,6 +1906,10 @@
 
         case ID_KEYCTX_RECVFROM:
 	    km_refresh_from_keyserver (kmi->lv, dlg);
+	    if (updated_keys_avail ())
+		refresh_keylist (kmi);
+	    else
+		msg_box (NULL, "no updates", "", MB_OK);
 	    break;
 
 	case ID_KEYCTX_UID_COPY:

Modified: trunk/Src/wptKeyPropsDlg.cpp
===================================================================
--- trunk/Src/wptKeyPropsDlg.cpp	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/Src/wptKeyPropsDlg.cpp	2006-01-24 10:10:15 UTC (rev 165)
@@ -341,21 +341,19 @@
 		if (rc == IDNO)
 		    return TRUE;
 	    }
-            dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_KEYEDIT_OWNERTRUST,
-                              dlg, (DLGPROC)keyedit_ownertrust_dlg_proc,
-                              (LPARAM)k, _("Change Ownertrust"),
-			      IDS_WINPT_KEYEDIT_OWNERTRUST);
-	    if (k->callback.new_val == -1) { /* Cancel */
-		EndDialog (dlg, FALSE);
-		break;
-	    }
+            rc = dialog_box_param (glob_hinst, 
+				   (LPCSTR)IDD_WINPT_KEYEDIT_OWNERTRUST,
+				    dlg, keyedit_ownertrust_dlg_proc,
+				   (LPARAM)k, _("Change Ownertrust"),
+				    IDS_WINPT_KEYEDIT_OWNERTRUST);
+	    if (rc == FALSE) /* Cancel */
+		return TRUE;
 
 	    inf = ownertrust_to_string (k->callback.new_val, k->key_pair);
             SetDlgItemText (dlg, IDC_KEYPROPS_OT, inf);
             msg_box (dlg, _("Ownertrust successfully changed."), 
 		     _("GnuPG Status"), MB_OK);
-            
-	    keycache_update (0, key->subkeys->keyid);
+	    k->update = 1;
             return TRUE;
             
         case IDC_KEYPROPS_CHANGE_PWD:

Modified: trunk/Src/wptKeyserver.cpp
===================================================================
--- trunk/Src/wptKeyserver.cpp	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/Src/wptKeyserver.cpp	2006-01-24 10:10:15 UTC (rev 165)
@@ -542,7 +542,7 @@
     for (pos = 0; pos < MAX_KEYSERVERS; pos++) {
 	if (!server[pos].used)
 	    continue;
-	fprintf (fp, "%s\r\n", server[pos].name);
+	fprintf (fp, "%s:%d\r\n", server[pos].name, server[pos].port);
     }
     fclose (fp);
     return 0;

Modified: trunk/Src/wptKeyserverDlg.cpp
===================================================================
--- trunk/Src/wptKeyserverDlg.cpp	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/Src/wptKeyserverDlg.cpp	2006-01-24 10:10:15 UTC (rev 165)
@@ -560,6 +560,7 @@
 	    }
 	    ctx->proto = SendDlgItemMessage (dlg, IDC_KSERVADD_TYPES, CB_GETCURSEL, 0, 0);
 	    ctx->cancel = false;
+	    ctx->name[0] = '\0';
 	    if (!strstr (tmp, "://")) {
 		switch (ctx->proto) {
 		case KSPROTO_HTTP: strcpy (ctx->name, "http://"); break;
@@ -568,6 +569,7 @@
 		}
 	    }
 	    strcat (ctx->name, tmp);
+	    ctx->cancel = false;
 	    EndDialog (dlg, TRUE);
 	    break;
 

Modified: trunk/Src/wptMDSumDlg.cpp
===================================================================
--- trunk/Src/wptMDSumDlg.cpp	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/Src/wptMDSumDlg.cpp	2006-01-24 10:10:15 UTC (rev 165)
@@ -1,5 +1,5 @@
 /* wptMDSumDlg.cpp
- *	Copyright (C) 2003, 2005 Timo Schulz
+ *	Copyright (C) 2003, 2005, 2006 Timo Schulz
  *
  * This file is part of WinPT.
  *
@@ -140,6 +140,10 @@
 		gpgme_data_write (sumlist, fname, strlen (fname));
 		gpgme_data_write (sumlist, "\r\n", 2);
 	    }
+	    if (IsDlgButtonChecked (dlg, IDC_MDSUM_TOCLIP)) {
+		gpg_data_release_and_set_clipboard (sumlist, 0);
+		break;
+	    }
 	    _snprintf (fname, sizeof (fname)-1, "%s_sums.txt", id2algo (md->mdalgo));
 	    name = get_filesave_dlg (dlg, _("Select file to save checksums"), 
 				     NULL, fname);

Modified: trunk/Src/wptMainProc.cpp
===================================================================
--- trunk/Src/wptMainProc.cpp	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/Src/wptMainProc.cpp	2006-01-24 10:10:15 UTC (rev 165)
@@ -172,7 +172,7 @@
             }
         }
 	else if ((type & PGP_PUBKEY) && !(type & PGP_CLEARSIG))
-	    km_clip_import (GetDesktopWindow (), NULL);
+	    km_clip_import (GetDesktopWindow (), NULL, NULL);
         else {
             dialog_box_param( glob_hinst, (LPCSTR)IDD_WINPT_VERIFY, hwnd,
                               clip_verify_dlg_proc, 0, 
@@ -265,7 +265,7 @@
                               _("Verify"), IDS_WINPT_VERIFY );
         }
         else if ((type & PGP_PUBKEY) || (type & PGP_SECKEY))
-	    km_clip_import (GetDesktopWindow (), NULL);
+	    km_clip_import (GetDesktopWindow (), NULL, NULL);
         else
             msg_box (hwnd, _("Unknown OpenPGP type."), _("Clipboard"), MB_ERR);
     }

Modified: trunk/TODO
===================================================================
--- trunk/TODO	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/TODO	2006-01-24 10:10:15 UTC (rev 165)
@@ -1,7 +1,6 @@
 Feel free if you think there is missing something to mail me.
 
 -0.11.x-
-    * Only create temp files in the $users temp folder.
     * On modern P4 CPUs the thread scheduling mechanism seems to
       cause trouble and the result is that any GPG operation will
       be take much longer as expected.
@@ -16,20 +15,11 @@
 -1.0.0-
     * The key cache reload is much faster when no progress callback
       is used. Allow to disable the progress dialog.
-      
     * Use '!' in the encrypt dialog to use the subkey which was selected
       and not the newest.
-    * revamp the group database code. Use the GPG --group feature and make
-      it possible to convert old groupdb.gpg files into native GPG format.
-      (I work on it)
-
+    * Revamp the group database code. Use the GPG --group feature and make
     * check the file register code
-      WinPT will not associate the files correctly. This is due to the lack
-      of quotes surrounding the executable path. (I know, Timo must be mad
-      about quotes... ;). The workaround is to change the path to the program.
-
     * Secret keyring is stored on drive A.
-    * Use a better GPG directory checking system.
 -1.0.0-
     * Implement to recognize one-pass sigs for files also.
     * CARD

Modified: trunk/TODO-GPGME-PORT.txt
===================================================================
--- trunk/TODO-GPGME-PORT.txt	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/TODO-GPGME-PORT.txt	2006-01-24 10:10:15 UTC (rev 165)
@@ -14,3 +14,5 @@
   long as the file is not too large. The limite is <100 MB.
   Otherwise the process would take too much time and propably
   the window/process freezes up.
+  (This is propably the same P4 problem from the TODO file)
+  
\ No newline at end of file

Modified: trunk/configure.ac
===================================================================
--- trunk/configure.ac	2006-01-20 09:19:15 UTC (rev 164)
+++ trunk/configure.ac	2006-01-24 10:10:15 UTC (rev 165)
@@ -15,7 +15,7 @@
 
 # Version number: Remember to change it immediately *after* a release.
 #                 Add a "-cvs" prefix for non-released code.
-AC_INIT(WinPT, 0.11.6, http://www.winpt.org)
+AC_INIT(WinPT, 0.11.7-cvs, http://www.winpt.org)
 NEED_GPG_VERSION=1.4.2
 NEED_GPGME_API=1
 NEED_GPGME_VERSION=1.1.1



More information about the Winpt-commits mailing list