Пример #1
0
        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();
            }
        }
Пример #2
0
        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();
        }
Пример #3
0
        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;
                }
            }
        }
Пример #4
0
        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();
            }
        }