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++; } } }