{
public IdCardWidget current_idcard { get; set; default = null; }
+ private ListStore listmodel;
+
+ private enum Columns
+ {
+ IDCARD_COL,
+ LOGO_COL,
+ ISSUER_COL,
+ USERNAME_COL,
+ PASSWORD_COL,
+ N_COLUMNS
+ }
+
+ private void setup_identities_list ()
+ {
+ this.listmodel = new ListStore (Columns.N_COLUMNS, typeof (IdCard),
+ typeof (Gdk.Pixbuf),
+ typeof (string),
+ typeof (string),
+ typeof (string));
+ }
+
public CustomVBox (bool homogeneous, int spacing)
{
this.set_homogeneous (homogeneous);
this.set_spacing (spacing);
+
+ setup_identities_list();
}
public void receive_expanded_event (IdCardWidget id_card_widget)
((IdCardWidget) id_card).collapse ();
}
}
+
+ public void add_id_card_widget (IdCardWidget id_card_widget)
+ {
+ TreeIter iter;
+
+ this.pack_start (id_card_widget, false, false);
+
+ var id_card = id_card_widget.id_card;
+
+ this.listmodel.append (out iter);
+ listmodel.set (iter,
+ Columns.IDCARD_COL, id_card,
+ Columns.LOGO_COL, id_card.pixbuf,
+ Columns.ISSUER_COL, id_card.issuer,
+ Columns.USERNAME_COL, id_card.username,
+ Columns.PASSWORD_COL, id_card.password);
+ }
+
+ public void remove_id_card_widget (IdCardWidget id_card_widget)
+ {
+ TreeIter iter;
+ string issuer;
+
+ this.remove (id_card_widget);
+
+ if (listmodel.get_iter_first (out iter))
+ {
+ do
+ {
+ listmodel.get (iter,
+ Columns.ISSUER_COL, out issuer);
+
+ if (id_card_widget.id_card.issuer == issuer)
+ {
+ listmodel.remove (iter);
+ break;
+ }
+ }
+ while (listmodel.iter_next (ref iter));
+ }
+ }
}
private void add_identity (AddIdentityDialog dialog)
{
- TreeIter iter;
-
var id_card = get_id_card_data (dialog);
var id_card_widget = new IdCardWidget (id_card);
- this.custom_vbox.pack_start (id_card_widget, false, false);
+ this.custom_vbox.add_id_card_widget (id_card_widget);
id_card_widget.details_id.connect (details_identity_cb);
id_card_widget.remove_id.connect (remove_identity_cb);
id_card_widget.expanded.connect (this.custom_vbox.receive_expanded_event);
id_card_widget.expanded.connect (fill_details);
-
- this.listmodel.append (out iter);
- listmodel.set (iter,
- Columns.IDCARD_COL, id_card,
- Columns.LOGO_COL, id_card.pixbuf,
- Columns.ISSUER_COL, id_card.issuer,
- Columns.USERNAME_COL, id_card.username,
- Columns.PASSWORD_COL, id_card.password);
}
private void add_identity_cb ()
private void remove_identity (IdCardWidget id_card_widget)
{
- TreeIter iter;
- string issuer;
-
- custom_vbox.remove (id_card_widget);
-
- if (listmodel.get_iter_first (out iter))
- {
- do
- {
- listmodel.get (iter,
- Columns.ISSUER_COL, out issuer);
-
- if (id_card_widget.id_card.issuer == issuer)
- {
- listmodel.remove (iter);
- break;
- }
- }
- while (listmodel.iter_next (ref iter));
- }
+ this.custom_vbox.remove_id_card_widget (id_card_widget);
}
private void remove_identity_cb (IdCardWidget id_card_widget)