// // DirectoryArtistImageConfig.xaml.cs // // Author: // Jacob Johnston (jacobj@inchoatethoughts.com) // // Copyright (C) 2009 Jacob Johnston // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation, either version 3 of // the License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Lesser General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . using System.IO; using System.Text; using System.Text.RegularExpressions; using System.Windows; namespace ZenLibrary.Rules { /// /// Interaction logic for DirectoryArtistImageConfig.xaml /// public partial class DirectoryArtistImageConfig : Window { string invalidCharacters = string.Empty; public DirectoryArtistImageConfig() { InitializeComponent(); // We want to allow only valid filename characters // plus the * (wildcard) character. This builds a // a list for use in sanitation of input later. StringBuilder chars = new StringBuilder(); chars.Append('['); foreach (char invalidChar in Path.GetInvalidFileNameChars()) if (invalidChar != '*') chars.Append(invalidChar); chars.Append(']'); invalidCharacters = chars.ToString(); } private void okButton_Click(object sender, RoutedEventArgs e) { this.DialogResult = true; } private void cancelButton_Click(object sender, RoutedEventArgs e) { this.DialogResult = false; } private void addButton_Click(object sender, RoutedEventArgs e) { string input = ArtworkFileInput.Text; // Sanitize input input = Regex.Replace(input, invalidCharacters, string.Empty); // Trim trailing/leading whitespace. input = input.Trim(); if (input.Length > 0) FileList.Items.Add(input); } private void deleteButton_Click(object sender, RoutedEventArgs e) { if(FileList.SelectedItem != null) FileList.Items.Remove(FileList.SelectedItem); } } }