private void SetTreeFromFolder(string folder, bool setFocus = false, string searchText = null) { if (Window == null) { return; } Window.SetStatusIcon(FontAwesome.WPF.FontAwesomeIcon.Spinner, Colors.Orange, true); Window.ShowStatus($"Retrieving files for folder {folder}..."); Dispatcher.InvokeAsync(() => { // just get the top level folder first ActivePathItem = null; WindowUtilities.DoEvents(); var items = FolderStructure.GetFilesAndFolders(folder, nonRecursive: true, ignoredFolders: ".git"); ActivePathItem = items; WindowUtilities.DoEvents(); Window.ShowStatus(); if (TreeFolderBrowser.HasItems) { SetTreeViewSelectionByIndex(0); } if (setFocus) { TreeFolderBrowser.Focus(); } AttachFileWatcher(folder); }, DispatcherPriority.ApplicationIdle); }
private void TreeFolderBrowser_Expanded(object sender, RoutedEventArgs e) { var tvi = e.OriginalSource as TreeViewItem; if (tvi == null) { return; } tvi.IsSelected = true; var selected = TreeFolderBrowser.SelectedItem as PathItem; if (selected == null || selected.IsFile || selected.FullPath == "..") { return; } if (selected.Files != null && selected.Files.Count == 1 && selected.Files[0] == PathItem.Empty) { var subfolder = FolderStructure.GetFilesAndFolders(selected.FullPath, nonRecursive: true, parentPathItem: selected); } }