From 062292c7b822247d74e4470dd8a509284b0d5eda Mon Sep 17 00:00:00 2001 From: Roy Ben Shabat Date: Tue, 17 Mar 2020 05:14:20 +0200 Subject: Changes to file system monitoring. --- .../ViewModels/FileSystemViewVM.cs | 32 +++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) (limited to 'Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/FileSystemViewVM.cs') diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/FileSystemViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/FileSystemViewVM.cs index f9eff7e6f..20a960243 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/FileSystemViewVM.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/FileSystemViewVM.cs @@ -29,15 +29,27 @@ namespace Tango.FSE.PPCConsole.ViewModels set { _currentPath = value; RaisePropertyChangedAuto(); } } + private List _drives; + public List Drives + { + get { return _drives; } + set { _drives = value; RaisePropertyChangedAuto(); } + } + + public RelayCommand NavigateCommand { get; set; } public RelayCommand OpenItemCommand { get; set; } public RelayCommand BackCommand { get; set; } + public RelayCommand NavigateSpecialFolderCommand { get; set; } + public RelayCommand NavigateToFolderCommand { get; set; } public FileSystemViewVM() { NavigateCommand = new RelayCommand(NavigateToCurrentPath); OpenItemCommand = new RelayCommand(OpenFileSystemItem); BackCommand = new RelayCommand(NavigateBack, () => !(CurrentItem is FolderItem) || !(CurrentItem as FolderItem).IsRoot); + NavigateSpecialFolderCommand = new RelayCommand(NavigateToSpecialFolder); + NavigateToFolderCommand = new RelayCommand(async (x) => await Navigate(x)); } private async void NavigateBack() @@ -82,7 +94,13 @@ namespace Tango.FSE.PPCConsole.ViewModels } } - private async Task Navigate(String path) + private async void NavigateToSpecialFolder(string folder) + { + Environment.SpecialFolder specialFolder = (Environment.SpecialFolder)Enum.Parse(typeof(Environment.SpecialFolder), folder); + await Navigate(null, specialFolder); + } + + private async Task Navigate(String path, Environment.SpecialFolder? specialFolder = null) { try { @@ -94,9 +112,21 @@ namespace Tango.FSE.PPCConsole.ViewModels { CurrentItem = await FileSystemProvider.GetFolder(path) as FileSystemItem; } + else if (specialFolder != null) + { + CurrentItem = await FileSystemProvider.GetSpecialFolder(specialFolder.Value) as FileSystemItem; + } else { CurrentItem = await FileSystemProvider.GetThisPC() as FileSystemItem; + try + { + Drives = (CurrentItem as IFileSystemContainer).Items.Cast().ToList(); + } + catch (Exception ex) + { + LogManager.Log(ex, "Error setting file system drives menu."); + } } } catch (Exception ex) -- cgit v1.3.1