Beispiel #1
0
        public void OpenDialog()
        {
            if (FilterWindow == null || FilterWindow.IsActive == false)
            {
                FilterWindow = new TreeViewFilter();
            }

            if (FilterWindow.Visibility == Visibility.Hidden)
            {
                FilterWindow.Visibility = Visibility.Visible;
            }
            else
            {
                FilterWindow.ShowDialog();
            }
        }
        private void LoadSettings()
        {
            // Fill the Filter Field Combo with values
            //
            // For some reason assigning a DataSource doesn't work
            // So i need to keep track of the value members in a separate string array.
            TagFilterField.Items.Add(localisation.ToString("column_header", "Artist"));
            TagFilterField.Items.Add(localisation.ToString("column_header", "AlbumArtist"));
            TagFilterField.Items.Add(localisation.ToString("column_header", "Album"));
            TagFilterField.Items.Add(localisation.ToString("column_header", "Title"));
            TagFilterField.Items.Add(localisation.ToString("column_header", "Year"));
            TagFilterField.Items.Add(localisation.ToString("column_header", "Genre"));
            TagFilterField.Items.Add(localisation.ToString("column_header", "Picture"));
            TagFilterField.Items.Add(localisation.ToString("column_header", "Lyrics"));
            TagFilterField.Items.Add(localisation.ToString("column_header", "Track"));
            TagFilterField.Items.Add(localisation.ToString("column_header", "NumTracks"));
            TagFilterField.Items.Add(localisation.ToString("column_header", "Disc"));
            TagFilterField.Items.Add(localisation.ToString("column_header", "NumDisc"));
            TagFilterField.Items.Add(localisation.ToString("column_header", "Rating"));
            TagFilterField.Items.Add(localisation.ToString("column_header", "BPM"));
            TagFilterField.Items.Add(localisation.ToString("column_header", "Comment"));
            TagFilterField.Items.Add(localisation.ToString("column_header", "Composer"));
            TagFilterField.Items.Add(localisation.ToString("column_header", "Conductor"));
            TagFilterField.Items.Add(localisation.ToString("column_header", "BitRate"));
            TagFilterField.Items.Add(localisation.ToString("column_header", "SampleRate"));
            TagFilterField.Items.Add(localisation.ToString("column_header", "Channels"));

            TagFilterOperator.Items.Add(localisation.ToString("main", "FilterOperatorAnd"));
            TagFilterOperator.Items.Add(localisation.ToString("main", "FilterOperatorOr"));

            // Fill the File Select Combo with values
            cbListFormats.Items.Add(new Item(localisation.ToString("main", "FilterAllFiles"), "*.*", ""));
            cbListFormats.Items.Add(new Item(".mp3 (MPEG Layer-3)", "mp3", ""));
            cbListFormats.Items.Add(new Item(".ogg (OGG Vorbis)", "ogg", ""));
            cbListFormats.Items.Add(new Item(".wma (Windows Media Audio)", "wma", ""));
            cbListFormats.Items.Add(new Item(".flac (Free Lossless Audio Codec)", "flac", ""));
            cbListFormats.Items.Add(new Item(".ape (Monkey's Audio)", "ape", ""));
            cbListFormats.Items.Add(new Item(".mpc/.mpp/.mp+ (MusePack)", "mpc|mpp|mp+", ""));
            cbListFormats.Items.Add(new Item(".mp4/.m4a/.m4p (MPEG-4/AAC)", "mp4|m4a|m4p", ""));
            cbListFormats.Items.Add(new Item(".wv (Wavpack)", "wv", ""));
            cbListFormats.Items.Add(new Item(".wav (Wave / RIFF)", "wav", ""));
            cbListFormats.Items.Add(new Item(".aif|.aiff (Audio Interchange File Format)", "aif|aiff", ""));

            if (Options.TreeViewSettings.Filter.Count > 0)
            {
                _filter = Options.TreeViewSettings.Filter[0];
                if (Options.TreeViewSettings.LastUsedFormat != "")
                {
                    foreach (TreeViewFilter filter in Options.TreeViewSettings.Filter)
                    {
                        if (filter.Name == Options.TreeViewSettings.LastUsedFormat)
                        {
                            _filter = filter;
                            break;
                        }
                    }
                }

                // Now set the File Formats
                foreach (Item item in cbListFormats.Items)
                {
                    if ((string)item.Value == _filter.FileFilter)
                    {
                        cbListFormats.SelectedItem = item;
                        break;
                    }
                }

                ckUseTagFilter.Checked = _filter.UseTagFilter;
                ckUseTagFilter_CheckedChanged(ckUseTagFilter, new EventArgs());
                dataGridViewTagFilter.Enabled = ckUseTagFilter.Checked;
                int rowIndex = 0;
                foreach (TreeViewTagFilter tagFilter in _filter.TagFilter)
                {
                    dataGridViewTagFilter.Rows.Insert(rowIndex, 1);

                    int i = 0;
                    foreach (string filterFieldValue in _filterFieldValues)
                    {
                        if (filterFieldValue == tagFilter.Field)
                        {
                            dataGridViewTagFilter.Rows[rowIndex].Cells[0].Value = TagFilterField.Items[i];
                            break;
                        }
                        i++;
                    }

                    if (dataGridViewTagFilter.Rows[rowIndex].Cells[0].Value == null)
                    {
                        rowIndex++;
                        continue;
                    }

                    if (IsSpecialFilterColumn(dataGridViewTagFilter.Rows[rowIndex].Cells[0].Value.ToString()))
                    {
                        DataGridViewCheckBoxCell ckCell = new DataGridViewCheckBoxCell();
                        if (tagFilter.FilterValue == "1")
                        {
                            tagFilter.FilterValue = "true";
                        }
                        ckCell.Value = tagFilter.FilterValue;
                        dataGridViewTagFilter.Rows[rowIndex].Cells[1] = ckCell;
                    }
                    else
                    {
                        dataGridViewTagFilter.Rows[rowIndex].Cells[1].Value = tagFilter.FilterValue;
                    }

                    string op = null;
                    if (tagFilter.FilterOperator == "or")
                    {
                        op = "or";
                    }
                    else if (tagFilter.FilterOperator == "and")
                    {
                        op = "and";
                    }
                    dataGridViewTagFilter.Rows[rowIndex].Cells[2].Value = op;
                    rowIndex++;
                }
            }
        }