3 class CustomVBox : VBox
5 public IdCardWidget current_idcard { get; set; default = null; }
7 private ListStore listmodel;
8 private TreeModelFilter filter;
20 private bool visible_func (TreeModel model, TreeIter iter)
24 string issuer_casefold;
25 string search_text_casefold;
28 Columns.ISSUER_COL, out issuer);
30 issuer_casefold = issuer.casefold ();
31 search_text_casefold = search_text.casefold ();
33 if (issuer_casefold.contains (search_text_casefold))
39 private void setup_identities_list ()
41 this.listmodel = new ListStore (Columns.N_COLUMNS, typeof (IdCard),
46 this.filter = new TreeModelFilter (listmodel, null);
48 filter.set_visible_func (visible_func);
51 public CustomVBox (bool homogeneous, int spacing)
53 this.set_homogeneous (homogeneous);
54 this.set_spacing (spacing);
56 setup_identities_list();
59 public void receive_expanded_event (IdCardWidget id_card_widget)
61 var list = this.get_children ();
62 foreach (Widget id_card in list)
64 if (id_card != id_card_widget)
65 ((IdCardWidget) id_card).collapse ();
69 public void add_id_card_widget (IdCardWidget id_card_widget)
73 this.pack_start (id_card_widget, false, false);
75 var id_card = id_card_widget.id_card;
77 this.listmodel.append (out iter);
79 Columns.IDCARD_COL, id_card,
80 Columns.LOGO_COL, id_card.pixbuf,
81 Columns.ISSUER_COL, id_card.issuer,
82 Columns.USERNAME_COL, id_card.username,
83 Columns.PASSWORD_COL, id_card.password);
86 public void remove_id_card_widget (IdCardWidget id_card_widget)
91 this.remove (id_card_widget);
93 if (listmodel.get_iter_first (out iter))
98 Columns.ISSUER_COL, out issuer);
100 if (id_card_widget.id_card.issuer == issuer)
102 listmodel.remove (iter);
106 while (listmodel.iter_next (ref iter));