Update Id Card add dialog to include the Display Name
authorAlberto Ruiz <aruiz@gnome.org>
Mon, 11 Jul 2011 13:37:33 +0000 (14:37 +0100)
committerAlberto Ruiz <aruiz@gnome.org>
Mon, 11 Jul 2011 13:37:33 +0000 (14:37 +0100)
src/moonshot-add-dialog.vala
src/moonshot-identities-manager.vala
src/moonshot-window.vala

index e490cbc..44ac597 100644 (file)
@@ -2,9 +2,14 @@ using Gtk;
 
 class AddIdentityDialog : Dialog
 {
+    private Entry displayname_entry;
     private Entry issuer_entry;
     private Entry username_entry;
     private Entry password_entry;
+    
+    public string display_name {
+        get { return displayname_entry.get_text(); }
+    }
 
     public string issuer {
         get { return issuer_entry.get_text (); }
@@ -32,7 +37,10 @@ class AddIdentityDialog : Dialog
 
         var content_area = this.get_content_area ();
         ((Box) content_area).set_spacing (12);
-
+        
+        var displayname_label = new Label (_("Display Name:"));
+        displayname_label.set_alignment (1, (float) 0.5);
+        displayname_entry = new Entry ();
         var issuer_label = new Label (_("Issuer:"));
         issuer_label.set_alignment (1, (float) 0.5);
         this.issuer_entry = new Entry ();
@@ -46,20 +54,24 @@ class AddIdentityDialog : Dialog
         password_entry.set_visibility (false);
         var remember_checkbutton = new CheckButton.with_label (_("Remember password"));
 
+        set_atk_relation (displayname_label, displayname_entry, Atk.RelationType.LABEL_FOR);
         set_atk_relation (issuer_label, issuer_entry, Atk.RelationType.LABEL_FOR);
         set_atk_relation (username_label, username_entry, Atk.RelationType.LABEL_FOR);
         set_atk_relation (password_entry, password_entry, Atk.RelationType.LABEL_FOR);
 
-        var table = new Table (4, 4, false);
+        var table = new Table (5, 5, false);
         table.set_col_spacings (10);
         table.set_row_spacings (10);
-        table.attach_defaults (issuer_label, 0, 1, 0, 1);
-        table.attach_defaults (issuer_entry, 1, 2, 0, 1);
-        table.attach_defaults (username_label, 0, 1, 1, 2);
-        table.attach_defaults (username_entry, 1, 2, 1, 2);
-        table.attach_defaults (password_label, 0, 1, 2, 3);
-        table.attach_defaults (password_entry, 1, 2, 2, 3);
-        table.attach_defaults (remember_checkbutton,  1, 2, 3, 4);
+        
+        table.attach_defaults (displayname_label, 0, 1, 0, 1);
+        table.attach_defaults (displayname_entry, 1, 2, 0, 1);
+        table.attach_defaults (issuer_label, 0, 1, 1, 2);
+        table.attach_defaults (issuer_entry, 1, 2, 1, 2);
+        table.attach_defaults (username_label, 0, 1, 2, 3);
+        table.attach_defaults (username_entry, 1, 2, 2, 3);
+        table.attach_defaults (password_label, 0, 1, 3, 4);
+        table.attach_defaults (password_entry, 1, 2, 3, 4);
+        table.attach_defaults (remember_checkbutton,  1, 2, 4, 5);
 
         var vbox = new VBox (false, 0);
         vbox.set_border_width (6);
index ab44ad5..68f7ac9 100644 (file)
@@ -6,6 +6,7 @@ class IdentitiesManager : Object {
 
     public IdentitiesManager ()
     {
+        id_card_list = new SList<IdCard>();
         var key_file = new KeyFile ();
 
         var path = get_data_dir ();
@@ -18,6 +19,7 @@ class IdentitiesManager : Object {
         catch (Error e)
         {
             stdout.printf("Error: %s\n", e.message);
+            return;
         }
 
         var identities_uris = key_file.get_groups ();
@@ -49,11 +51,32 @@ class IdentitiesManager : Object {
 
         foreach (IdCard id_card in this.id_card_list)
         {
-            key_file.set_string (id_card.display_name, "Issuer", id_card.issuer);
-            key_file.set_string (id_card.display_name, "DisplayName", id_card.display_name);
-            key_file.set_string (id_card.display_name, "Username", id_card.username);
+            /*string[] rules_patterns = new string[id_card.rules.length];
+            string[] rules_always_conf = new string[id_card.rules.length];
+            
+            for (int i=0; i<id_card.rules.length; i++)
+            {
+              rules_patterns[i] = id_card.rules[i].pattern;
+              rules_always_conf[i] = id_card.rules[i].always_confirm;
+            }
+            */
+            key_file.set_string (id_card.display_name, "Issuer", id_card.issuer ?? "");
+            key_file.set_string (id_card.display_name, "DisplayName", id_card.display_name ?? "");
+            key_file.set_string (id_card.display_name, "Username", id_card.username ?? "");
             key_file.set_string (id_card.display_name, "Password", id_card.password ?? "");
-            key_file.set_string_list (id_card.display_name, "Services", id_card.services);
+            key_file.set_string_list (id_card.display_name, "Services", id_card.services ?? {});
+            /*
+            if (id_card.rules.length > 0)
+            {
+              key_file.set_string_list (id_card.display_name, "Rules-Patterns", rules_patterns);
+              key_file.set_string_list (id_card.display_name, "Rules-AlwaysConfirm", rules_always_conf);
+            }
+            // Trust anchor 
+            key_file.set_string (id_card.display_name, "CA-Cert", id_card.trust_anchor.ca_cert ?? "");
+            key_file.set_string (id_card.display_name, "Subject", id_card.trust_anchor.subject ?? "");
+            key_file.set_string (id_card.display_name, "SubjectAlt", id_card.trust_anchor.subject_alt ?? "");
+            key_file.set_string (id_card.display_name, "ServerCert", id_card.trust_anchor.server_cert ?? "");
+            */
         }
 
         var text = key_file.to_data (null);
index 2000c7d..356f02c 100644 (file)
@@ -140,7 +140,10 @@ class MainWindow : Window
 
     private void load_id_cards ()
     {
-        this.identities_manager = new IdentitiesManager ();
+        identities_manager = new IdentitiesManager ();
+        
+        if (identities_manager.id_card_list == null)
+          return;
 
         foreach (IdCard id_card in identities_manager.id_card_list)
         {
@@ -184,6 +187,7 @@ class MainWindow : Window
     {
         var id_card = new IdCard ();
 
+        id_card.display_name = dialog.display_name;
         id_card.issuer = dialog.issuer;
         if (id_card.issuer == "")
             id_card.issuer = "Issuer";