Bump the version number in configure.ac to 1.0.5
[moonshot-ui.git] / src / moonshot-identity-management-view.vala
index 1a042b9..f46ba26 100644 (file)
@@ -117,12 +117,13 @@ public class IdentityManagerView : Window {
                 + _(" user ID or issuer fields so that they are no longer the same NAI.");
 
             foreach (var card in list) {
-                message += "\n\nDisplay Name: '%s'\nServices:\n     %s".printf(card.display_name, card.get_services_string(",\n     "));
+                message += _("\n\nDisplay Name: '%s'\nServices:\n     %s").printf(card.display_name, card.get_services_string(",\n     "));
             }
             var msg_dialog = new Gtk.MessageDialog(this,
                                                    Gtk.DialogFlags.DESTROY_WITH_PARENT,
                                                    Gtk.MessageType.INFO,
                                                    Gtk.ButtonsType.OK,
+                                                   "%s",
                                                    message);
             msg_dialog.run();
             msg_dialog.destroy();
@@ -278,6 +279,11 @@ public class IdentityManagerView : Window {
 
     private IdCardWidget add_id_card_widget(IdCard id_card)
     {
+        if (id_card == null) {
+            logger.trace("add_id_card_widget: id_card == null; returning.");
+            return null;
+        }
+
         logger.trace("add_id_card_widget: id_card.nai='%s'; selected nai='%s'"
                      .printf(id_card.nai, 
                              this.selected_card == null ? "[null selection]" : this.selected_card.nai));
@@ -559,6 +565,9 @@ public class IdentityManagerView : Window {
                 switch (result) {
                 case ResponseType.OK:
                     identity.password = dialog.password;
+                    // Don't leave passwords in memory longer than necessary.
+                    // (This may not actually clear the data, but it's the best we can do.)
+                    dialog.clear_password();
                     identity.store_password = dialog.remember;
                     if (dialog.remember)
                         identity.temporary = false;
@@ -568,6 +577,8 @@ public class IdentityManagerView : Window {
                     identity = null;
                     break;
                 }
+                // Do this again, in case OK button wasn't selected.
+                dialog.clear_password();
                 dialog.destroy();
             }
         }
@@ -608,7 +619,7 @@ public class IdentityManagerView : Window {
 
         request.return_identity(identity, remember_identity_binding.active);
 
-        remember_identity_binding.active = false;
+        remember_identity_binding.active = true;
         remember_identity_binding.hide();
     }
 
@@ -782,7 +793,7 @@ SUCH DAMAGE.
 
         // Right below id_scrollwin:
         remember_identity_binding = new CheckButton.with_label(_("Remember my identity choice for this service"));
-        remember_identity_binding.active = false;
+        remember_identity_binding.active = true;
         top_table.attach(remember_identity_binding, 0, num_cols / 2, num_rows - 1, num_rows, fill_and_expand, fill_and_expand, 3, 0);
 
         var add_button = new Button.with_label(_("Add"));
@@ -949,6 +960,7 @@ SUCH DAMAGE.
                                                        Gtk.DialogFlags.DESTROY_WITH_PARENT,
                                                        Gtk.MessageType.INFO,
                                                        Gtk.ButtonsType.OK,
+                                                       "%s",
                                                        _("Import completed. No identities were added or updated."));
                 msg_dialog.run();
                 msg_dialog.destroy();