Index: configure.in
===================================================================
RCS file: /cvs/gnome/seahorse/configure.in,v
retrieving revision 1.71
diff -u -r1.71 configure.in
--- configure.in	4 Jun 2005 03:33:28 -0000	1.71
+++ configure.in	4 Aug 2005 03:32:53 -0000
@@ -47,12 +47,24 @@
     
     for ver in $major_versions; do
       if test "$ver" = "$major"; then
-            
+        if test "1" = "$major"; then
+          AC_DEFINE(GPG_MAJOR, 1,[GPG Major Version])
+        fi
+        
         # Check the minor version 
         for ver2 in $minor_versions; do
           if test "$ver2" = "$minor"; then
-                    
+        	            
             ok="yes"
+            
+            if test "2" = "$minor"; then
+              AC_DEFINE(GPG_MINOR,2,[GPG Minor Version])
+            fi
+            
+            if test "4" = "$minor"; then
+              AC_DEFINE(GPG_MINOR,4,[GPG Minor Version])
+            fi
+            
             break
                     
           fi
Index: libseahorse/seahorse-gpgmex-op.c
===================================================================
RCS file: /cvs/gnome/seahorse/libseahorse/seahorse-gpgmex-op.c,v
retrieving revision 1.1
diff -u -r1.1 seahorse-gpgmex-op.c
--- libseahorse/seahorse-gpgmex-op.c	23 Feb 2005 00:41:56 -0000	1.1
+++ libseahorse/seahorse-gpgmex-op.c	4 Aug 2005 03:32:53 -0000
@@ -23,6 +23,7 @@
 #include <gpgme.h>
 #include <string.h>
 
+#include "config.h"
 #include "seahorse-gpgmex.h"
 
 static gpgme_error_t
@@ -82,6 +83,41 @@
     
     if (gpgme_data_write (keydata, output, strlen (output)) == -1)
         return GPG_E (GPG_ERR_GENERAL);
+    
+    g_free (output);
+    return GPG_OK;
+}
+
+gpgme_error_t 
+gpgmex_op_num_uids		(gpgme_ctx_t ctx,
+						 const char *pattern,
+						 guint *number)
+{
+	gchar *output = NULL;
+    gpgme_error_t err;
+    gchar *args;
+    gchar *found = NULL;
+    
+    g_return_val_if_fail (pattern != NULL, GPG_E (GPG_ERR_INV_VALUE));
+    
+    args = g_strdup_printf ("--list-keys '%s'", 
+                            pattern);
+    
+    err = execute_gpg_command (ctx, args, &output, NULL);
+    g_free (args);
+    
+    if (!GPG_IS_OK (err))
+        return err;
+    
+    found = output;
+	while (found = strstr(found, "uid")){
+		*number = *number + 1;
+		found += 3;
+	}
+
+	if ((GPG_MAJOR == 1) && (GPG_MINOR == 2)){
+		*number = *number + 1;
+	}
     
     g_free (output);
     return GPG_OK;
Index: libseahorse/seahorse-gpgmex.h
===================================================================
RCS file: /cvs/gnome/seahorse/libseahorse/seahorse-gpgmex.h,v
retrieving revision 1.5
diff -u -r1.5 seahorse-gpgmex.h
--- libseahorse/seahorse-gpgmex.h	23 Feb 2005 00:41:56 -0000	1.5
+++ libseahorse/seahorse-gpgmex.h	4 Aug 2005 03:32:53 -0000
@@ -23,6 +23,7 @@
 #define __SEAHORSE_GPGMEX_H__
 
 #include <gpgme.h>
+#include <glib.h>
 
 /* -----------------------------------------------------------------------------
  * ERROR HANDLING 
@@ -85,4 +86,7 @@
                                         const char *pattern,
                                         gpgme_data_t keydata);
 
+gpgme_error_t gpgmex_op_num_uids		(gpgme_ctx_t ctx,
+										 const char *pattern,
+										 guint *number);
 #endif /* __SEAHORSE_GPGMEX_H__ */
Index: libseahorse/seahorse-key.h
===================================================================
RCS file: /cvs/gnome/seahorse/libseahorse/seahorse-key.h,v
retrieving revision 1.6
diff -u -r1.6 seahorse-key.h
--- libseahorse/seahorse-key.h	6 Feb 2005 19:06:57 -0000	1.6
+++ libseahorse/seahorse-key.h	4 Aug 2005 03:32:53 -0000
@@ -67,7 +67,8 @@
 	
 	/*< public >*/
 	gpgme_key_t		  key;
-    struct _SeahorseKeySource *key_source;
+    	struct _SeahorseKeySource *key_source;
+    	GList *photoid_list;
 };
 
 struct _SeahorseKeyClass
Index: libseahorse/seahorse-util.c
===================================================================
RCS file: /cvs/gnome/seahorse/libseahorse/seahorse-util.c,v
retrieving revision 1.43
diff -u -r1.43 seahorse-util.c
--- libseahorse/seahorse-util.c	19 Jul 2005 00:12:21 -0000	1.43
+++ libseahorse/seahorse-util.c	4 Aug 2005 03:32:53 -0000
@@ -857,6 +857,27 @@
     gtk_file_filter_add_pattern (filter, "*");    
     gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);       
 }
+
+void
+seahorse_util_chooser_show_jpeg_files (GtkWidget *dialog)
+{
+	GtkFileFilter* filter = gtk_file_filter_new ();
+    
+    /* Filter for JPEG files, this is meant to be 
+     * used when searching for images to add as a photoid*/
+     
+    gtk_file_filter_set_name (filter, _("All JPEG files"));
+    gtk_file_filter_add_mime_type (filter, "image/jpeg");
+    gtk_file_filter_add_pattern (filter, "*.jpg");    
+    gtk_file_filter_add_pattern (filter, "*.jpeg");
+    gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);    
+    gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (dialog), filter);
+
+    filter = gtk_file_filter_new ();
+    gtk_file_filter_set_name (filter, _("All files"));
+    gtk_file_filter_add_pattern (filter, "*");    
+    gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
+}
     
 void
 seahorse_util_chooser_show_archive_files (GtkWidget *dialog)
Index: libseahorse/seahorse-util.h
===================================================================
RCS file: /cvs/gnome/seahorse/libseahorse/seahorse-util.h,v
retrieving revision 1.33
diff -u -r1.33 seahorse-util.h
--- libseahorse/seahorse-util.h	20 May 2005 19:49:41 -0000	1.33
+++ libseahorse/seahorse-util.h	4 Aug 2005 03:32:53 -0000
@@ -115,6 +115,8 @@
 
 void        seahorse_util_chooser_show_key_files        (GtkWidget *dialog);
 
+void		seahorse_util_chooser_show_jpeg_files		(GtkWidget *dialog);
+
 void        seahorse_util_chooser_show_archive_files    (GtkWidget *dialog);
 
 void        seahorse_util_chooser_set_filename          (GtkWidget *dialog, 
Index: pixmaps/Makefile.am
===================================================================
RCS file: /cvs/gnome/seahorse/pixmaps/Makefile.am,v
retrieving revision 1.5
diff -u -r1.5 Makefile.am
--- pixmaps/Makefile.am	20 May 2005 17:48:02 -0000	1.5
+++ pixmaps/Makefile.am	4 Aug 2005 03:32:53 -0000
@@ -3,7 +3,8 @@
 appicon_DATA = seahorse.png \
                seahorse-secret.png \
                seahorse-key.png \
-               seahorse-share-keys.png
+               seahorse-share-keys.png \
+               seahorse-person.png
 
 appicondir = $(datadir)/pixmaps
 
Index: src/Makefile.am
===================================================================
RCS file: /cvs/gnome/seahorse/src/Makefile.am,v
retrieving revision 1.27
diff -u -r1.27 Makefile.am
--- src/Makefile.am	19 May 2005 22:25:43 -0000	1.27
+++ src/Makefile.am	4 Aug 2005 03:32:53 -0000
@@ -2,6 +2,7 @@
 gladedir = $(datadir)/seahorse/glade/
 localedir = $(datadir)/locale
 pixmapsdir = $(datadir)/pixmaps/
+seahorselibexecbindir = $(libexecdir)/seahorse/
 
 INCLUDES = -I$(top_builddir) \
 	-I$(top_srcdir) \
@@ -10,8 +11,9 @@
 	-DDATA_DIR=\""$(datadir)"\" \
 	-DSEAHORSE_GLADEDIR=\""$(gladedir)"\" \
 	-DLOCALEDIR=\"$(localedir)\" \
-	-DPIXMAPSDIR=\""$(pixmapsdir)"\"
-
+	-DPIXMAPSDIR=\""$(pixmapsdir)"\" \
+	-DEXECDIR=\""$(seahorselibexecbindir)"\"
+	
 if WITH_KEYSERVER
 KEYSERVER_SRCS = seahorse-keyserver-search.c seahorse-keyserver-results.c seahorse-keyserver-sync.c
 else
@@ -64,6 +66,10 @@
 	seahorse-keyserver-results.glade \
 	seahorse-keyserver-results.ui \
     seahorse-keyserver-sync.glade 
+
+seahorselibexecbin_PROGRAMS = xloadimage
+
+xloadimage_SOURCES = seahorse-xloadimage.c 	
 
 @INTLTOOL_DESKTOP_RULE@
 desktopdir = $(datadir)/applications
Index: src/seahorse-key-op.c
===================================================================
RCS file: /cvs/gnome/seahorse/src/seahorse-key-op.c,v
retrieving revision 1.11
diff -u -r1.11 seahorse-key-op.c
--- src/seahorse-key-op.c	29 Mar 2005 05:15:02 -0000	1.11
+++ src/seahorse-key-op.c	4 Aug 2005 03:32:54 -0000
@@ -19,6 +19,8 @@
  * Boston, MA 02111-1307, USA.
  */
 
+#include <sys/param.h> 
+#include <stdlib.h>
 #include <gnome.h>
 
 #include "seahorse-gpgmex.h"
@@ -31,6 +33,7 @@
 #define QUIT "quit"
 #define SAVE "keyedit.save.okay"
 #define YES "Y"
+#define NO "N"
 
 #define PRINT(args)  if(!seahorse_util_print_fd args) return GPG_E (GPG_ERR_GENERAL)
 #define PRINTF(args) if(!seahorse_util_printf_fd args) return GPG_E (GPG_ERR_GENERAL)
@@ -224,7 +227,7 @@
 	    status == GPGME_STATUS_BAD_PASSPHRASE || status == GPGME_STATUS_USERID_HINT ||
 	    status == GPGME_STATUS_SIGEXPIRED || status == GPGME_STATUS_KEYEXPIRED ||
 	    status == GPGME_STATUS_PROGRESS || status == GPGME_STATUS_KEY_CREATED ||
-	    status == GPGME_STATUS_ALREADY_SIGNED)
+	    status == GPGME_STATUS_ALREADY_SIGNED || status == GPGME_STATUS_MISSING_PASSPHRASE)
 		return parms->err;
 
 	/* Choose the next state based on the current one and the input */
@@ -2032,4 +2035,556 @@
                 del_uid_transit, del_uid_parm);
  
     return edit_key (skey, parms, SKEY_CHANGE_UIDS);    
+}
+
+
+typedef struct {
+	gchar *filename;
+} GetPhotoIdAddParm;
+
+typedef enum {
+    GET_PHOTO_ID_ADD_START,
+    GET_PHOTO_ID_ADD_COMMAND,
+    GET_PHOTO_ID_ADD_URI,
+    GET_PHOTO_ID_ADD_BIG,
+    GET_PHOTO_ID_ADD_QUIT,
+    GET_PHOTO_ID_ADD_SAVE,
+    GET_PHOTO_ID_ADD_ERROR
+} GetPhotoIdAddState;
+
+/* action helper for adding a photoid to a #SeahorseKey */
+static gpgme_error_t
+get_photoid_add_action (guint state, gpointer data, int fd)
+{
+    GetPhotoIdAddParm *parm = (GetPhotoIdAddParm*)data;
+    GtkWidget *question, *delete_button, *cancel_button;
+    gint response;
+    
+    switch (state) {
+	    case GET_PHOTO_ID_ADD_COMMAND:
+	    	seahorse_util_print_fd (fd, "addphoto");
+	        break;
+	    case GET_PHOTO_ID_ADD_URI:
+			//tell gpg which file to use
+			seahorse_util_print_fd(fd, parm->filename);
+	    	break;
+	    case GET_PHOTO_ID_ADD_BIG:
+	    	//let the user know their file is big and ask them if they still want to use it
+	    	question = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL,
+		                        GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE,
+		                        _("This photo ID file is very large.  Are you sure you want to add it to your key?"));
+		    
+		    delete_button = gtk_button_new_from_stock (GTK_STOCK_ADD);
+		    cancel_button = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
+
+		    //add widgets to action area
+		    gtk_dialog_add_action_widget(GTK_DIALOG(question), GTK_WIDGET (cancel_button), GTK_RESPONSE_REJECT);
+		    gtk_dialog_add_action_widget(GTK_DIALOG(question), GTK_WIDGET (delete_button), GTK_RESPONSE_ACCEPT);
+		   
+		    //show widgets
+		    gtk_widget_show (delete_button);
+		    gtk_widget_show (cancel_button);
+		       
+		    response = gtk_dialog_run (GTK_DIALOG (question));
+		    gtk_widget_destroy (question);
+		    
+	        seahorse_util_print_fd (fd, (response == GTK_RESPONSE_ACCEPT) ? YES : NO);
+	        break;
+	    case GET_PHOTO_ID_ADD_QUIT:
+	        seahorse_util_print_fd (fd, QUIT);
+	        break;
+	    case GET_PHOTO_ID_ADD_SAVE:
+	        seahorse_util_print_fd (fd, YES);
+	        break;
+	    default:
+	        g_return_val_if_reached (GPG_E (GPG_ERR_GENERAL));
+	        break;
+    }
+  
+    seahorse_util_print_fd (fd, "\n");
+    return GPG_OK;
+}
+
+static guint
+get_photoid_add_transit (guint current_state, gpgme_status_code_t status,
+            const gchar *args, gpointer data, gpgme_error_t *err)
+{
+    guint next_state;
+    struct stat buf;
+    GetPhotoIdAddParm *parm = (GetPhotoIdAddParm*)data;
+	
+    switch (current_state) {
+    
+    /* start, get photoid list */
+    case GET_PHOTO_ID_ADD_START:
+        if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
+            next_state = GET_PHOTO_ID_ADD_COMMAND;
+        else {
+            *err = GPG_E (GPG_ERR_GENERAL);
+            g_return_val_if_reached (GET_PHOTO_ID_ADD_ERROR);
+        }
+        break;
+    case GET_PHOTO_ID_ADD_COMMAND:
+		if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, "photoid.jpeg.add")){
+			next_state = GET_PHOTO_ID_ADD_URI;
+		}
+		else {
+			*err = GPG_E (GPG_ERR_GENERAL);
+			g_return_val_if_reached (GET_PHOTO_ID_ADD_ERROR);
+        }
+        break;
+   case GET_PHOTO_ID_ADD_URI:
+		if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT)){
+			next_state = GET_PHOTO_ID_ADD_QUIT;
+		}
+		else if (status == GPGME_STATUS_GET_BOOL && g_str_equal (args, "photoid.jpeg.size")){
+			next_state = GET_PHOTO_ID_ADD_BIG;
+		}
+		else {
+            *err = GPG_E (GPG_ERR_GENERAL);
+            fprintf(stderr, "args = %s\n", args);
+            g_return_val_if_reached (GET_PHOTO_ID_ADD_ERROR);
+        }
+	break;
+    case GET_PHOTO_ID_ADD_BIG:
+		if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT)){
+			next_state = GET_PHOTO_ID_ADD_QUIT;
+		}
+        else {
+            *err = GPG_E (GPG_ERR_GENERAL);
+            g_return_val_if_reached (GET_PHOTO_ID_ADD_ERROR);
+        }
+        break;
+    case GET_PHOTO_ID_ADD_QUIT:
+    	if (status == GPGME_STATUS_GET_BOOL && g_str_equal (args, SAVE)){
+			next_state = GET_PHOTO_ID_ADD_SAVE;
+		}
+        else {
+            *err = GPG_E (GPG_ERR_GENERAL);
+            g_return_val_if_reached (GET_PHOTO_ID_ADD_ERROR);
+        }
+        break;
+    default:
+        *err = GPG_E (GPG_ERR_GENERAL);
+        g_return_val_if_reached (GET_PHOTO_ID_ADD_ERROR);
+        break;
+    }
+    
+    return next_state;
+}
+
+/**
+ * seahorse_key_op_photoid_add:
+ * @skey: #SeahorseKey to add photoid to
+ * @uri: path to jpeg image to be added
+ *
+ * Tries to add @uri to @skey as a photoid.
+ *
+ * Returns: Error value
+ **/
+gpgme_error_t seahorse_key_op_photoid_add	(SeahorseKey *skey,
+											 gchar *filename)
+{
+	SeahorseEditParm *parms;
+	GetPhotoIdAddParm *get_photoid_add_parm;
+	gpgme_error_t err;
+	get_photoid_add_parm = g_new0 (GetPhotoIdAddParm, 1);
+	get_photoid_add_parm->filename = filename;
+	
+	parms = seahorse_edit_parm_new (GET_PHOTO_ID_ADD_START, get_photoid_add_action,
+					get_photoid_add_transit, get_photoid_add_parm);
+	
+	/* add photoid */
+	err = edit_key (skey, parms, SKEY_CHANGE_UIDS);
+	
+    return err;
+}
+
+/**
+ * seahorse_key_op_photoid_delete:
+ * @skey: #SeahorseKey whose photoid to delete
+ * @uid: uid of photoid to delete
+ *
+ * Tries to delete photoid @uid from @skey. This uses the transit
+ * and action functions from seahorse_key_op_del_uid.
+ *
+ * Returns: Error value
+ **/
+gpgme_error_t seahorse_key_op_photoid_delete	(SeahorseKey *skey,
+						 const guint uid)
+{
+    DelUidParm *del_uid_parm;
+    SeahorseEditParm *parms;
+ 
+    g_return_val_if_fail (SEAHORSE_IS_KEY (skey), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
+      
+    del_uid_parm = g_new0 (DelUidParm, 1);
+    del_uid_parm->index = uid;
+   
+    parms = seahorse_edit_parm_new (DEL_UID_START, del_uid_action,
+                del_uid_transit, del_uid_parm);
+ 
+    return edit_key (skey, parms, SKEY_CHANGE_UIDS);    
+}
+
+typedef struct {
+	GList *list;
+	gint uid;
+	gint num_uids;
+	char *output_file;
+} GetPhotoIdListParm;
+
+typedef enum {
+    GET_PHOTO_ID_LIST_START,
+    GET_PHOTO_ID_LIST_COMMAND,
+    GET_PHOTO_ID_LIST_SELECT_UID,
+    GET_PHOTO_ID_LIST_OUTPUT_IMAGE,
+    GET_PHOTO_ID_LIST_CHECK_OUTPUT,
+    GET_PHOTO_ID_LIST_QUIT,
+    GET_PHOTO_ID_LIST_SAVE,
+    GET_PHOTO_ID_LIST_ERROR
+} GetPhotoIdListState;
+
+/* action helper for getting a list of photoids attached to a #SeahorseKey */
+static gpgme_error_t
+get_photoid_list_action (guint state, gpointer data, int fd)
+{
+    GetPhotoIdListParm *parm = (GetPhotoIdListParm*)data;
+    gchar num[17];
+    
+    switch (state) {
+	    case GET_PHOTO_ID_LIST_COMMAND:
+	    	seahorse_util_print_fd (fd, "uid");
+	        break;
+	    case GET_PHOTO_ID_LIST_SELECT_UID:
+			//select the next UID
+			seahorse_util_print_fd(fd, g_ascii_dtostr(num, sizeof(num),parm->uid));
+	    	break;
+	    case GET_PHOTO_ID_LIST_OUTPUT_IMAGE:
+	    	//tell GPG to output the photo
+	        seahorse_util_print_fd (fd, "showphoto");
+	        break;
+	    case GET_PHOTO_ID_LIST_QUIT:
+	        seahorse_util_print_fd (fd, QUIT);
+	        break;
+	    case GET_PHOTO_ID_LIST_SAVE:
+	        seahorse_util_print_fd (fd, YES);
+	        break;
+	    default:
+	        g_return_val_if_reached (GPG_E (GPG_ERR_GENERAL));
+	        break;
+    }
+  
+    seahorse_util_print_fd (fd, "\n");
+    return GPG_OK;
+}
+
+static guint
+get_photoid_list_transit (guint current_state, gpgme_status_code_t status,
+            const gchar *args, gpointer data, gpgme_error_t *err)
+{
+    guint next_state;
+    struct stat buf;
+    GetPhotoIdListParm *parm = (GetPhotoIdListParm*)data;
+	
+    switch (current_state) {
+    
+    /* start, get photoid list */
+    case GET_PHOTO_ID_LIST_START:
+        if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
+            next_state = GET_PHOTO_ID_LIST_COMMAND;
+        else {
+            *err = GPG_E (GPG_ERR_GENERAL);
+            g_return_val_if_reached (GET_PHOTO_ID_LIST_ERROR);
+        }
+        break;
+    case GET_PHOTO_ID_LIST_COMMAND:
+		if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT)){
+			next_state = GET_PHOTO_ID_LIST_SELECT_UID;
+		}
+		else {
+			*err = GPG_E (GPG_ERR_GENERAL);
+			g_return_val_if_reached (GET_PHOTO_ID_LIST_ERROR);
+        }
+        break;
+   case GET_PHOTO_ID_LIST_SELECT_UID:
+		if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT)){
+			next_state = GET_PHOTO_ID_LIST_OUTPUT_IMAGE;
+		}
+		else {
+            *err = GPG_E (GPG_ERR_GENERAL);
+            g_return_val_if_reached (GET_PHOTO_ID_LIST_ERROR);
+        }
+		break;
+    case GET_PHOTO_ID_LIST_OUTPUT_IMAGE:
+    	stat(parm->output_file, &buf);
+    	remove(parm->output_file);
+    	if (buf.st_size > 0){
+    		parm->list = g_list_append(parm->list, GINT_TO_POINTER(parm->uid));
+		}
+    	if (parm->uid < parm->num_uids){
+    		parm->uid = parm->uid + 1;
+    		if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT)){
+				next_state = GET_PHOTO_ID_LIST_COMMAND;
+			}
+	        else {
+	            *err = GPG_E (GPG_ERR_GENERAL);
+	            g_return_val_if_reached (GET_PHOTO_ID_LIST_ERROR);
+	        }
+        }
+        else {
+			if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT)){
+				next_state = GET_PHOTO_ID_LIST_QUIT;
+			}
+	        else {
+	            *err = GPG_E (GPG_ERR_GENERAL);
+	            g_return_val_if_reached (GET_PHOTO_ID_LIST_ERROR);
+	        }
+        }
+        break;
+    case GET_PHOTO_ID_LIST_QUIT:
+    	if (status == GPGME_STATUS_GET_BOOL && g_str_equal (args, SAVE)){
+			next_state = GET_PHOTO_ID_LIST_SAVE;
+		}
+        else {
+            *err = GPG_E (GPG_ERR_GENERAL);
+            g_return_val_if_reached (GET_PHOTO_ID_LIST_ERROR);
+        }
+        break;
+    default:
+        *err = GPG_E (GPG_ERR_GENERAL);
+        fprintf(stderr, "current_state %i\nstatus %i\nargs %s\n", current_state, status, args);
+        fprintf(stderr, "status\nGPGME_STATUS_GET_LINE %i\nGPGME_STATUS_GET_BOOL %i\n",
+        		 GPGME_STATUS_GET_LINE, GPGME_STATUS_GET_BOOL);
+        g_return_val_if_reached (GET_PHOTO_ID_LIST_ERROR);
+        break;
+    }
+    
+    return next_state;
+}
+
+/**
+ * seahorse_key_op_photoid_get_list:
+ * @skey: #SeahorseKey to get list of photoids for
+ *
+ * Tries to create list of photoids for skey.
+ *
+ * Returns: Error value
+ **/
+gpgme_error_t seahorse_key_op_photoid_get_list(SeahorseKey *skey)
+{
+	SeahorseEditParm *parms;
+	GetPhotoIdListParm *get_photoid_list_parm;
+	guint fd;
+	gpgme_error_t err;
+	gboolean r;
+	gint status;
+	GError *error = NULL;
+    gchar *out = NULL;
+	gchar extension[] = ".jpg"; 
+ 	gchar idpath[] = "/tmp/seahorse-photoid-XXXXXX\0\0\0\0";
+ 	gchar *image_path = NULL;
+ 	GString *str;
+	gchar *cmd, *found;
+	gchar path[MAXPATHLEN];
+	 
+ 	fd = mkstemp(idpath);
+ 	
+ 	if(fd == -1)
+ 		err = GPG_E(GPG_ERR_GENERAL);
+ 	else {
+		unlink(idpath);
+ 		close(fd);
+ 		
+ 		image_path = strcat(idpath, extension); 		
+		g_return_val_if_fail (SEAHORSE_IS_KEY (skey), 
+				      GPG_E(GPG_ERR_WRONG_KEY_USAGE));
+	    
+		get_photoid_list_parm = g_new0 (GetPhotoIdListParm, 1);
+		get_photoid_list_parm->uid = 1;
+		get_photoid_list_parm->num_uids = 0;
+		get_photoid_list_parm->list = skey->photoid_list;
+		get_photoid_list_parm->output_file = image_path;
+		
+		if GPG_IS_OK(err = gpgmex_op_num_uids(NULL, 
+											  seahorse_key_get_id(skey->key), 
+											  &(get_photoid_list_parm->num_uids))){
+			
+			setenv("SEAHORSE_IMAGE_FILE", image_path, 1);
+			setenv("OLDPATH", getenv("PATH"), 1);
+			snprintf(path, sizeof(path), "%s:%s", EXECDIR, getenv("PATH"));
+			setenv("PATH", path, 1);
+			
+			parms = seahorse_edit_parm_new (GET_PHOTO_ID_LIST_START, get_photoid_list_action,
+							get_photoid_list_transit, get_photoid_list_parm);
+			
+			/* generate list */
+			err = edit_key (skey, parms, SKEY_CHANGE_UIDS);
+			setenv("PATH", getenv("OLDPATH"), 1);
+			skey->photoid_list = get_photoid_list_parm->list;  
+		}
+ 	}
+ 	
+    return err;
+}
+
+typedef struct {
+    gchar *path;
+    gint uid;
+} GetPhotoIdParm;
+
+typedef enum {
+    GET_PHOTO_ID_START,
+    GET_PHOTO_ID_COMMAND,
+    GET_PHOTO_ID_UID,
+    GET_PHOTO_ID_OUTPUT,
+    GET_PHOTO_ID_QUIT,
+    GET_PHOTO_ID_ERROR
+} GetPhotoIdState;
+
+/* action helper for getting a UID's photoid */
+static gpgme_error_t
+get_photoid_action (guint state, gpointer data, int fd)
+{
+	GetPhotoIdParm *parm = (GetPhotoIdParm*)data;
+    gchar num[17];
+    
+    switch (state) {
+	case GET_PHOTO_ID_COMMAND:
+		//tell GPG to output the photo
+		seahorse_util_print_fd (fd, "uid");
+		break;
+	case GET_PHOTO_ID_UID:
+		//tell GPG to output the photo
+		seahorse_util_print_fd (fd, g_ascii_dtostr(num, sizeof(num), parm->uid));
+		break;
+	case GET_PHOTO_ID_OUTPUT:
+		//tell GPG to output the photo
+		seahorse_util_print_fd (fd, "showphoto");
+		break;
+    case GET_PHOTO_ID_QUIT:
+        seahorse_util_print_fd (fd, QUIT);
+        break;
+    default:
+        g_return_val_if_reached (GPG_E (GPG_ERR_GENERAL));
+        break;
+    }
+  
+    seahorse_util_print_fd (fd, "\n");
+    return GPG_OK;
+}
+
+/* Transit Function for getting photo ids*/
+static guint
+get_photoid_transit (guint current_state, gpgme_status_code_t status,
+            const gchar *args, gpointer data, gpgme_error_t *err)
+{
+    guint next_state;
+
+    switch (current_state) {
+
+    /* start, output photoid */
+    case GET_PHOTO_ID_START:
+        if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
+            next_state = GET_PHOTO_ID_COMMAND;
+        else {
+            *err = GPG_E (GPG_ERR_GENERAL);
+            g_return_val_if_reached (GET_PHOTO_ID_ERROR);
+        }
+        break;
+	case GET_PHOTO_ID_COMMAND:
+		if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
+			next_state = GET_PHOTO_ID_UID;
+		else {
+			*err = GPG_E (GPG_ERR_GENERAL);
+			g_return_val_if_reached (GET_PHOTO_ID_ERROR);
+		}
+		break;
+	case GET_PHOTO_ID_UID:
+		if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
+			next_state = GET_PHOTO_ID_OUTPUT;
+		else {
+			*err = GPG_E (GPG_ERR_GENERAL);
+			g_return_val_if_reached (GET_PHOTO_ID_ERROR);
+		}
+		break;
+	case GET_PHOTO_ID_OUTPUT:
+		if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
+			next_state = GET_PHOTO_ID_QUIT;
+		else {
+			*err = GPG_E (GPG_ERR_GENERAL);
+			g_return_val_if_reached (GET_PHOTO_ID_ERROR);
+		}
+		break;
+    default:
+        *err = GPG_E (GPG_ERR_GENERAL);
+        g_return_val_if_reached (GET_PHOTO_ID_ERROR);
+        break;
+    }
+    
+	return next_state;
+}
+
+/**
+ * seahorse_key_op_photoid_get:
+ * @skey: #SeahorseKey to get photo id from
+ * @uid: uid of photoid to retrieve
+ * @image: empty pointer to be filled with path and image filename
+ *
+ * Tries to output the given photoid and then pass back the path and filename
+ *
+ * Returns: Error value
+ **/
+gpgme_error_t seahorse_key_op_photoid_get	(SeahorseKey *skey,
+											 gint uid,
+											 gchar *image)
+{
+    GetPhotoIdParm *get_photoid_parm;
+    SeahorseEditParm *parms;
+    guint fd;
+    gpgme_error_t err;
+	gchar extension[] = ".jpg"; 
+ 	gchar path[] = "/tmp/seahorse-photoid-XXXXXX\0\0\0\0";
+ 	gchar *image_path;
+ 	gchar path_env[255];
+ 
+ 	fd = mkstemp(path);
+ 	
+ 	if(fd == -1)
+ 		err = GPG_E(GPG_ERR_GENERAL);
+ 	else
+ 	{
+ 		unlink(path);
+ 		close(fd);
+ 		
+ 		image_path = strcat(path, extension); 		
+ 		
+	 	g_return_val_if_fail (SEAHORSE_IS_KEY (skey), 
+	 						  GPG_E(GPG_ERR_WRONG_KEY_USAGE));
+	    
+	    get_photoid_parm = g_new0 (GetPhotoIdParm, 1);
+	    get_photoid_parm->path = image_path;
+		get_photoid_parm->uid = uid;
+	   
+	    parms = seahorse_edit_parm_new (GET_PHOTO_ID_START, get_photoid_action,
+	                get_photoid_transit, get_photoid_parm);
+
+	    /* output photo */
+		setenv("SEAHORSE_IMAGE_FILE", image_path, 1);
+		setenv("OLDPATH", getenv("PATH"), 1);
+		snprintf(path_env, sizeof(path_env), "%s:%s", EXECDIR, getenv("PATH"));
+		setenv("PATH", path_env, 1);
+		
+		parms = seahorse_edit_parm_new (GET_PHOTO_ID_LIST_START, get_photoid_action,
+						get_photoid_transit, get_photoid_parm);
+		
+		/* generate list */
+		err = edit_key (skey, parms, SKEY_CHANGE_UIDS);
+		
+		setenv("PATH", getenv("OLDPATH"), 1);							   
+ 	}
+ 	
+ 	strncpy(image, path, strlen(path));
+  	
+    return err;
 }
Index: src/seahorse-key-op.h
===================================================================
RCS file: /cvs/gnome/seahorse/src/seahorse-key-op.h,v
retrieving revision 1.5
diff -u -r1.5 seahorse-key-op.h
--- src/seahorse-key-op.h	30 Oct 2004 16:08:43 -0000	1.5
+++ src/seahorse-key-op.h	4 Aug 2005 03:32:54 -0000
@@ -158,6 +158,16 @@
                                                  const guint index,
                                                  SeahorseRevokeReason reason,
                                                  const gchar *description);
+                                                 
+gpgme_error_t seahorse_key_op_photoid_add	(SeahorseKey *skey,
+											 gchar *filename);
 
-                             							 
+gpgme_error_t seahorse_key_op_photoid_delete	(SeahorseKey *skey,
+												 const guint uid);
+
+gpgme_error_t seahorse_key_op_photoid_get_list  (SeahorseKey *skey);
+						 
+gpgme_error_t seahorse_key_op_photoid_get	(SeahorseKey *skey,
+											 gint uid,
+											 gchar *image);					 
 #endif /* __SEAHORSE_KEY_OP_H__ */
Index: src/seahorse-key-properties.c
===================================================================
RCS file: /cvs/gnome/seahorse/src/seahorse-key-properties.c,v
retrieving revision 1.35
diff -u -r1.35 seahorse-key-properties.c
--- src/seahorse-key-properties.c	4 Apr 2005 04:24:27 -0000	1.35
+++ src/seahorse-key-properties.c	4 Aug 2005 03:32:54 -0000
@@ -21,6 +21,7 @@
 
 #include <gnome.h>
 #include <time.h>
+#include <sys/stat.h>
 
 #include "seahorse-gpgmex.h"
 #include "seahorse-key-dialogs.h"
@@ -32,13 +33,15 @@
 #define NOTEBOOK "notebook"
 #define SPACING 12
 
+static GList *current_photoid = NULL;
+
 static gint
 get_subkey_index (SeahorseWidget *swidget)
 {
-    gint index = gtk_notebook_get_current_page (GTK_NOTEBOOK (
-        glade_xml_get_widget (swidget->xml, NOTEBOOK))) - 3;
-    g_return_val_if_fail (index >= 0, -1);
-    return index;        
+	gint index = gtk_notebook_get_current_page (GTK_NOTEBOOK (
+	glade_xml_get_widget (swidget->xml, NOTEBOOK))) - 3;
+	g_return_val_if_fail (index >= 0, -1);
+	return index;        
 }
 
 
@@ -717,10 +720,376 @@
                                           key_changed, swidget);
     g_signal_handlers_disconnect_by_func (SEAHORSE_KEY_WIDGET (swidget)->skey,
                                           key_destroyed, swidget);
+    
+    g_list_free(SEAHORSE_KEY_WIDGET(swidget)->skey->photoid_list);
+    SEAHORSE_KEY_WIDGET(swidget)->skey->photoid_list = NULL;
+    current_photoid = NULL;
 }
 
+/*
+ * Begin Photo ID Functions 
+ */
+static void
+photoid_add_clicked(GtkWidget *widget, SeahorseWidget *swidget)
+{
+	SeahorseKey *skey;
+	char* filename = NULL;
+    gpgme_error_t error;
+	struct stat buf;
+	gint statResp, uid;
+	GList *first = NULL;
+	GtkWidget *chooser;
+	gchar *image = g_malloc0(35);
+	
+    skey = SEAHORSE_KEY_WIDGET (swidget)->skey;
+    chooser = seahorse_util_chooser_open_new (_("Add Photo ID"), 
+                	GTK_WINDOW(glade_xml_get_widget (swidget->xml, "key-properties")));             	
+	gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (chooser), TRUE);		
+    seahorse_util_chooser_show_jpeg_files (chooser);
+	
+	if(gtk_dialog_run (GTK_DIALOG (chooser)) == GTK_RESPONSE_ACCEPT)
+        filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser));
+        
+    gtk_widget_destroy (chooser);
+
+    if(filename) {
+		if((error = seahorse_key_op_photoid_add(skey, filename)) == GPG_E(GPG_OK)){
+			/* update list and refresh view */
+			g_list_free(skey->photoid_list);
+			skey->photoid_list = NULL;
+			current_photoid = NULL;
+			
+			if((error = seahorse_key_op_photoid_get_list(skey)) == GPG_E(GPG_OK)){
+				
+				if(skey->photoid_list != NULL){
+					first = g_list_first(skey->photoid_list);
+				}
+				else {
+					first = NULL;
+				}
+				
+				if(first != NULL){
+					uid = GPOINTER_TO_INT(first->data);
+					
+					if((error = seahorse_key_op_photoid_get(skey, uid, image)) == GPG_E(GPG_OK)){
+						statResp = stat(image, &buf);
+						if((image == NULL) || (statResp == -1)){
+							gtk_widget_set_sensitive(glade_xml_get_widget (swidget->xml, "photoid-next"),
+													 FALSE);
+							gtk_widget_set_sensitive(glade_xml_get_widget (swidget->xml, "photoid-prev"),
+													 FALSE);
+							gtk_widget_set_sensitive(glade_xml_get_widget (swidget->xml, "photoid-delete"),
+													 FALSE);
+						}
+						else {
+							gtk_image_set_from_file(GTK_IMAGE(glade_xml_get_widget (swidget->xml, "photoid")), 
+													 image);
+							remove(image);
+							
+							if(SEAHORSE_IS_KEY_PAIR(skey))
+								gtk_widget_set_sensitive(glade_xml_get_widget (swidget->xml, "photoid-delete"),
+													 TRUE);
+							gtk_widget_set_sensitive(glade_xml_get_widget (swidget->xml, "photoid-prev"),
+													 FALSE);
+							if (g_list_last(skey->photoid_list) != first)
+								gtk_widget_set_sensitive(glade_xml_get_widget (swidget->xml, "photoid-next"),
+													 TRUE);
+							else
+								gtk_widget_set_sensitive(glade_xml_get_widget (swidget->xml, "photoid-next"),
+														 FALSE);
+								current_photoid = first;
+							}
+						}/* End of image == NULL or file doesn't exist*/
+					} /* End of PhotoID get */
+				}  /* End of is first == NULL */
+			}/* End of PhotoID get list */
+		else{
+			/* Add failed TODO: ADD DIALOG*/
+		}
+        
+        g_free (filename);
+    } /* End of if(uri) */
+}
 
+static void
+photoid_delete_clicked(GtkWidget *widget, SeahorseWidget *swidget)
+{
+	SeahorseKey *skey;
+	gpgme_error_t error;
+	struct stat buf;
+	gint statResp;
+	GList *first = NULL;
+	GtkWidget *question, *delete_button, *cancel_button;
+    gint response, uid;
+    gchar *image = g_malloc0(35); 
+    
+	if(current_photoid != NULL){   
+	    question = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL,
+	                        GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE,
+	                        _("Are you sure you want to permanently delete the current photo ID?"));
+	    
+	    delete_button = gtk_button_new_from_stock (GTK_STOCK_DELETE);
+	    cancel_button = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
+
+	    //add widgets to action area
+	    gtk_dialog_add_action_widget(GTK_DIALOG(question), GTK_WIDGET (cancel_button), GTK_RESPONSE_REJECT);
+	    gtk_dialog_add_action_widget(GTK_DIALOG(question), GTK_WIDGET (delete_button), GTK_RESPONSE_ACCEPT);
+	   
+	    //show widgets
+	    gtk_widget_show (delete_button);
+	    gtk_widget_show (cancel_button);
+	       
+	    response = gtk_dialog_run (GTK_DIALOG (question));
+	    gtk_widget_destroy (question);
+		
+		skey = SEAHORSE_KEY_WIDGET (swidget)->skey;
+		uid = GPOINTER_TO_INT(current_photoid->data);
+		
+		if (response == GTK_RESPONSE_ACCEPT){
+			if((error = seahorse_key_op_photoid_delete(skey, uid)) == GPG_E(GPG_OK)){
+				g_list_free(skey->photoid_list);
+				skey->photoid_list = NULL;
+				current_photoid = NULL;
+				
+				if((error = seahorse_key_op_photoid_get_list(skey)) == GPG_E(GPG_OK)){
+					if(skey->photoid_list != NULL){
+						first = g_list_first(skey->photoid_list);
+					}
+					else {
+						first = NULL;
+					}
+					
+					if(first != NULL){
+						uid = GPOINTER_TO_INT(first->data);
+						
+						if((error = seahorse_key_op_photoid_get(skey, uid, image)) == GPG_E(GPG_OK)){
+							statResp = stat(image, &buf);
+							if((image == NULL) || (statResp == -1)){
+								gtk_widget_set_sensitive(glade_xml_get_widget (swidget->xml, "photoid-next"),
+														 FALSE);
+								gtk_widget_set_sensitive(glade_xml_get_widget (swidget->xml, "photoid-prev"),
+														 FALSE);
+								gtk_widget_set_sensitive(glade_xml_get_widget (swidget->xml, "photoid-delete"),
+														 FALSE);
+							}
+							else {
+								gtk_image_set_from_file(GTK_IMAGE(glade_xml_get_widget (swidget->xml, "photoid")), 
+														 image);
+								remove(image);
+								
+								if(SEAHORSE_IS_KEY_PAIR(skey))
+									gtk_widget_set_sensitive(glade_xml_get_widget (swidget->xml, "photoid-delete"),
+														 TRUE);
+								gtk_widget_set_sensitive(glade_xml_get_widget (swidget->xml, "photoid-prev"),
+														 FALSE);
+								if (g_list_last(skey->photoid_list) != first)
+									gtk_widget_set_sensitive(glade_xml_get_widget (swidget->xml, "photoid-next"),
+														 TRUE);
+								else
+									gtk_widget_set_sensitive(glade_xml_get_widget (swidget->xml, "photoid-next"),
+															 FALSE);
+								current_photoid = first;
+							}	
+						}
+					}
+					else{
+						/* No UIDs in List set icon to no photoid */
+						gtk_image_set_from_file(GTK_IMAGE(glade_xml_get_widget (swidget->xml, "photoid")),
+													 PIXMAPSDIR "seahorse-person.png");
+						gtk_widget_set_sensitive(glade_xml_get_widget (swidget->xml, "photoid-next"),
+												 FALSE);
+						gtk_widget_set_sensitive(glade_xml_get_widget (swidget->xml, "photoid-prev"),
+												 FALSE);
+						gtk_widget_set_sensitive(glade_xml_get_widget (swidget->xml, "photoid-delete"),
+												 FALSE);										 
+					}
+				}
+				else{
+					fprintf(stderr, "Couldn't acquire new list\n");
+				}
+			}
+			else{
+				/* Couldn't delete photoid */
+			}
+		}
+	}
+}
 
+static void
+photoid_next_clicked(GtkWidget *widget, SeahorseWidget *swidget)
+{
+	SeahorseKey *skey;
+	gchar *image = g_malloc0(35);
+	struct stat buf;
+	gint statResp, uid;
+	gpgme_error_t error;
+	
+	skey = SEAHORSE_KEY_WIDGET(swidget)->skey;
+	
+	GList *next_photoid = g_list_next(current_photoid);
+	
+	if(next_photoid != NULL){
+		uid = GPOINTER_TO_INT(next_photoid->data);
+		
+		if((error = seahorse_key_op_photoid_get(skey, uid, image)) == GPG_E(GPG_OK)){
+			statResp = stat(image, &buf);
+			
+			if((image == NULL) || (statResp == -1)){
+				gtk_widget_set_sensitive(glade_xml_get_widget(swidget->xml, "photoid-next"), FALSE);
+				fprintf(stderr, "Couldn't fetch image %s %i\n", image, statResp);
+			}
+			else{
+				gtk_image_set_from_file(GTK_IMAGE(glade_xml_get_widget (swidget->xml, "photoid")), 
+										image);
+				remove(image);
+				
+				if(SEAHORSE_IS_KEY_PAIR(skey))
+					gtk_widget_set_sensitive(glade_xml_get_widget(swidget->xml, "photoid-delete"), TRUE);
+				gtk_widget_set_sensitive(glade_xml_get_widget(swidget->xml, "photoid-prev"), TRUE);
+				if (g_list_last(skey->photoid_list) != next_photoid)
+					gtk_widget_set_sensitive(glade_xml_get_widget (swidget->xml, "photoid-next"),
+											 TRUE);
+				else
+					gtk_widget_set_sensitive(glade_xml_get_widget (swidget->xml, "photoid-next"),
+											 FALSE);
+				current_photoid = next_photoid;
+			}
+			
+			unlink(image);	
+			g_free(image);
+		}
+	}
+}
+
+static void
+photoid_prev_clicked(GtkWidget *widget, SeahorseWidget *swidget)
+{
+	SeahorseKey *skey;
+	gchar *image = g_malloc0(35);
+	struct stat buf;
+	gint statResp, uid;
+	gpgme_error_t error;
+	
+	skey = SEAHORSE_KEY_WIDGET (swidget)->skey;
+	
+	GList *prev_photoid = g_list_previous(current_photoid);
+
+	if(prev_photoid != NULL){
+		uid = GPOINTER_TO_INT(prev_photoid->data);
+		
+		if((error = seahorse_key_op_photoid_get(skey, uid,image)) == GPG_E(GPG_OK)){
+			statResp = stat(image, &buf);
+			
+			if((image == NULL) || (statResp == -1)){
+				gtk_widget_set_sensitive(glade_xml_get_widget(swidget->xml, "photoid-prev"), FALSE);
+				fprintf(stderr, "Couldn't fetch image %s %i\n", image, statResp);
+			}
+			else{
+				gtk_image_set_from_file(GTK_IMAGE(glade_xml_get_widget (swidget->xml, "photoid")),
+										image);
+				remove(image);
+				
+				if(SEAHORSE_IS_KEY_PAIR(skey))
+					gtk_widget_set_sensitive(glade_xml_get_widget(swidget->xml, "photoid-delete"), TRUE);
+				gtk_widget_set_sensitive(glade_xml_get_widget(swidget->xml, "photoid-next"), TRUE);
+				if (g_list_first(skey->photoid_list) != prev_photoid)
+					gtk_widget_set_sensitive(glade_xml_get_widget(swidget->xml, "photoid-prev"), TRUE);
+				else
+					gtk_widget_set_sensitive(glade_xml_get_widget(swidget->xml, "photoid-prev"), FALSE);
+				current_photoid = prev_photoid;
+			}
+			
+			unlink(image);	
+			g_free(image);
+		}
+	}
+}
+
+/*
+ * This function loads the photo from the first photoid of the skey if there is one
+ */
+static void
+photo_id (SeahorseWidget *swidget, SeahorseKey *skey)
+{
+	gpgme_error_t error;
+	GdkPixbuf *photoId = NULL;
+	gchar *image = g_malloc0(35);
+	struct stat buf;
+	gint statResp, uid;
+	GList *first = NULL;
+	GtkWidget *widget = NULL;
+	
+	GtkWidget *photo_image = glade_xml_get_widget (swidget->xml, "photoid");
+	GtkWidget *next_button = glade_xml_get_widget(swidget->xml, "photoid-next");
+	GtkWidget *prev_button = glade_xml_get_widget(swidget->xml, "photoid-prev");
+	GtkWidget *del_button = glade_xml_get_widget(swidget->xml, "photoid-delete");
+	GtkWidget *add_button = glade_xml_get_widget(swidget->xml, "photoid-add");
+	
+	if(SEAHORSE_IS_KEY_PAIR(skey)) {
+		/* Photo ID controls */
+        widget = glade_xml_get_widget (swidget->xml, "photoid-add");
+        gtk_widget_set_sensitive(add_button, TRUE);
+        glade_xml_signal_connect_data (swidget->xml, "photoid_add_clicked",
+        	    G_CALLBACK (photoid_add_clicked), swidget);
+        	    
+		widget = glade_xml_get_widget (swidget->xml, "photoid-delete");
+        gtk_widget_set_sensitive(del_button, FALSE);
+        glade_xml_signal_connect_data (swidget->xml, "photoid_delete_clicked",
+        	    G_CALLBACK (photoid_delete_clicked), swidget);            
+	}
+	else {
+		gtk_widget_set_sensitive(del_button, FALSE);
+		gtk_widget_set_sensitive(add_button, FALSE);
+	}
+
+	
+	/* The list could be filled with useless/old data */
+	skey->photoid_list = NULL;
+	
+	if ((error = seahorse_key_op_photoid_get_list(skey)) == GPG_E(GPG_OK)){
+		first = g_list_first(skey->photoid_list);
+
+		if(first != NULL){
+			uid = GPOINTER_TO_INT(first->data);
+			
+			if((error = seahorse_key_op_photoid_get(skey, uid, image)) == GPG_E(GPG_OK)){
+				statResp = stat(image, &buf);
+				
+				if((image == NULL) || (statResp == -1)){
+					gtk_widget_set_sensitive(next_button, FALSE);
+					gtk_widget_set_sensitive(prev_button, FALSE);
+					gtk_widget_set_sensitive(del_button, FALSE);
+					fprintf(stderr, "Couldn't fetch image %s %i\n", image, statResp);
+				}
+				else{
+					gtk_image_set_from_file(GTK_IMAGE(photo_image), image);
+					if(SEAHORSE_IS_KEY_PAIR(skey))
+						gtk_widget_set_sensitive(del_button, TRUE);
+					gtk_widget_set_sensitive(prev_button, FALSE);
+					if(g_list_last(skey->photoid_list) != first)
+						gtk_widget_set_sensitive(next_button, TRUE);
+					else
+						gtk_widget_set_sensitive(next_button, FALSE);
+					current_photoid = first;
+				}
+				
+				unlink(image);	
+				g_free(image);
+			}
+		}
+		else{
+			/* Put up default image if no photoids are found */
+			gtk_image_set_from_file(GTK_IMAGE(photo_image),
+									PIXMAPSDIR "seahorse-person.png");
+			//gtk_widget_set_sensitive(del_button, FALSE);
+		}
+	}
+	else{
+		fprintf(stderr, "seahorse_key_op_photoid_get_list threw error\n");
+		gtk_image_set_from_file(GTK_IMAGE(photo_image),
+								PIXMAPSDIR "seahorse-person.png");
+	}
+}
 
 void
 seahorse_key_properties_new (SeahorseContext *sctx, SeahorseKey *skey)
@@ -744,15 +1113,16 @@
         g_return_if_fail (skey != NULL);                
     }
 	
-	swidget = seahorse_key_widget_new ("key-properties", sctx, skey);
-	g_return_if_fail (swidget != NULL);
-	
-	widget = glade_xml_get_widget (swidget->xml, swidget->name);
-	g_signal_connect (GTK_OBJECT (widget), "destroy", G_CALLBACK (properties_destroyed), swidget);
+    swidget = seahorse_key_widget_new ("key-properties", sctx, skey);
+    g_return_if_fail (swidget != NULL);
+
+    widget = glade_xml_get_widget (swidget->xml, swidget->name);
+    g_signal_connect (GTK_OBJECT (widget), "destroy", G_CALLBACK (properties_destroyed), swidget);
     g_signal_connect_after (skey, "changed", G_CALLBACK (key_changed), swidget);
     g_signal_connect_after (skey, "destroy", G_CALLBACK (key_destroyed), swidget);
 	
-	key_property_labels (swidget);
+    key_property_labels (swidget);
+    photo_id(swidget, skey);
     
     /* Secret key stuff */    
     if(SEAHORSE_IS_KEY_PAIR (skey)) {
@@ -770,7 +1140,7 @@
                     G_CALLBACK (export_clicked), swidget);
     }
 
-	do_subkeys (swidget);
+    do_subkeys (swidget);
     do_uid_list (swidget);
 
     /* Disable stuff not appropriate for remote */
@@ -797,6 +1167,13 @@
                     G_CALLBACK (uid_sign_clicked), swidget);
         glade_xml_signal_connect_data (swidget->xml, "uid_delete_clicked",
                     G_CALLBACK (uid_delete_clicked), swidget);
+        
+        /* Photo ID controls */
+        glade_xml_signal_connect_data (swidget->xml, "photoid_next_clicked",
+        	    G_CALLBACK (photoid_next_clicked), swidget);
+        glade_xml_signal_connect_data (swidget->xml, "photoid_prev_clicked",
+        	    G_CALLBACK (photoid_prev_clicked), swidget);
+        	
                     
         /* Signature setup */
         do_signatures (swidget);
@@ -809,6 +1186,7 @@
             widget = glade_xml_get_widget (swidget->xml, "unknown");
         else
             widget = glade_xml_get_widget (swidget->xml, "ultimate");
+            
         gtk_widget_set_sensitive (widget, FALSE);
         
     	gtk_option_menu_set_history (GTK_OPTION_MENU (glade_xml_get_widget (swidget->xml, "trust")),
@@ -819,8 +1197,8 @@
                                        G_CALLBACK (disabled_toggled), swidget);
     }
 	
-	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (glade_xml_get_widget (swidget->xml, "disabled")),
-		                          skey->key->disabled);
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (glade_xml_get_widget (swidget->xml, "disabled")),
+		                  skey->key->disabled);
 
     seahorse_widget_show (swidget);    
 }
Index: src/seahorse-key-properties.glade
===================================================================
RCS file: /cvs/gnome/seahorse/src/seahorse-key-properties.glade,v
retrieving revision 1.6
diff -u -r1.6 seahorse-key-properties.glade
--- src/seahorse-key-properties.glade	23 Feb 2005 00:41:56 -0000	1.6
+++ src/seahorse-key-properties.glade	4 Aug 2005 03:32:54 -0000
@@ -16,6 +16,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <signal name="delete_event" handler="delete_event" last_modification_time="Sat, 08 Mar 2003 02:23:32 GMT"/>
 
   <child>
@@ -36,725 +37,1202 @@
 	  <property name="enable_popup">True</property>
 
 	  <child>
-	    <widget class="GtkVBox" id="vbox2">
-	      <property name="border_width">12</property>
+	    <widget class="GtkHBox" id="hbox9">
 	      <property name="visible">True</property>
 	      <property name="homogeneous">False</property>
-	      <property name="spacing">6</property>
+	      <property name="spacing">0</property>
 
 	      <child>
-		<widget class="GtkTable" id="primary_table">
+		<widget class="GtkVBox" id="vbox4">
 		  <property name="visible">True</property>
-		  <property name="n_rows">9</property>
-		  <property name="n_columns">4</property>
 		  <property name="homogeneous">False</property>
-		  <property name="row_spacing">0</property>
-		  <property name="column_spacing">12</property>
+		  <property name="spacing">0</property>
 
 		  <child>
-		    <widget class="GtkLabel" id="label_name">
+		    <widget class="GtkImage" id="photoid">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes"></property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
+		      <property name="icon_name"></property>
+		      <property name="xalign">0.5</property>
 		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
+		      <property name="xpad">13</property>
 		      <property name="ypad">0</property>
 		    </widget>
 		    <packing>
-		      <property name="left_attach">1</property>
-		      <property name="right_attach">2</property>
-		      <property name="top_attach">1</property>
-		      <property name="bottom_attach">2</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
 		    </packing>
 		  </child>
 
 		  <child>
-		    <widget class="GtkLabel" id="label24">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Name:</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">10</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">0</property>
-		      <property name="right_attach">1</property>
-		      <property name="top_attach">1</property>
-		      <property name="bottom_attach">2</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
+		    <placeholder/>
 		  </child>
 
 		  <child>
-		    <widget class="GtkLabel" id="label25">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;b&gt;Owner&lt;/b&gt;</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">6</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">0</property>
-		      <property name="right_attach">2</property>
-		      <property name="top_attach">0</property>
-		      <property name="bottom_attach">1</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
+		    <placeholder/>
 		  </child>
 
 		  <child>
-		    <widget class="GtkLabel" id="label26">
+		    <widget class="GtkHButtonBox" id="hbuttonbox2">
+		      <property name="border_width">4</property>
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Email:</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">10</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">0</property>
-		      <property name="right_attach">1</property>
-		      <property name="top_attach">2</property>
-		      <property name="bottom_attach">3</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
+		      <property name="layout_style">GTK_BUTTONBOX_DEFAULT_STYLE</property>
+		      <property name="spacing">0</property>
 
-		  <child>
-		    <widget class="GtkLabel" id="label_email">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes"></property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">1</property>
-		      <property name="right_attach">2</property>
-		      <property name="top_attach">2</property>
-		      <property name="bottom_attach">3</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
+		      <child>
+			<widget class="GtkButton" id="photoid-prev">
+			  <property name="visible">True</property>
+			  <property name="sensitive">False</property>
+			  <property name="tooltip" translatable="yes">Go to previous Photo ID</property>
+			  <property name="can_default">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="focus_on_click">True</property>
+			  <signal name="clicked" handler="photoid_prev_clicked" last_modification_time="Sat, 23 Jul 2005 20:11:17 GMT"/>
 
-		  <child>
-		    <widget class="GtkLabel" id="labelComment">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Comment:</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">10</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">0</property>
-		      <property name="right_attach">1</property>
-		      <property name="top_attach">3</property>
-		      <property name="bottom_attach">4</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
+			  <child>
+			    <widget class="GtkAlignment" id="alignment9">
+			      <property name="visible">True</property>
+			      <property name="xalign">0.5</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xscale">0</property>
+			      <property name="yscale">0</property>
+			      <property name="top_padding">0</property>
+			      <property name="bottom_padding">0</property>
+			      <property name="left_padding">0</property>
+			      <property name="right_padding">0</property>
 
-		  <child>
-		    <widget class="GtkLabel" id="label_comment">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes"></property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">1</property>
-		      <property name="right_attach">2</property>
-		      <property name="top_attach">3</property>
-		      <property name="bottom_attach">4</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
+			      <child>
+				<widget class="GtkHBox" id="hbox11">
+				  <property name="visible">True</property>
+				  <property name="homogeneous">False</property>
+				  <property name="spacing">2</property>
 
-		  <child>
-		    <widget class="GtkLabel" id="label20">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;b&gt;Properties&lt;/b&gt;</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">6</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">0</property>
-		      <property name="right_attach">2</property>
-		      <property name="top_attach">4</property>
-		      <property name="bottom_attach">5</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
+				  <child>
+				    <widget class="GtkImage" id="image9">
+				      <property name="visible">True</property>
+				      <property name="stock">gtk-go-back</property>
+				      <property name="icon_size">4</property>
+				      <property name="xalign">0.5</property>
+				      <property name="yalign">0.5</property>
+				      <property name="xpad">0</property>
+				      <property name="ypad">0</property>
+				    </widget>
+				    <packing>
+				      <property name="padding">0</property>
+				      <property name="expand">False</property>
+				      <property name="fill">False</property>
+				    </packing>
+				  </child>
+
+				  <child>
+				    <widget class="GtkLabel" id="label30">
+				      <property name="visible">True</property>
+				      <property name="label">Previous Photo ID</property>
+				      <property name="use_underline">True</property>
+				      <property name="use_markup">False</property>
+				      <property name="justify">GTK_JUSTIFY_LEFT</property>
+				      <property name="wrap">False</property>
+				      <property name="selectable">False</property>
+				      <property name="xalign">0.5</property>
+				      <property name="yalign">0.5</property>
+				      <property name="xpad">0</property>
+				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
+				    </widget>
+				    <packing>
+				      <property name="padding">0</property>
+				      <property name="expand">False</property>
+				      <property name="fill">False</property>
+				    </packing>
+				  </child>
+				</widget>
+			      </child>
+			    </widget>
+			  </child>
+			</widget>
+		      </child>
 
-		  <child>
-		    <widget class="GtkLabel" id="label23">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Key ID:</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">10</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">0</property>
-		      <property name="right_attach">1</property>
-		      <property name="top_attach">5</property>
-		      <property name="bottom_attach">6</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
+		      <child>
+			<widget class="GtkButton" id="photoid-next">
+			  <property name="visible">True</property>
+			  <property name="sensitive">False</property>
+			  <property name="tooltip" translatable="yes">Go to next Photo ID</property>
+			  <property name="can_default">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="focus_on_click">True</property>
+			  <signal name="clicked" handler="photoid_next_clicked" last_modification_time="Sat, 23 Jul 2005 20:09:53 GMT"/>
 
-		  <child>
-		    <widget class="GtkLabel" id="keyid">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes"></property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">True</property>
-		      <property name="selectable">True</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">1</property>
-		      <property name="right_attach">2</property>
-		      <property name="top_attach">5</property>
-		      <property name="bottom_attach">6</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
+			  <child>
+			    <widget class="GtkAlignment" id="alignment10">
+			      <property name="visible">True</property>
+			      <property name="xalign">0.5</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xscale">0</property>
+			      <property name="yscale">0</property>
+			      <property name="top_padding">0</property>
+			      <property name="bottom_padding">0</property>
+			      <property name="left_padding">0</property>
+			      <property name="right_padding">0</property>
 
-		  <child>
-		    <widget class="GtkLabel" id="label28">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;b&gt;Dates&lt;/b&gt;</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">2</property>
-		      <property name="right_attach">3</property>
-		      <property name="top_attach">0</property>
-		      <property name="bottom_attach">1</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
+			      <child>
+				<widget class="GtkHBox" id="hbox12">
+				  <property name="visible">True</property>
+				  <property name="homogeneous">False</property>
+				  <property name="spacing">2</property>
 
-		  <child>
-		    <widget class="GtkLabel" id="label27">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Created:</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">10</property>
-		      <property name="ypad">0</property>
+				  <child>
+				    <widget class="GtkImage" id="image10">
+				      <property name="visible">True</property>
+				      <property name="stock">gtk-go-forward</property>
+				      <property name="icon_size">4</property>
+				      <property name="xalign">0.5</property>
+				      <property name="yalign">0.5</property>
+				      <property name="xpad">0</property>
+				      <property name="ypad">0</property>
+				    </widget>
+				    <packing>
+				      <property name="padding">0</property>
+				      <property name="expand">False</property>
+				      <property name="fill">False</property>
+				    </packing>
+				  </child>
+
+				  <child>
+				    <widget class="GtkLabel" id="label31">
+				      <property name="visible">True</property>
+				      <property name="label">Next Photo ID</property>
+				      <property name="use_underline">True</property>
+				      <property name="use_markup">False</property>
+				      <property name="justify">GTK_JUSTIFY_LEFT</property>
+				      <property name="wrap">False</property>
+				      <property name="selectable">False</property>
+				      <property name="xalign">0.5</property>
+				      <property name="yalign">0.5</property>
+				      <property name="xpad">0</property>
+				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
+				    </widget>
+				    <packing>
+				      <property name="padding">0</property>
+				      <property name="expand">False</property>
+				      <property name="fill">False</property>
+				    </packing>
+				  </child>
+				</widget>
+			      </child>
+			    </widget>
+			  </child>
+			</widget>
+		      </child>
 		    </widget>
 		    <packing>
-		      <property name="left_attach">2</property>
-		      <property name="right_attach">3</property>
-		      <property name="top_attach">1</property>
-		      <property name="bottom_attach">2</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">True</property>
 		    </packing>
 		  </child>
 
 		  <child>
-		    <widget class="GtkLabel" id="label_expires">
+		    <widget class="GtkHButtonBox" id="hbuttonbox3">
+		      <property name="border_width">4</property>
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Expires:</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">10</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">2</property>
-		      <property name="right_attach">3</property>
-		      <property name="top_attach">2</property>
-		      <property name="bottom_attach">3</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
+		      <property name="layout_style">GTK_BUTTONBOX_DEFAULT_STYLE</property>
+		      <property name="spacing">0</property>
 
-		  <child>
-		    <widget class="GtkLabel" id="label_created">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes"></property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">3</property>
-		      <property name="right_attach">4</property>
-		      <property name="top_attach">1</property>
-		      <property name="bottom_attach">2</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
+		      <child>
+			<widget class="GtkButton" id="photoid-delete">
+			  <property name="visible">True</property>
+			  <property name="sensitive">False</property>
+			  <property name="tooltip" translatable="yes">Delete Current Visible Photo ID</property>
+			  <property name="can_default">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="focus_on_click">True</property>
+			  <signal name="clicked" handler="photoid_delete_clicked" last_modification_time="Sat, 23 Jul 2005 20:11:41 GMT"/>
 
-		  <child>
-		    <widget class="GtkLabel" id="label_expires">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes"></property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
+			  <child>
+			    <widget class="GtkAlignment" id="alignment12">
+			      <property name="visible">True</property>
+			      <property name="xalign">0.5</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xscale">0</property>
+			      <property name="yscale">0</property>
+			      <property name="top_padding">0</property>
+			      <property name="bottom_padding">0</property>
+			      <property name="left_padding">0</property>
+			      <property name="right_padding">0</property>
+
+			      <child>
+				<widget class="GtkHBox" id="hbox14">
+				  <property name="visible">True</property>
+				  <property name="homogeneous">False</property>
+				  <property name="spacing">2</property>
+
+				  <child>
+				    <widget class="GtkImage" id="image12">
+				      <property name="visible">True</property>
+				      <property name="stock">gtk-delete</property>
+				      <property name="icon_size">4</property>
+				      <property name="xalign">0.5</property>
+				      <property name="yalign">0.5</property>
+				      <property name="xpad">0</property>
+				      <property name="ypad">0</property>
+				    </widget>
+				    <packing>
+				      <property name="padding">0</property>
+				      <property name="expand">False</property>
+				      <property name="fill">False</property>
+				    </packing>
+				  </child>
+
+				  <child>
+				    <widget class="GtkLabel" id="label33">
+				      <property name="visible">True</property>
+				      <property name="label" translatable="yes">Delete Photo ID</property>
+				      <property name="use_underline">True</property>
+				      <property name="use_markup">False</property>
+				      <property name="justify">GTK_JUSTIFY_LEFT</property>
+				      <property name="wrap">False</property>
+				      <property name="selectable">False</property>
+				      <property name="xalign">0.5</property>
+				      <property name="yalign">0.5</property>
+				      <property name="xpad">0</property>
+				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
+				    </widget>
+				    <packing>
+				      <property name="padding">0</property>
+				      <property name="expand">False</property>
+				      <property name="fill">False</property>
+				    </packing>
+				  </child>
+				</widget>
+			      </child>
+			    </widget>
+			  </child>
+			</widget>
+		      </child>
+
+		      <child>
+			<widget class="GtkButton" id="photoid-add">
+			  <property name="visible">True</property>
+			  <property name="tooltip" translatable="yes">Add new Photo ID</property>
+			  <property name="can_default">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="focus_on_click">True</property>
+			  <signal name="clicked" handler="photoid_add_clicked" last_modification_time="Sat, 23 Jul 2005 20:11:58 GMT"/>
+
+			  <child>
+			    <widget class="GtkAlignment" id="alignment11">
+			      <property name="visible">True</property>
+			      <property name="xalign">0.5</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xscale">0</property>
+			      <property name="yscale">0</property>
+			      <property name="top_padding">0</property>
+			      <property name="bottom_padding">0</property>
+			      <property name="left_padding">0</property>
+			      <property name="right_padding">0</property>
+
+			      <child>
+				<widget class="GtkHBox" id="hbox13">
+				  <property name="visible">True</property>
+				  <property name="homogeneous">False</property>
+				  <property name="spacing">2</property>
+
+				  <child>
+				    <widget class="GtkImage" id="image11">
+				      <property name="visible">True</property>
+				      <property name="stock">gtk-add</property>
+				      <property name="icon_size">4</property>
+				      <property name="xalign">0.5</property>
+				      <property name="yalign">0.5</property>
+				      <property name="xpad">0</property>
+				      <property name="ypad">0</property>
+				    </widget>
+				    <packing>
+				      <property name="padding">0</property>
+				      <property name="expand">False</property>
+				      <property name="fill">False</property>
+				    </packing>
+				  </child>
+
+				  <child>
+				    <widget class="GtkLabel" id="label32">
+				      <property name="visible">True</property>
+				      <property name="label" translatable="yes">Add Photo ID</property>
+				      <property name="use_underline">True</property>
+				      <property name="use_markup">False</property>
+				      <property name="justify">GTK_JUSTIFY_LEFT</property>
+				      <property name="wrap">False</property>
+				      <property name="selectable">False</property>
+				      <property name="xalign">0.5</property>
+				      <property name="yalign">0.5</property>
+				      <property name="xpad">0</property>
+				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
+				    </widget>
+				    <packing>
+				      <property name="padding">0</property>
+				      <property name="expand">False</property>
+				      <property name="fill">False</property>
+				    </packing>
+				  </child>
+				</widget>
+			      </child>
+			    </widget>
+			  </child>
+			</widget>
+		      </child>
 		    </widget>
 		    <packing>
-		      <property name="left_attach">3</property>
-		      <property name="right_attach">4</property>
-		      <property name="top_attach">2</property>
-		      <property name="bottom_attach">3</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">True</property>
 		    </packing>
 		  </child>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">True</property>
+		  <property name="fill">True</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkVBox" id="vbox2">
+		  <property name="border_width">12</property>
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">6</property>
 
 		  <child>
-		    <widget class="GtkLabel" id="label8">
+		    <widget class="GtkTable" id="primary_table">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;b&gt;_Trust&lt;/b&gt;</property>
-		      <property name="use_underline">True</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">6</property>
-		      <property name="mnemonic_widget">trust</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">2</property>
-		      <property name="right_attach">3</property>
-		      <property name="top_attach">4</property>
-		      <property name="bottom_attach">5</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
+		      <property name="n_rows">9</property>
+		      <property name="n_columns">4</property>
+		      <property name="homogeneous">False</property>
+		      <property name="row_spacing">0</property>
+		      <property name="column_spacing">12</property>
+
+		      <child>
+			<widget class="GtkLabel" id="label_name">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes"></property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">1</property>
+			  <property name="right_attach">2</property>
+			  <property name="top_attach">1</property>
+			  <property name="bottom_attach">2</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="label24">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Name:</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">10</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">0</property>
+			  <property name="right_attach">1</property>
+			  <property name="top_attach">1</property>
+			  <property name="bottom_attach">2</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="label25">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">&lt;b&gt;Owner&lt;/b&gt;</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">True</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">6</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">0</property>
+			  <property name="right_attach">2</property>
+			  <property name="top_attach">0</property>
+			  <property name="bottom_attach">1</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="label26">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Email:</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">10</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">0</property>
+			  <property name="right_attach">1</property>
+			  <property name="top_attach">2</property>
+			  <property name="bottom_attach">3</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="label_email">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes"></property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">1</property>
+			  <property name="right_attach">2</property>
+			  <property name="top_attach">2</property>
+			  <property name="bottom_attach">3</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="labelComment">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Comment:</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">10</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">0</property>
+			  <property name="right_attach">1</property>
+			  <property name="top_attach">3</property>
+			  <property name="bottom_attach">4</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="label_comment">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes"></property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">1</property>
+			  <property name="right_attach">2</property>
+			  <property name="top_attach">3</property>
+			  <property name="bottom_attach">4</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="label20">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">&lt;b&gt;Properties&lt;/b&gt;</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">True</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">6</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">0</property>
+			  <property name="right_attach">2</property>
+			  <property name="top_attach">4</property>
+			  <property name="bottom_attach">5</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="label23">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Key ID:</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">10</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">0</property>
+			  <property name="right_attach">1</property>
+			  <property name="top_attach">5</property>
+			  <property name="bottom_attach">6</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="keyid">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="label" translatable="yes"></property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">True</property>
+			  <property name="selectable">True</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">1</property>
+			  <property name="right_attach">2</property>
+			  <property name="top_attach">5</property>
+			  <property name="bottom_attach">6</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="label28">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">&lt;b&gt;Dates&lt;/b&gt;</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">True</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">2</property>
+			  <property name="right_attach">3</property>
+			  <property name="top_attach">0</property>
+			  <property name="bottom_attach">1</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="label27">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Created:</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">10</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">2</property>
+			  <property name="right_attach">3</property>
+			  <property name="top_attach">1</property>
+			  <property name="bottom_attach">2</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="label_expires">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Expires:</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">10</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">2</property>
+			  <property name="right_attach">3</property>
+			  <property name="top_attach">2</property>
+			  <property name="bottom_attach">3</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
 
-		  <child>
-		    <widget class="GtkOptionMenu" id="trust">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="history">0</property>
-		      <signal name="changed" handler="trust_changed" last_modification_time="Sat, 08 Mar 2003 02:36:28 GMT"/>
+		      <child>
+			<widget class="GtkLabel" id="label_created">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes"></property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">3</property>
+			  <property name="right_attach">4</property>
+			  <property name="top_attach">1</property>
+			  <property name="bottom_attach">2</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
 
 		      <child>
-			<widget class="GtkMenu" id="menu1">
+			<widget class="GtkLabel" id="label_expires">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes"></property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">3</property>
+			  <property name="right_attach">4</property>
+			  <property name="top_attach">2</property>
+			  <property name="bottom_attach">3</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
 
-			  <child>
-			    <widget class="GtkMenuItem" id="unknown">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Owner is unknown</property>
-			      <property name="label" translatable="yes">Unknown</property>
-			      <property name="use_underline">True</property>
-			    </widget>
-			  </child>
+		      <child>
+			<widget class="GtkLabel" id="label8">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">&lt;b&gt;_Trust&lt;/b&gt;</property>
+			  <property name="use_underline">True</property>
+			  <property name="use_markup">True</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">6</property>
+			  <property name="mnemonic_widget">trust</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">2</property>
+			  <property name="right_attach">3</property>
+			  <property name="top_attach">4</property>
+			  <property name="bottom_attach">5</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
 
-			  <child>
-			    <widget class="GtkMenuItem" id="never">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Never trust owner</property>
-			      <property name="label" translatable="yes">Never</property>
-			      <property name="use_underline">True</property>
-			    </widget>
-			  </child>
+		      <child>
+			<widget class="GtkOptionMenu" id="trust">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="history">0</property>
+			  <signal name="changed" handler="trust_changed" last_modification_time="Sat, 08 Mar 2003 02:36:28 GMT"/>
 
 			  <child>
-			    <widget class="GtkMenuItem" id="marginal">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Marginally trust owner</property>
-			      <property name="label" translatable="yes">Marginal</property>
-			      <property name="use_underline">True</property>
-			    </widget>
-			  </child>
+			    <widget class="GtkMenu" id="menu1">
 
-			  <child>
-			    <widget class="GtkMenuItem" id="full">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Fully trust owner</property>
-			      <property name="label" translatable="yes">Full</property>
-			      <property name="use_underline">True</property>
-			    </widget>
-			  </child>
+			      <child>
+				<widget class="GtkMenuItem" id="unknown">
+				  <property name="visible">True</property>
+				  <property name="tooltip" translatable="yes">Owner is unknown</property>
+				  <property name="label" translatable="yes">Unknown</property>
+				  <property name="use_underline">True</property>
+				</widget>
+			      </child>
 
-			  <child>
-			    <widget class="GtkMenuItem" id="ultimate">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Your personal key</property>
-			      <property name="label" translatable="yes">Ultimate</property>
-			      <property name="use_underline">True</property>
+			      <child>
+				<widget class="GtkMenuItem" id="never">
+				  <property name="visible">True</property>
+				  <property name="tooltip" translatable="yes">Never trust owner</property>
+				  <property name="label" translatable="yes">Never</property>
+				  <property name="use_underline">True</property>
+				</widget>
+			      </child>
+
+			      <child>
+				<widget class="GtkMenuItem" id="marginal">
+				  <property name="visible">True</property>
+				  <property name="tooltip" translatable="yes">Marginally trust owner</property>
+				  <property name="label" translatable="yes">Marginal</property>
+				  <property name="use_underline">True</property>
+				</widget>
+			      </child>
+
+			      <child>
+				<widget class="GtkMenuItem" id="full">
+				  <property name="visible">True</property>
+				  <property name="tooltip" translatable="yes">Fully trust owner</property>
+				  <property name="label" translatable="yes">Full</property>
+				  <property name="use_underline">True</property>
+				</widget>
+			      </child>
+
+			      <child>
+				<widget class="GtkMenuItem" id="ultimate">
+				  <property name="visible">True</property>
+				  <property name="tooltip" translatable="yes">Your personal key</property>
+				  <property name="label" translatable="yes">Ultimate</property>
+				  <property name="use_underline">True</property>
+				</widget>
+			      </child>
 			    </widget>
 			  </child>
 			</widget>
+			<packing>
+			  <property name="left_attach">2</property>
+			  <property name="right_attach">3</property>
+			  <property name="top_attach">5</property>
+			  <property name="bottom_attach">6</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
 		      </child>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">2</property>
-		      <property name="right_attach">3</property>
-		      <property name="top_attach">5</property>
-		      <property name="bottom_attach">6</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
 
-		  <child>
-		    <widget class="GtkCheckButton" id="disabled">
-		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">Disabled keys cannot be used for operations</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">Dis_abled</property>
-		      <property name="use_underline">True</property>
-		      <property name="relief">GTK_RELIEF_NORMAL</property>
-		      <property name="focus_on_click">True</property>
-		      <property name="active">False</property>
-		      <property name="inconsistent">False</property>
-		      <property name="draw_indicator">True</property>
-		      <signal name="toggled" handler="disabled_toggled" last_modification_time="Sat, 08 Mar 2003 02:37:04 GMT"/>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">3</property>
-		      <property name="right_attach">4</property>
-		      <property name="top_attach">5</property>
-		      <property name="bottom_attach">6</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
+		      <child>
+			<widget class="GtkCheckButton" id="disabled">
+			  <property name="visible">True</property>
+			  <property name="tooltip" translatable="yes">Disabled keys cannot be used for operations</property>
+			  <property name="can_focus">True</property>
+			  <property name="label" translatable="yes">Dis_abled</property>
+			  <property name="use_underline">True</property>
+			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="focus_on_click">True</property>
+			  <property name="active">False</property>
+			  <property name="inconsistent">False</property>
+			  <property name="draw_indicator">True</property>
+			  <signal name="toggled" handler="disabled_toggled" last_modification_time="Sat, 08 Mar 2003 02:37:04 GMT"/>
+			</widget>
+			<packing>
+			  <property name="left_attach">3</property>
+			  <property name="right_attach">4</property>
+			  <property name="top_attach">5</property>
+			  <property name="bottom_attach">6</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
 
-		  <child>
-		    <widget class="GtkLabel" id="label21">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Strength:</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">10</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">0</property>
-		      <property name="right_attach">1</property>
-		      <property name="top_attach">6</property>
-		      <property name="bottom_attach">7</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
+		      <child>
+			<widget class="GtkLabel" id="label21">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Strength:</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">10</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">0</property>
+			  <property name="right_attach">1</property>
+			  <property name="top_attach">6</property>
+			  <property name="bottom_attach">7</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
 
-		  <child>
-		    <widget class="GtkLabel" id="label_strength">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes"></property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">1</property>
-		      <property name="right_attach">4</property>
-		      <property name="top_attach">6</property>
-		      <property name="bottom_attach">7</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
+		      <child>
+			<widget class="GtkLabel" id="label_strength">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes"></property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">1</property>
+			  <property name="right_attach">4</property>
+			  <property name="top_attach">6</property>
+			  <property name="bottom_attach">7</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
 
-		  <child>
-		    <widget class="GtkLabel" id="label22">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Type:</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">10</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">0</property>
-		      <property name="right_attach">1</property>
-		      <property name="top_attach">7</property>
-		      <property name="bottom_attach">8</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
+		      <child>
+			<widget class="GtkLabel" id="label22">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Type:</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">10</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">0</property>
+			  <property name="right_attach">1</property>
+			  <property name="top_attach">7</property>
+			  <property name="bottom_attach">8</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
 
-		  <child>
-		    <widget class="GtkLabel" id="label_type">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes"></property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">1</property>
-		      <property name="right_attach">2</property>
-		      <property name="top_attach">7</property>
-		      <property name="bottom_attach">8</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
+		      <child>
+			<widget class="GtkLabel" id="label_type">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes"></property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">1</property>
+			  <property name="right_attach">2</property>
+			  <property name="top_attach">7</property>
+			  <property name="bottom_attach">8</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
 
-		  <child>
-		    <widget class="GtkLabel" id="label9">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Fingerprint:</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">10</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">0</property>
-		      <property name="right_attach">1</property>
-		      <property name="top_attach">8</property>
-		      <property name="bottom_attach">9</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
+		      <child>
+			<widget class="GtkLabel" id="label9">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Fingerprint:</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">10</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">0</property>
+			  <property name="right_attach">1</property>
+			  <property name="top_attach">8</property>
+			  <property name="bottom_attach">9</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
 
-		  <child>
-		    <widget class="GtkLabel" id="fingerprint">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes"></property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">True</property>
-		      <property name="selectable">True</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
+		      <child>
+			<widget class="GtkLabel" id="fingerprint">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="label" translatable="yes"></property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">True</property>
+			  <property name="selectable">True</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">1</property>
+			  <property name="right_attach">4</property>
+			  <property name="top_attach">8</property>
+			  <property name="bottom_attach">9</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
 		    </widget>
 		    <packing>
-		      <property name="left_attach">1</property>
-		      <property name="right_attach">4</property>
-		      <property name="top_attach">8</property>
-		      <property name="bottom_attach">9</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">False</property>
 		    </packing>
 		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHBox" id="hbox8">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
 
 		  <child>
-		    <widget class="GtkButton" id="passphrase">
-		      <property name="border_width">6</property>
+		    <widget class="GtkHBox" id="hbox8">
 		      <property name="visible">True</property>
-		      <property name="sensitive">False</property>
-		      <property name="can_default">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="relief">GTK_RELIEF_NORMAL</property>
-		      <property name="focus_on_click">True</property>
-		      <signal name="clicked" handler="passphrase_clicked" last_modification_time="Wed, 13 Oct 2004 18:19:31 GMT"/>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">0</property>
 
 		      <child>
-			<widget class="GtkAlignment" id="alignment7">
+			<widget class="GtkButton" id="passphrase">
+			  <property name="border_width">6</property>
 			  <property name="visible">True</property>
-			  <property name="xalign">0.5</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xscale">0</property>
-			  <property name="yscale">0</property>
-			  <property name="top_padding">0</property>
-			  <property name="bottom_padding">0</property>
-			  <property name="left_padding">0</property>
-			  <property name="right_padding">0</property>
+			  <property name="sensitive">False</property>
+			  <property name="can_default">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="focus_on_click">True</property>
+			  <signal name="clicked" handler="passphrase_clicked" last_modification_time="Wed, 13 Oct 2004 18:19:31 GMT"/>
 
 			  <child>
-			    <widget class="GtkHBox" id="hbox9">
+			    <widget class="GtkAlignment" id="alignment7">
 			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">2</property>
+			      <property name="xalign">0.5</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xscale">0</property>
+			      <property name="yscale">0</property>
+			      <property name="top_padding">0</property>
+			      <property name="bottom_padding">0</property>
+			      <property name="left_padding">0</property>
+			      <property name="right_padding">0</property>
 
 			      <child>
-				<widget class="GtkImage" id="image7">
+				<widget class="GtkHBox" id="hbox9">
 				  <property name="visible">True</property>
-				  <property name="stock">gnome-stock-authentication</property>
-				  <property name="icon_size">4</property>
-				  <property name="xalign">0.5</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xpad">0</property>
-				  <property name="ypad">0</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
+				  <property name="homogeneous">False</property>
+				  <property name="spacing">2</property>
 
-			      <child>
-				<widget class="GtkLabel" id="label19">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">Change _Passphrase</property>
-				  <property name="use_underline">True</property>
-				  <property name="use_markup">False</property>
-				  <property name="justify">GTK_JUSTIFY_LEFT</property>
-				  <property name="wrap">False</property>
-				  <property name="selectable">False</property>
-				  <property name="xalign">0.5</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xpad">0</property>
-				  <property name="ypad">0</property>
+				  <child>
+				    <widget class="GtkImage" id="image7">
+				      <property name="visible">True</property>
+				      <property name="stock">gnome-stock-authentication</property>
+				      <property name="icon_size">4</property>
+				      <property name="xalign">0.5</property>
+				      <property name="yalign">0.5</property>
+				      <property name="xpad">0</property>
+				      <property name="ypad">0</property>
+				    </widget>
+				    <packing>
+				      <property name="padding">0</property>
+				      <property name="expand">False</property>
+				      <property name="fill">False</property>
+				    </packing>
+				  </child>
+
+				  <child>
+				    <widget class="GtkLabel" id="label19">
+				      <property name="visible">True</property>
+				      <property name="label" translatable="yes">Change _Passphrase</property>
+				      <property name="use_underline">True</property>
+				      <property name="use_markup">False</property>
+				      <property name="justify">GTK_JUSTIFY_LEFT</property>
+				      <property name="wrap">False</property>
+				      <property name="selectable">False</property>
+				      <property name="xalign">0.5</property>
+				      <property name="yalign">0.5</property>
+				      <property name="xpad">0</property>
+				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
+				    </widget>
+				    <packing>
+				      <property name="padding">0</property>
+				      <property name="expand">False</property>
+				      <property name="fill">False</property>
+				    </packing>
+				  </child>
 				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
 			      </child>
 			    </widget>
 			  </child>
 			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
 		      </child>
 		    </widget>
 		    <packing>
@@ -823,6 +1301,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -844,8 +1326,8 @@
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
+		  <property name="expand">True</property>
+		  <property name="fill">True</property>
 		</packing>
 	      </child>
 	    </widget>
@@ -868,6 +1350,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -900,6 +1386,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -965,6 +1455,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -1041,6 +1535,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -1117,6 +1615,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -1193,6 +1695,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -1236,6 +1742,9 @@
 		      <property name="rules_hint">True</property>
 		      <property name="reorderable">False</property>
 		      <property name="enable_search">True</property>
+		      <property name="fixed_height_mode">False</property>
+		      <property name="hover_selection">False</property>
+		      <property name="hover_expand">False</property>
 		    </widget>
 		  </child>
 		</widget>
@@ -1265,6 +1774,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -1295,6 +1808,10 @@
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
 		  <property name="mnemonic_widget">sigs</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="left_attach">0</property>
@@ -1323,6 +1840,9 @@
 		      <property name="rules_hint">True</property>
 		      <property name="reorderable">False</property>
 		      <property name="enable_search">True</property>
+		      <property name="fixed_height_mode">False</property>
+		      <property name="hover_selection">False</property>
+		      <property name="hover_expand">False</property>
 		    </widget>
 		  </child>
 		</widget>
@@ -1398,6 +1918,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -1439,6 +1963,8 @@
 		<widget class="GtkComboBox" id="sigs">
 		  <property name="visible">True</property>
 		  <property name="items" translatable="yes">All</property>
+		  <property name="add_tearoffs">False</property>
+		  <property name="focus_on_click">True</property>
 		  <signal name="changed" handler="sigs_changed" last_modification_time="Tue, 12 Oct 2004 23:24:12 GMT"/>
 		</widget>
 		<packing>
@@ -1470,6 +1996,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
