//
// DirectoryAlbumArtworkConfig.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 DirectoryAlbumArtworkConfig.xaml
///
public partial class DirectoryAlbumArtworkConfig : Window
{
string invalidCharacters = string.Empty;
public DirectoryAlbumArtworkConfig()
{
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);
}
}
}