/// <summary> /// Make sure all references to obsolete Tag object is removed. /// </summary> /// <param name='tag'> /// Tag. /// </param> private void DeleteTag(Tag tag) { Gtk.TreeIter treeIter = tag.TreeIter; TagStore.Remove(ref treeIter); //tag.TreeIter = Gtk.TreeIter.Zero; //might not be necessary -- our only source to tag is tagDict tagDict.Remove(tag.Name); //also damn important }
private void AddTagToStore(Tag tag) { AddTagToStore(tag, TagStore); }
private void AddTagToStore(Tag tag, Gtk.ListStore tagStore) { if(tag.TreeIter.Equals (Gtk.TreeIter.Zero)) { tag.TreeIter = tagStore.AppendValues(tag.Name, tag.Count); Debug.Assert(!tag.TreeIter.Equals(Gtk.TreeIter.Zero)); } else { tagStore.SetValue(tag.TreeIter, (int)TagCols.Count, tag.Count); } }
private void AddTagsFrom(Note note, IEnumerable<string> tags, IDictionary<String,Tag> tagDict, Gtk.ListStore tagStore) { foreach(String tag in tags) { if(!tagDict.ContainsKey(tag)) { tagDict[tag] = new Tag(tag, note); } else { //implies that tag has already been created tagDict[tag].Notes.Add(note); } AddTagToStore(tagDict[tag], tagStore); } }