Libation/Source/LibationWinForms/AvaloniaUI/Views/Dialogs/LibationFilesDialog.axaml.cs
2022-07-20 13:35:30 -06:00

51 lines
1.3 KiB
C#

using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using LibationFileManager;
using LibationWinForms.AvaloniaUI.Controls;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace LibationWinForms.AvaloniaUI.Views.Dialogs
{
public partial class LibationFilesDialog : DialogWindow
{
private class DirSelectOptions
{
public List<Configuration.KnownDirectories> KnownDirectories { get; } = new()
{
Configuration.KnownDirectories.UserProfile,
Configuration.KnownDirectories.AppDir,
Configuration.KnownDirectories.MyDocs
};
public string Directory { get; set; } = Configuration.Instance.LibationFiles;
}
private DirSelectOptions dirSelectOptions;
public string SelectedDirectory => dirSelectOptions.Directory;
public LibationFilesDialog()
{
InitializeComponent();
DataContext = dirSelectOptions = new();
}
protected override async Task SaveAndCloseAsync()
{
var libationDir = dirSelectOptions.Directory;
if (!System.IO.Directory.Exists(libationDir))
{
await MessageBox.Show("Not saving change to Libation Files location. This folder does not exist:\r\n" + libationDir, "Folder does not exist", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
await base.SaveAndCloseAsync();
}
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
}
}
}