identity manager: support add identities in headless mode
authorKevin Wasserman <krwasserman@hotmail.com>
Thu, 16 May 2013 17:28:10 +0000 (13:28 -0400)
committerKevin Wasserman <krwasserman@hotmail.com>
Thu, 16 May 2013 17:38:10 +0000 (13:38 -0400)
src/moonshot-identities-manager.vala
src/moonshot-identity-management-view.vala
src/moonshot-identity-manager-app.vala

index aa42725..1aa5fe7 100644 (file)
@@ -22,7 +22,41 @@ public class IdentityManagerModel : Object {
     }
     public signal void card_list_changed();
 
+    /* This method finds a valid display name */
+    public bool display_name_is_valid (string name,
+                                       out string? candidate)
+    {
+        candidate = null;
+        foreach (IdCard id_card in this.get_card_list())
+        {
+          if (id_card.display_name == name)
+          {
+            if (&candidate != null)
+            {
+              for (int i=0; i<1000; i++)
+              {
+                string tmp = "%s %d".printf (name, i);
+                if (display_name_is_valid (tmp, null))
+                {
+                  candidate = tmp;
+                  break;
+                }
+              }
+            }
+            return false;
+          }
+        }
+        return true;
+    }
+
     public void add_card(IdCard card) {
+        string candidate;
+
+        if (!display_name_is_valid (card.display_name, out candidate))
+        {
+          card.display_name = candidate;
+        }
+
         store.add_card(card);
         card_list_changed();
      }
index e9e630d..adcf8b4 100644 (file)
@@ -306,45 +306,6 @@ public class IdentityManagerView : Window {
         id_card_widget.expanded.connect (fill_details);
     }
 
-    /* This method finds a valid display name */
-    public bool display_name_is_valid (string name,
-                                       out string? candidate)
-    {
-        foreach (IdCard id_card in identities_manager.get_card_list())
-        {
-          if (id_card.display_name == name)
-          {
-            if (&candidate != null)
-            {
-              for (int i=0; i<1000; i++)
-              {
-                string tmp = "%s %d".printf (name, i);
-                if (display_name_is_valid (tmp, null))
-                {
-                  candidate = tmp;
-                  break;
-                }
-              }
-            }
-            return false;
-          }
-        }
-        
-        return true;
-    }
-    
-    public void insert_id_card (IdCard id_card)
-    {
-        string candidate;
-        
-        if (!display_name_is_valid (id_card.display_name, out candidate))
-        {
-          id_card.display_name = candidate;
-        }
-    
-    this.identities_manager.add_card(id_card);
-    }
-
     public bool add_identity (IdCard id_card)
     {
 #if OS_MACOS
@@ -368,7 +329,7 @@ public class IdentityManagerView : Window {
 
         if (ret == Gtk.ResponseType.YES) {
             id_card.set_data ("pixbuf", find_icon ("avatar-default", 48));
-            this.insert_id_card (id_card);
+            this.identities_manager.add_card (id_card);
             return true;
         }
 
@@ -382,7 +343,7 @@ public class IdentityManagerView : Window {
 
         switch (result) {
         case ResponseType.OK:
-            insert_id_card (get_id_card_data (dialog));
+            this.identities_manager.add_card (get_id_card_data (dialog));
             break;
         default:
             break;
index 2897e0d..537ff47 100644 (file)
@@ -55,9 +55,9 @@ public class IdentityManagerApp {
     }
 
     public bool add_identity (IdCard id) {
-        /* TODO: add to store here irrespective of view's existence */
         if (view != null) return view.add_identity(id);
-        return false;
+        model.add_card(id);
+        return true;
     }
 
     public void select_identity (IdentityRequest request) {