void addTags(SelectableMediaItem item, List <TagItem> tags) { if (item.Item.Metadata == null) { return; } item.Item.EnterReadLock(); try { foreach (Tag tag in item.Item.Metadata.Tags) { TagItem tagItem = new TagItem(tag, mediaCollectionView); int index = tags.IndexOf(tagItem); if (index == -1) { tags.Add(tagItem); } else { tags[index].Count += 1; } } } finally { item.Item.ExitReadLock(); } }
void tagsList_IsFilterChanged(object sender, EventArgs e) { ToggleButton includedClearToggleButton = VisualTreeUtils.findVisualChildByName <ToggleButton>(dataGrid, "includeClearToggleButton"); ToggleButton excludedClearToggleButton = VisualTreeUtils.findVisualChildByName <ToggleButton>(dataGrid, "excludeClearToggleButton"); TagItem item = (TagItem)sender; if (item.IsIncluded || item.IsExcluded) { mediaCollectionView.TagFilter.Add(item); if (item.IsIncluded) { includedClearToggleButton.IsEnabled = true; includedClearToggleButton.IsChecked = true; } else { excludedClearToggleButton.IsEnabled = true; excludedClearToggleButton.IsChecked = true; } } else { mediaCollectionView.TagFilter.Remove(item); int nrIncluded = 0, nrExcluded = 0; foreach (TagItem tagItem in mediaCollectionView.TagFilter) { if (tagItem.IsIncluded) { nrIncluded++; } if (tagItem.IsExcluded) { nrExcluded++; } } if (nrExcluded == 0) { excludedClearToggleButton.IsEnabled = false; excludedClearToggleButton.IsChecked = false; } if (nrIncluded == 0) { includedClearToggleButton.IsEnabled = false; includedClearToggleButton.IsChecked = false; } } MediaCollectionView.refresh(); }
public TagItem(Tag tag, MediaStateCollectionView mediaCollectionView) { this.tag = tag; Name = tag.Name; Count = 1; TagItem item = mediaCollectionView.TagFilter.Find((i) => i.Name.Equals(Name)); if (item != null) { if (item.IsIncluded) { IsIncluded = true; } if (item.IsExcluded) { IsExcluded = true; } } }
void addTags(SelectableMediaItem item, List<TagItem> tags) { if (item.Item.Metadata == null) return; item.Item.EnterReadLock(); try { foreach (Tag tag in item.Item.Metadata.Tags) { TagItem tagItem = new TagItem(tag, mediaCollectionView); int index = tags.IndexOf(tagItem); if (index == -1) { tags.Add(tagItem); } else { tags[index].Count += 1; } } } finally { item.Item.ExitReadLock(); } }