Fix Subdirectory being added to custom directory selection

This commit is contained in:
Michael Bucari-Tovo 2022-07-30 09:48:57 -06:00
parent 31e97defd1
commit 9e7670b918

View File

@ -38,6 +38,7 @@ namespace LibationAvalonia.Controls
set => SetValue(SubDirectoryProperty, value); set => SetValue(SubDirectoryProperty, value);
} }
CustomState customStates = new(); CustomState customStates = new();
public DirectoryOrCustomSelectControl() public DirectoryOrCustomSelectControl()
{ {
InitializeComponent(); InitializeComponent();
@ -53,9 +54,8 @@ namespace LibationAvalonia.Controls
customDirBrowseBtn.Click += CustomDirBrowseBtn_Click; customDirBrowseBtn.Click += CustomDirBrowseBtn_Click;
PropertyChanged += DirectoryOrCustomSelectControl_PropertyChanged; PropertyChanged += DirectoryOrCustomSelectControl_PropertyChanged;
directorySelectControl.PropertyChanged += DirectorySelectControl_PropertyChanged; directorySelectControl.PropertyChanged += DirectorySelectControl_PropertyChanged;
} }
private class CustomState: ViewModels.ViewModelBase private class CustomState: ViewModels.ViewModelBase
{ {
private string _customDir; private string _customDir;
@ -116,12 +116,13 @@ namespace LibationAvalonia.Controls
private void setDirectory() private void setDirectory()
{ {
var path1 var selectedDir
= customStates.CustomChecked ? customStates.CustomDir = customStates.CustomChecked ? customStates.CustomDir
: directorySelectControl.SelectedDirectory is Configuration.KnownDirectories.AppDir ? Configuration.AppDir_Absolute : directorySelectControl.SelectedDirectory is Configuration.KnownDirectories.AppDir ? Configuration.AppDir_Absolute
: Configuration.GetKnownDirectoryPath(directorySelectControl.SelectedDirectory); : Configuration.GetKnownDirectoryPath(directorySelectControl.SelectedDirectory);
Directory selectedDir ??= string.Empty;
= System.IO.Path.Combine(path1 ?? string.Empty, SubDirectory);
Directory = customStates.CustomChecked ? selectedDir : System.IO.Path.Combine(selectedDir, SubDirectory);
} }
@ -140,7 +141,7 @@ namespace LibationAvalonia.Controls
if (known is Configuration.KnownDirectories.None) if (known is Configuration.KnownDirectories.None)
{ {
customStates.CustomChecked = true; customStates.CustomChecked = true;
customStates.CustomDir = noSubDir; customStates.CustomDir = directory;
} }
else else
{ {