func (r *roster) addGroupDialog(groupList gtki.ListStore) { builder := newBuilder("GroupDetails") dialog := builder.getObj("dialog").(gtki.Dialog) nameEntry := builder.getObj("group-name").(gtki.Entry) defaultBtn := builder.getObj("btn-ok").(gtki.Button) defaultBtn.GrabDefault() dialog.SetTransientFor(r.ui.window) dialog.ShowAll() response := dialog.Run() defer dialog.Destroy() if gtki.ResponseType(response) != gtki.RESPONSE_OK { return } groupName, _ := nameEntry.GetText() groupList.SetValue(groupList.Append(), 0, groupName) }
func toArray(groupList gtki.ListStore) []string { groups := []string{} iter, ok := groupList.GetIterFirst() for ok { gValue, _ := groupList.GetValue(iter, 0) if group, err := gValue.GetString(); err == nil { groups = append(groups, group) } ok = groupList.IterNext(iter) } return groups }
func filterCertificates(oldCerts []*config.CertificatePin, newList gtki.ListStore) []*config.CertificatePin { allPins := make(map[string]bool) iter, ok := newList.GetIterFirst() for ok { vv, _ := newList.GetValue(iter, 2) pp, _ := vv.GetString() allPins[pp] = true ok = newList.IterNext(iter) } newCerts := []*config.CertificatePin{} for _, cc := range oldCerts { if allPins[hex.EncodeToString(cc.Fingerprint)] { newCerts = append(newCerts, cc) } } return newCerts }
func valAt(s gtki.ListStore, iter gtki.TreeIter, col int) interface{} { gv, _ := s.GetValue(iter, col) vv, _ := gv.GoValue() return vv }