public void TestClearAll() { Project p = Utils.CreateProject(); try { EventsFilter filter = new EventsFilter(p); filter.FilterPlayer(p.LocalTeamTemplate.List [0], true); Assert.AreEqual(1, filter.VisiblePlays.Count); Assert.AreEqual(1, filter.VisiblePlayers.Count); filter.ClearAll(); Assert.AreEqual(3, filter.VisiblePlays.Count); Assert.AreEqual(10, filter.VisiblePlayers.Count); filter.FilterEventType(p.EventTypes [0], true); Assert.AreEqual(1, filter.VisiblePlays.Count); Assert.AreEqual(1, filter.VisibleEventTypes.Count); filter.ClearAll(); Assert.AreEqual(3, filter.VisiblePlays.Count); Assert.AreEqual(13, filter.VisibleEventTypes.Count); filter.FilterEventTag(p.EventTypes [0], (p.EventTypes [0] as AnalysisEventType).Tags [0], true); Assert.AreEqual(0, filter.VisiblePlays.Count); Assert.AreEqual(1, filter.VisibleEventTypes.Count); filter.ClearAll(); Assert.AreEqual(3, filter.VisiblePlays.Count); Assert.AreEqual(13, filter.VisibleEventTypes.Count); } finally { Utils.DeleteProject(p); } }
void UpdateSelectionPriv(TreeIter iter, bool active, bool checkParents = true, bool recurse = true) { TreeIter child, parent; object o = store.GetValue(iter, COL_VALUE); store.IterParent(out parent, iter); if (o is Tag) { EventType evType = store.GetValue(parent, COL_VALUE) as EventType; if (evType != null) { filter.FilterEventTag(evType, o as Tag, active); } else { filter.FilterTag(o as Tag, active); } } else if (o is EventType) { filter.FilterEventType(o as EventType, active); } else if (o is Period) { filter.FilterPeriod(o as Period, active); } else if (o is Timer) { filter.FilterTimer(o as Timer, active); } store.SetValue(iter, COL_ACTIVE, active); /* Check its parents */ if (active && checkParents && store.IterIsValid(parent)) { UpdateSelectionPriv(parent, active, true, false); } /* Check/Uncheck all children */ if (recurse) { bool state = filter.IgnoreUpdates; filter.IgnoreUpdates = true; store.IterChildren(out child, iter); while (store.IterIsValid(child)) { UpdateSelectionPriv(child, active, false, false); store.IterNext(ref child); } filter.IgnoreUpdates = state; } if (recurse && checkParents) { filter.Update(); } }
public void TestFilterCategory() { Project p = Utils.CreateProject(); try { EventsFilter filter = new EventsFilter(p); filter.FilterEventType(p.EventTypes [0], true); Assert.AreEqual(1, filter.VisibleEventTypes.Count); Assert.AreEqual(1, filter.VisiblePlays.Count); filter.FilterEventType(p.EventTypes [1], true); Assert.AreEqual(2, filter.VisibleEventTypes.Count); Assert.AreEqual(2, filter.VisiblePlays.Count); filter.FilterEventType(p.EventTypes [2], true); Assert.AreEqual(3, filter.VisibleEventTypes.Count); Assert.AreEqual(3, filter.VisiblePlays.Count); filter.FilterEventType(p.EventTypes [0], true); Assert.AreEqual(3, filter.VisibleEventTypes.Count); Assert.AreEqual(3, filter.VisiblePlays.Count); filter.FilterEventType(p.EventTypes [0], false); Assert.AreEqual(2, filter.VisibleEventTypes.Count); Assert.AreEqual(2, filter.VisiblePlays.Count); filter.FilterEventType(p.EventTypes [1], false); Assert.AreEqual(1, filter.VisibleEventTypes.Count); Assert.AreEqual(1, filter.VisiblePlays.Count); filter.FilterEventType(p.EventTypes [2], false); Assert.AreEqual(13, filter.VisibleEventTypes.Count); Assert.AreEqual(3, filter.VisiblePlays.Count); } finally { Utils.DeleteProject(p); } }